国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【08】STM32·HAL庫開發(fā)-HAL庫介紹 | STM32Cube固件庫介紹 | HAL庫框架結(jié)構(gòu) | 如何使用HAL庫及使用注意事項

這篇具有很好參考價值的文章主要介紹了【08】STM32·HAL庫開發(fā)-HAL庫介紹 | STM32Cube固件庫介紹 | HAL庫框架結(jié)構(gòu) | 如何使用HAL庫及使用注意事項。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1.初識HAL庫(了解)

1.1CMSIS簡介

??CMSIS (微控制器軟件接口標準):Cortex Microcontroller Software Interface Standard,是由ARM和與其合作的芯片廠商(比如ST、NXP公司等)、軟件工具廠商(Keil、IAR公司等),共同制定的標準。如果沒有此標準,ARM公司的產(chǎn)品兼容性非常差。
??下圖中分為三層,第一層是用戶層,主要是用戶代碼、在線調(diào)試;第二層是中間層(CMISIS),具體CMSIS體現(xiàn)到用戶手冊是CMSIS-Pack,每個公司提供的包可能不太一樣,會根據(jù)自己的產(chǎn)品制作CMSIS包,其中HAL庫(Peripheral HAL)屬于其內(nèi)容;第三層是硬件層。用戶想要去開發(fā)硬件層,需要經(jīng)過中間層,中間層的CMSIS包由眾多廠商提供。
stm32 hal庫,# STM32-HAL庫,stm32,嵌入式硬件,單片機,HAL庫,FreeRTOS

1.2HAL庫簡介

??ST 為了方便用戶開發(fā) STM32芯片開發(fā)提供了三種庫:

  1. 標準外設(shè)庫 (Standard Peripheral Libraries),也就是“標準庫”。
  2. HAL庫(硬件抽象層):Hardware Abstraction Layer
  3. LL庫:Low Layer,也就是“底層庫”,更加接近硬件,也就是更加接近寄存器。

??下圖是直接操作寄存器、標準庫、HAL庫(不同系列兼容性好,具體表現(xiàn)是不同外設(shè)初始化都是使用一個函數(shù),只是結(jié)構(gòu)體、變量不一樣,但是函數(shù)接口一樣,移植方便。HAL庫是抽象層的庫,經(jīng)過很多次的封裝,導致效率比較低)、LL庫(彌補了HAL庫執(zhí)行效率低的缺點,在HAL庫內(nèi)部一些API函數(shù)就會調(diào)用LL庫中內(nèi)容,但是LL庫也有其缺點,不匹配部分復(fù)雜外設(shè),比如USB)的特點:
stm32 hal庫,# STM32-HAL庫,stm32,嵌入式硬件,單片機,HAL庫,FreeRTOS

2.STM32Cube固件包淺析(了解)

??Cube固件包其實就說CMSIS-Pack,STM32Cube固件包是ST公司根據(jù)標準提供的CMSIS-Pack。

2.1如何獲取STM32Cube固件包?

??之前文章中已經(jīng)總結(jié)如何獲取,具體查看【07】STM32·HAL庫開發(fā)-新建寄存器版本MDK工程 |下載STM32Cube固件包 | 新建MDK工程步驟中的第1.1小節(jié)。

2.2STM32Cube固件包文件夾簡介

【_htmresc】文件夾中包含了一些圖片之類的,對我們來說沒任何作用;
【Documentation】文件夾中為固件包說明文檔;
【Drivers】文件夾比較重要是驅(qū)動源碼,新建工程時需要用到
【Middlewares】中為中間文件,保存的是ST或者第三方的一些中間文件,后續(xù)會用到,新建工程可能暫時用不到;
【Projects】為ST官方開發(fā)板例程,參考作用;
【Utilities】為ST關(guān)方開發(fā)板例程提供公共組件,一般用不到,可以用作參考;
License.md文件包含了軟件許可、軟件版本信息;
package.xml為固件包版本信息;
Readme.md為自述文件;
Release_Notes.html為補充或更新說明的鏈接,可用瀏覽器打開。

stm32 hal庫,# STM32-HAL庫,stm32,嵌入式硬件,單片機,HAL庫,FreeRTOS

2.3CMSIS文件夾關(guān)鍵文件

