STM32微控制器常用庫函式

2021-07-26 18:49:46 字數 3149 閱讀 6235

用法:

voidgpio_configuration(void)

gpio基礎應用:向管腳置1||0

gpio_setbits(gpioc,gpio_pin_1);//置1

gpio_resetbits(gpioc,gpio_pin_1);//置0

管理外部、內部和外設的時鐘,設定、開啟和關閉這些時鐘。

用法:

函式初始化

voidrcc_configuration(void)//時鐘初始化函式

//等待pll啟動

rcc_sysclkconfig(rcc_sysclksource_pllclk);//將pll設定為系統時鐘源

while(rcc_getsysclksource()!=0x08){}//等待系統時鐘源的啟動

}rcc_ahbperiphclockcmd(abp2裝置1|abp2裝置2|,enable);//啟動ahp裝置

rcc_apb2periphclockcmd(abp2裝置1|abp2裝置2|,enable);//啟動abp2裝置

rcc_apb1periphclockcmd(abp2裝置1|abp2裝置2|,enable);//啟動abp1裝置

}

管理系統內部的中斷,負責開啟和關閉中斷。

基礎應用1,中斷的初始化函式,包括設定中斷向量表位置,和開啟所需的中斷兩部分。

用法:

voidnvic_configuration(void)

注:一共16個優先順序,分為搶占式和響應式。兩種優先順序所佔的數量由此**確定,nvic_prioritygroup_x可以是0、1、2、3、4,分別代表搶占優先順序有1、2、4、8、16個和響應優先順序有16、8、4、2、1個。規定兩種優先順序的數量後,所有的中斷級別必須在其中選擇,搶占級別高的會打斷其他中斷優先執行,而響應級別高的會在其他中斷執行完優先執行。

對晶元內部flash進行操作的函式,包括讀取,狀態,擦除,寫入等等,可以允許程式去操作flash上的資料。

基礎應用1,flash時序延遲幾個週期,等待匯流排同步操作。推薦按照微控制器系統執行頻率,0—24mhz時,取latency=0;24—48mhz時,取latency=1;48~72mhz時,取latency=2。所有程式中必須的

用法:

flash_setlatency(flash_latency_2);
位置:rcc初始化子函式裡面,時鐘起振之後。

基礎應用2,開啟flash預讀緩衝功能,加速flash的讀取。所有程式中必須的用法:

flash_prefetchbuffercmd(flash_prefetchbuffer_enable);

位置:rcc初始化子函式裡面,時鐘起振之後。

所有外設在除錯的時候,ewram需要從這個函式裡面獲得除錯所需資訊的位址或者指標之類的資訊。

基礎應用1,只有乙個函式debug。所有程式中必須的。

用法:

#ifdefdebug

debug();

#endif

位置:main函式開頭,宣告變數之後。

外部裝置通過引腳給出的硬體中斷,也可以產生軟體中斷,19個上公升、下降或都觸發。exti0~exti15連線到管腳,exti線16連線到pvd(vdd監視),exti線17連線到rtc(鬧鐘),exti線18連線到usb(喚醒)。基礎應用1,設定外部中斷初始化函式。按需求,不是必須**。用法:

voidexti_configuration(void)

可以輸出和利用系統時鐘的計數、狀態。

vu32timingdelay;//全域性變數宣告

voidsystick_configuration(void)//初始化函式

voiddelay_nms(u32ntime)//精確延時函式

voidsystick_handler(void)//中斷

voidusart_configuration(void)//串列埠初始化函式

rcc中開啟相應串列埠

rcc_apb2periphclockcmd(rcc_apb2periph_usart1,enable);
gpio裡面設定相應串列埠管腳模式

//串列埠1的管腳初始化

gpio_initstructure.gpio_pin=gpio_pin_9;//管腳9

gpio_initstructure.gpio_mode=gpio_mode_af_pp;//復用推挽輸出gpio_init(gpioa,&gpio_initstructure);//tx初始化gpio_initstructure.gpio_pin=gpio_pin_10;//管腳10

gpio_initstructure.gpio_mode=gpio_mode_in_floating;//浮空輸gpio_init(gpioa,&gpio_initstructure);//rx初始化

a)lib注意事項:

屬於lib的debug函式的呼叫,應該放在main函式最開始,不要改變其位置。

b)rcc注意事項:

flash優化處理可以不做,但是兩句也不難也不用改引數……

根據需要開啟裝置時鐘可以節省電能

時鐘頻率需要根據實際情況設定引數

c)nvic注意事項

注意理解佔先優先順序和響應優先順序的分組的概念

d)gpio注意事項

注意以後的過程中收集不同管腳應用對應的頻率和模式的設定。

作為高低電平的i/o,所需設定:rcc初始化裡面開啟rcc_apb2

periphclockcmd(rcc_apb2periph_gpioa);gpio裡面管腳設定:io輸出(50mhz,out_pp);io輸入(50mhz,ipu);

e)usart注意事項:

發動和接受都需要配合標誌等待。

只能對乙個位元組操作,對字串等大量資料操作需要寫函式

使用串列埠所需設定:rcc初始化裡面開啟rcc_apb2periphclockcmd

(rcc_apb2periph_usartx);gpio裡面管腳設定:串列埠rx(50hz,in_floating);串列埠tx(50hz,af_pp);

微控制器學習(一) 微控制器基礎 STM32

io四種輸入工作模式 io四種輸出工作模 stm32有8個16位定時器 stm32具有強大的異常響應系統,它把能夠打斷當前 執行流程的事件分為異常 exception 和中斷 interrupt 並把它們用乙個表管理起來,編號為 3 6的中斷向量定義為系統異常,編號從7到19的為外部中斷。中斷向量控...

微控制器 STM32庫開發

1.stm32庫開發是什麼?st公司推出的基於cortex m3核心的mcu 微控制器,也就是通常所說的微控制器 倡導使用韌體庫開發,僅通過呼叫庫裡面的api 應用程式介面 就可以迅速搭建乙個程式,寫出各種使用者需要的應用。庫開發方式自頂向下,可以避免對底層暫存器的繁瑣操作,能大大降低學習門檻和開發...

stm32mcuid規則 STM32微控制器命名規則

stm32 系列微控制器命名規則 stm32 f 103 c 8 t 6 1 2 3 4 5 6 7 8 產品系列名 固定為 stm32 和 產品系列 f 通用系列 0xx 入門級 mcu0x0 超值系列在傳統 位和位市場極具競爭力 0x1 實現了高度的功能整合,提供多種儲存容量和封裝的選擇,為成本...