STM32F107的串列埠通訊總結

2021-07-29 15:00:21 字數 1040 閱讀 8784

stm32f107的串列埠通訊總結

stm32f107

的串列埠通訊總結

1.  

stm32

的一般規律,首先要使用串列埠必先使能串列埠時鐘,比如串列埠1: rcc_apb2periphclockcmd(rcc_apb2periph_usart1,enable); 

2.  

串列埠使用的gpio口設定: 首先使能gpio的時鐘rcc_apb2periphclockcmd(rcc_apb2periph_gpioa,enable);其次gpio埠的模式配置(復用推挽輸出、浮空輸入等)

3.  

主程式有中斷的要使用中斷配置,注意中斷的搶占優先順序和子優先順序,串列埠的一般排次位。

初始化中斷。

4.  

串列埠配置  :  波特率、位元組長度 、停止位、奇偶校驗、模式、硬體流控制等

初始化串列埠、串列埠接收中斷使能、串列埠使能。

5.  

接收中斷服務函式編寫,   voidusart1_irqhandler(void)。

一般來說,接收中斷服務函式要考慮的問題比較多,主要有一下幾點:  接收資料的正確性(某位元組的校驗、包括crc校驗等),資料長度的正確性(是否接收完整),資料接收過程中突然出現中斷或者宕機的防護措施等。

6.  

串列埠函式的傳送和接收函式  usart_senddata(usart_typedef*usartx, uint16_t data);

uint16_tusart_receivedata(usart_typedef* usartx);  

7.  

串列埠的狀態標誌  flagstatususart_getflagstatus(usart_typedef* usartx, uint16_t usart_flag);

清除串列埠的中斷標誌 voidusart_clearitpendingbit(usart_typedef* usartx, uint16_t usart_it);

------

串列埠章節算是比較複雜的,涉及的內容比較多,也是重點。學好了為以後的485通訊做好基礎。

STM32F107的時鐘設定

stm32f107 的時鐘設定 stm32 的庫函式好像只有外部 8m倍頻到 72m,現在用的板子外部 25m的晶振,如何倍頻到 72m呢?解決辦法 stm32f107 的時鐘分 4步的 1 25mhz先除5 分頻到5mhz 2 再8 倍頻到40mhz 3 再5 分頻到8mhz 4 再9 倍頻到72...

STM32F107的時鐘設定

stm32的庫函式好像只有外部8m倍頻到72m,現在用的板子外部25m的晶振,如何倍頻到72m呢?解決辦法 stm32f107的時鐘分4步的 1 25mhz先除5分頻到5mhz 2 再8倍頻到40mhz 3 再5分頻到8mhz 4 再9倍頻到72mhz.stm32f103和stm32f105 stm...

STM32F103串列埠通訊

usart 通用同步非同步收發器 是乙個序列通訊裝置,可以靈活地與外部裝置進行全雙工資料交換。有別於 usart 還有乙個uart,它是在 usart 基礎上裁剪掉了同步通訊功能,只有非同步通訊。全雙工的,非同步通訊 分數波特率發生器系統 傳送和接收共用的可程式設計波特率,最高達4.5mbits s...