??F1系列【Drivers】文件夾中包含了三個文件夾【BSP】、【CMSIS】、HAL庫驅(qū)動【STM32F1xx_HAL_Driver】?!綛SP】中為板級驅(qū)動源碼,也就是板級支持包,適配ST官方的開發(fā)板板級驅(qū)動(針對外設(shè)、或者板子上面的資源做的驅(qū)動),不同開發(fā)板板級驅(qū)動是不一樣的,所以此文件更多是參考意義;【CMSIS】文件夾包含符合CMSIS的組件,包括:DSP庫、Cortex-M內(nèi)核及其設(shè)備文件、微控制器專用頭文件、啟動文件、專用系統(tǒng)文件等,創(chuàng)建工程時會復(fù)制其中部分文件;【STM32F1xx_HAL_Driver】為F1系列HAL庫外設(shè)驅(qū)動源碼,創(chuàng)建工程時會復(fù)制其中部分文件
stm32 hal庫,# STM32-HAL庫,stm32,嵌入式硬件,單片機,HAL庫,FreeRTOS
??【Middlewares】中包含了【ST】和【Third_Party】兩個文件夾。
stm32 hal庫,# STM32-HAL庫,stm32,嵌入式硬件,單片機,HAL庫,FreeRTOS
??在【CMSIS】文件夾中主要關(guān)注【Device】和【include】兩個文件夾,新建工程時也是用到這兩個文件夾;【Device】文件夾中包含微控制器專用頭文件、啟動文件、專用系統(tǒng)文件;【include】文件夾中包含Cortx-M內(nèi)核及其設(shè)備文件、編譯器相關(guān)頭文件。

stm32 hal庫,# STM32-HAL庫,stm32,嵌入式硬件,單片機,HAL庫,FreeRTOS

2.3.1CMSIS標準規(guī)定軟件包目錄

?? CMSIS標準規(guī)定軟件包目錄也就是STM32Cube固件庫文件夾所包含的內(nèi)容。用到的有【Driver】和【Include】文件夾。
stm32 hal庫,# STM32-HAL庫,stm32,嵌入式硬件,單片機,HAL庫,FreeRTOS

2.3.2Device和Include文件夾的關(guān)鍵文件介紹

?? 【Device】文件夾中用到的文件包含以下文件,以下文件是簡略后的文件。
stm32 hal庫,# STM32-HAL庫,stm32,嵌入式硬件,單片機,HAL庫,FreeRTOS
?? stm32f103后面的xe是根據(jù)FLASH容量進行選擇,在【include】文件夾中保存3個文件:stm32f1xx.h、stm32f103xe.h、system_stm32f1xx.h。
stm32 hal庫,# STM32-HAL庫,stm32,嵌入式硬件,單片機,HAL庫,FreeRTOS
?? 以下目錄中保留文件system_stm32f1xx.c,因為編譯器是ARM,所以保留【arm】文件夾中的啟動文件,并根據(jù)型號和容量來選擇保留哪個啟動文件。
stm32 hal庫,# STM32-HAL庫,stm32,嵌入式硬件,單片機,HAL庫,FreeRTOS
stm32 hal庫,# STM32-HAL庫,stm32,嵌入式硬件,單片機,HAL庫,FreeRTOS
?? 【include】文件夾中用到以下文件:cmsis_armcc.h(針對AC5編譯器)、cmsis_armclang.h(針對AC6編譯器)、cmsis_compiler.h(AC5和AC6編譯器共用)、cmsis_version.h(編譯器版本,也是共用的)、core_cm3.h (Cortex-M3內(nèi)核,重點關(guān)注此文件)、 mpu_armv7.h(mpu內(nèi)存保護)。
stm32 hal庫,# STM32-HAL庫,stm32,嵌入式硬件,單片機,HAL庫,FreeRTOS

3.HAL庫框架結(jié)構(gòu)(了解)

3.1HAL庫文件夾結(jié)構(gòu)

?? F1系列的HAL庫被保存到【STM32F1xx_HAL_Driver】文件夾中,Src(Source):外設(shè)驅(qū)動源碼;Inc(Include):外設(shè)驅(qū)動源碼頭文件。前面提到HAL庫和LL庫是捆綁發(fā)布的,就體現(xiàn)在驅(qū)動源碼包含在【Inc】和【Src】文件夾中?!綢nc】和【Src】文件夾中的【Legacy】文件夾是補充源文件,并不是所有系列都需要。
stm32 hal庫,# STM32-HAL庫,stm32,嵌入式硬件,單片機,HAL庫,FreeRTOS

3.2HAL庫文件介紹

?? 文件名中有hal的就是hal庫文件,有l(wèi)l的就是LL庫文件。stm32f1xx_hal_conf.h文件可用于裁剪HAL庫中用不到的功能,減少編譯后得文件大小。
stm32 hal庫,# STM32-HAL庫,stm32,嵌入式硬件,單片機,HAL庫,FreeRTOS

3.3HAL庫API函數(shù)和變量命名規(guī)則

?? 用戶一般不會直接調(diào)用LL庫,而是通過調(diào)用HAL庫間接使用LL庫,所以不必深入學習LL庫。
stm32 hal庫,# STM32-HAL庫,stm32,嵌入式硬件,單片機,HAL庫,FreeRTOS
??可以將以下初始化函數(shù)中的PPP替換成GPIO,反初始化函數(shù)很少用到,主要用于失能時鐘、恢復(fù)默認配置等。

初始化/反初始化函數(shù):HAL_PPP_Init(), HAL_PPP_DeInit()
外設(shè)讀寫函數(shù):HAL_PPP_Read(),HAL_PPP_Write(),HAL_PPP_Transmit(), HAL_PPP_Receive()
控制函數(shù):HAL_PPP_Set (),HAL_PPP_Get ()
狀態(tài)和錯誤:HAL_PPP_GetState (), HAL_PPP_GetError ()

3.3.1HAL庫對寄存器位操作的相關(guān)宏定義

stm32 hal庫,# STM32-HAL庫,stm32,嵌入式硬件,單片機,HAL庫,FreeRTOS

3.3.2HAL庫回調(diào)函數(shù)

stm32 hal庫,# STM32-HAL庫,stm32,嵌入式硬件,單片機,HAL庫,FreeRTOS
??此類回調(diào)函數(shù)通常被_weak修飾(弱函數(shù)),允許用戶重新定義該函數(shù)。

4.如何使用HAL庫(熟悉)

4.1基于CMSIS應(yīng)用程序文件描述

??CMSIS核心層文件就是將【CMSIS】文件夾中的【Device】和【Include】文件夾中裁剪后剩的11個文件,這11個文件對于新建MDK工程是必須包含的;設(shè)備驅(qū)動層就是HAL庫及LL庫的源碼,也就是【STM32F1xx_HAL_Driver】文件夾中的源碼;用戶程序文件,正點原子例程都將main.h、stm32f1xx_hal_msp.c刪除掉了,放到了例如初始化UART就將UART的在stm32f1xx_hal_msp.c中的回調(diào)函數(shù)放到usart.c中,stm32f1xx_it.c和stm32f1xx_it.h里面本身就定義了一些中斷,所以選擇保留,如果寫串口中斷,推薦寫到usart.c中。
stm32 hal庫,# STM32-HAL庫,stm32,嵌入式硬件,單片機,HAL庫,FreeRTOS

4.1.1STM32開發(fā)文件結(jié)構(gòu)分布

stm32 hal庫,# STM32-HAL庫,stm32,嵌入式硬件,單片機,HAL庫,FreeRTOS

4.2HAL 庫的用戶配置文件

??如果是F1系列那么就修改stm32f1xx_hal_conf.h。獲取此文件可以從STM32官方例程中獲取,也可以從HAL庫驅(qū)動源碼中獲取,只是名稱不同,復(fù)制時只需要將template刪除即可。
stm32 hal庫,# STM32-HAL庫,stm32,嵌入式硬件,單片機,HAL庫,FreeRTOS
stm32 hal庫,# STM32-HAL庫,stm32,嵌入式硬件,單片機,HAL庫,FreeRTOS

4.2.1裁剪HAL庫外設(shè)驅(qū)動源碼(不進行編譯)

??STM32HAL庫裁剪就是將stm32f1xx_hal_conf.h中用不到的宏定義注釋掉,因為在HAL庫驅(qū)動源碼中都是用的ifdef判斷宏是否被定義。以GPIO為例如下所示:
stm32 hal庫,# STM32-HAL庫,stm32,嵌入式硬件,單片機,HAL庫,FreeRTOS
??通過對工程中用到什么外設(shè)就加什么驅(qū)動文件,也是起到裁剪作用。如下所示,是部分HAL庫驅(qū)動文件:
stm32 hal庫,# STM32-HAL庫,stm32,嵌入式硬件,單片機,HAL庫,FreeRTOS

4.2.2設(shè)置外部高速晶振頻率(根據(jù)開發(fā)板實際情況設(shè)置)

??以下代碼是設(shè)置高速外部晶振,宏USE_STM3210C_EVAL判斷是否使用ST官方開發(fā)板,默認為25MHz,否則為8MHz。要根據(jù)開發(fā)板實際情況進行設(shè)置。如果要省事可以簡化以下代碼為:#define HSE_VALUE 8000000U

#if !defined  (HSE_VALUE) 
#if defined(USE_STM3210C_EVAL)
  #define HSE_VALUE    25000000U /*!< Value of the External oscillator in Hz */
#else
  #define HSE_VALUE    8000000U /*!< Value of the External oscillator in Hz */
#endif
#endif /* HSE_VALUE */

??高速內(nèi)部晶振和低速內(nèi)部晶振可以根據(jù)芯片手冊進行設(shè)置:

#if !defined  (HSI_VALUE)
  #define HSI_VALUE              8000000U  
#endif /* HSI_VALUE */
#if !defined  (LSI_VALUE) 
 #define LSI_VALUE               40000U  
#endif /* LSI_VALUE */

4.2.3設(shè)置外部低速晶振頻率(根據(jù)開發(fā)板實際情況設(shè)置)

#if !defined  (LSE_VALUE)
 #define LSE_VALUE               32768U    
#endif /* LSE_VALUE */

stm32 hal庫,# STM32-HAL庫,stm32,嵌入式硬件,單片機,HAL庫,FreeRTOS

4.3stm32f1xx_hal.c 文件

??使用HAL庫最關(guān)心的就說HAL庫初始化函數(shù)HAL_Init(),不同系列可能有些小區(qū)別,但是核心代碼如下:

HAL_StatusTypeDef  HAL_Init(void) 
{ 
	__HAL_FLASH_PREFETCH_BUFFER_ENABLE(); 	                    /* 使能FLASH預(yù)取緩沖 */ 

	HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_2); /* 配置中斷優(yōu)先級分組 */ 

	/* 使用滴答定時器作為時鐘基準,配置 1ms 滴答(重置后默認的時鐘源為 HSI) */ 
	HAL_InitTick(TICK_INT_PRIORITY); 

	HAL_MspInit(); 	/* 初始化其它底層硬件(如果必要) */ 

	return HAL_OK; 	/* 返回函數(shù)狀態(tài) */ 
}

?? 第一段程序作用是使能FLASH預(yù)取緩沖,STM32是32位的,每次讀取的指令也是32位的,F(xiàn)LASH存在預(yù)取緩沖區(qū),預(yù)取緩沖區(qū)由2個64位組成,CPU每次讀取指令,將指令放在預(yù)取緩沖區(qū),就可以起到程序加快運行的效果。

__HAL_FLASH_PREFETCH_BUFFER_ENABLE(); 	                    /* 使能FLASH預(yù)取緩沖 */ 

?? 第二段程序是設(shè)置中斷優(yōu)先級分組,默認情況下設(shè)置位為4,正點原子默認設(shè)置成2。

HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_2); /* 配置中斷優(yōu)先級分組 */ 

??第三段是使能系統(tǒng)滴答定時器,并且配置為1ms。正點原子實際配置滴答定時器在delay.c中的delay_Init()函數(shù)中。

/* 使用滴答定時器作為時鐘基準,配置 1ms 滴答(重置后默認的時鐘源為 HSI) */ 
	HAL_InitTick(TICK_INT_PRIORITY); 

??HAL_MspInit()為空函數(shù),不用管它。

HAL_MspInit(); 	/* 初始化其它底層硬件(如果必要) */

5.HAL庫使用注意事項(了解)

1,使用HAL庫出現(xiàn)問題,還是得通過參考手冊檢查是否硬件操作是否有問題;
2,盡量不通過修改庫源碼實現(xiàn)功能,這樣不方便庫更新;
3,HAL庫可能會存在錯誤,要有質(zhì)疑精神;
4,有些HAL庫API函數(shù)執(zhí)行效率偏低,我們可能會直接通過操作寄存器的方式代替。

6.總結(jié)(了解)

stm32 hal庫,# STM32-HAL庫,stm32,嵌入式硬件,單片機,HAL庫,FreeRTOS文章來源地址http://www.zghlxwxcb.cn/news/detail-664972.html

到了這里,關(guān)于【08】STM32·HAL庫開發(fā)-HAL庫介紹 | STM32Cube固件庫介紹 | HAL庫框架結(jié)構(gòu) | 如何使用HAL庫及使用注意事項的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • STM32超聲波避障小車(舵機云臺+超聲波/stm32f103/HAL/Cube)

    STM32超聲波避障小車(舵機云臺+超聲波/stm32f103/HAL/Cube)

    一、小車1.0——基本藍牙小車(僅藍牙遙控小車運動方向,本篇) 二、小車2.0——藍牙小車PLUS(可以藍牙控制方向+藍牙直接調(diào)節(jié)車速) 三、小車3.0——避障小車(超聲波+舵機云臺) 四、小車4.0——無線手柄方向感知操控小車(mpu6050+雙藍牙透傳) 五、雙輪自平衡小車(HAL庫版

    2024年02月05日
    瀏覽(22)
  • 【05】STM32·HAL庫開發(fā)-C語言基礎(chǔ)知識 | stdint.h介紹 | 位操作 | 宏定義的使用 | 條件編譯 | extern聲明 | typdef使用 | 結(jié)構(gòu)體、指針、代碼規(guī)范介紹。

    【05】STM32·HAL庫開發(fā)-C語言基礎(chǔ)知識 | stdint.h介紹 | 位操作 | 宏定義的使用 | 條件編譯 | extern聲明 | typdef使用 | 結(jié)構(gòu)體、指針、代碼規(guī)范介紹。

    ??stdint.h 是從 C99 中引進的一個標準 C 庫的文件,可以在MDK5的安裝路徑:D:MDK5.34ARMARMCCinclude中找到。 ??stdint.h 定義了很多類型別名,將有符號的char類型定義別名為int8_t等,使用此套別名有易于移植。 ??在MDK中需要配置才能支持使用S99標準, 默認是勾選的 。 ??只

    2024年02月08日
    瀏覽(18)
  • STM32 Cube MX 之hal庫軟件模擬IIC 可直接移植使用

    STM32 Cube MX 之hal庫軟件模擬IIC 可直接移植使用

    此為軟件模擬IIC,可以直接移植到HAL庫使用。.h文件需要自己做函數(shù)聲明這里就不再放出,如有問題大家可以討論。 使用的時候只需要更改SDA 和SCL引腳的宏定義就可以移植使用,當然IIC協(xié)議其實就是根據(jù)IIC的時序圖編寫代碼,主要內(nèi)容就是包括開始信號,停止信號以及發(fā)送數(shù)

    2024年02月15日
    瀏覽(25)
  • 【STM32】驅(qū)動庫的選擇:CMSIS Driver、SPL、HAL、LL | 在ARM MDK、STM32Cube中如何選擇?

    【STM32】驅(qū)動庫的選擇:CMSIS Driver、SPL、HAL、LL | 在ARM MDK、STM32Cube中如何選擇?

    閱讀本專欄其他文章,有助于理解本文。?? STM32開發(fā)相關(guān)的庫有很多,它們都是為了方便開發(fā)者使用STM32微控制器而提供的軟件工具。根據(jù)不同的功能和層次,可以將它們分為以下幾類: CMSIS庫(準確來說是CMSIS pack) ( Cortex Microcontroller Software Interface Standard )是 ARM公司 推

    2024年02月11日
    瀏覽(94)
  • STM32FreeRTOS任務(wù)通知(STM32cube高效開發(fā))

    STM32FreeRTOS任務(wù)通知(STM32cube高效開發(fā))

    1、任務(wù)通知可模擬隊列和信號量 任務(wù)通知是FreeRTOS另外一種進程間通信技術(shù)。不需要創(chuàng)建任何中間對象,可以直接從任務(wù)向任務(wù)或ISR向任務(wù)發(fā)送通知,傳遞一個通知值任務(wù)通知可以模擬二值信號量、計數(shù)信號量、或長度為1的消息隊列,使用任務(wù)通知,一般效率更高,消耗內(nèi)

    2024年03月13日
    瀏覽(20)
  • 【STM32Cube開發(fā)記錄】1-下載和安裝STM32CubeIDE

    【STM32Cube開發(fā)記錄】1-下載和安裝STM32CubeIDE

    【STM32Cube開發(fā)記錄】1-下載和安裝STM32CubeIDE 【STM32Cube開發(fā)記錄】2-STM32CubeProgrammer的使用 【STM32Cube開發(fā)記錄】3-STM32CubeMX的使用 【STM32Cube開發(fā)記錄】4-標準庫 HAL庫 LL庫 【STM32Cube開發(fā)記錄】5-寄存器和存儲器映射 【STM32Cube開發(fā)記錄】6-STM32核心功能 【STM32Cube開發(fā)記錄】7-Debug調(diào)試功

    2024年01月17日
    瀏覽(52)
  • STM32CubeIDE開發(fā)(三十三), stm32人工智能開發(fā)應(yīng)用實踐(Cube.AI).篇三

    STM32CubeIDE開發(fā)(三十三), stm32人工智能開發(fā)應(yīng)用實踐(Cube.AI).篇三

    目錄 一、cube.AI實際項目應(yīng)用 二、創(chuàng)建工程 2.1 工程配置 2.2 外設(shè)代碼設(shè)計 2.3 傳感器數(shù)據(jù)采集與輸出源碼設(shè)計 2.4 編輯下載程序,采集數(shù)據(jù) ?三、模型訓練 四、cube.AI配置及c模型生成 五、模型調(diào)用及測試 ??????? 接篇二,前文都是采用FP-AI-SENSING1案例和配套的B-L475E-IOT01A開

    2024年01月17日
    瀏覽(18)
  • STM32CubeIDE開發(fā)(三十一), stm32人工智能開發(fā)應(yīng)用實踐(Cube.AI).篇一

    STM32CubeIDE開發(fā)(三十一), stm32人工智能開發(fā)應(yīng)用實踐(Cube.AI).篇一

    目錄 一、cube.AI簡介及cubeIDE集成 ? ? ? ?1.1 cube.AI介紹 ? ? ? ?1.2 cube.AI與cubeIDE集成與安裝 ? ? ? ? 1.3 cube.AI支持硬件平臺 ? ? ? ? 1.4 cube.AI應(yīng)用的好處 ?二、FP-AI-SENSING1 ? ? ? ?2.1?FP-AI-SENSING1簡介 ? ? ? ? ? 2.2?FP-AI-SENSING1軟件包支持硬件平臺 三、FP-AI-SENSING1部署 ? ? ? ?

    2024年01月22日
    瀏覽(21)
  • STM32-HAL庫08-TIM的輸出比較模式(輸出PWM的另一種方式)

    STM32-HAL庫08-TIM的輸出比較模式(輸出PWM的另一種方式)

    STM32F103C6T6最小系統(tǒng)板 STM32CUBEMX(HAL庫軟件) MDK5 示波器或者邏輯分析儀 通過定時器TIM的輸出比較模式得到預(yù)定頻率與占空比的PWM波形;其中定時器輸出比較模式與PWM模式的區(qū)別在于!?。?PWM模式在同一個TIM下所有輸出口的頻率一致不能單獨控制單個的頻率 ,而輸出比較模式

    2024年02月03日
    瀏覽(96)
  • STM32基于HAL工程硬件I2C讀寫AT24C02/04/08數(shù)據(jù)

    STM32基于HAL工程硬件I2C讀寫AT24C02/04/08數(shù)據(jù)

    ?申明:本文章僅發(fā)表在CSDN網(wǎng)站,任何其他網(wǎng)站,未注明來源,見此內(nèi)容均為盜鏈和爬取,請多多尊重和支持原創(chuàng)! ??對于文中所提供的相關(guān)資源鏈接將作不定期更換。 相關(guān)篇針對AT24C32及以上容量《STM32基于STM32-HAL工程硬件I2C讀取AT24Cxx數(shù)據(jù)》 ??本工程使用STM32F103VE+AT24C02實

    2023年04月11日
    瀏覽(38)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包