STM32 序列通訊

2021-09-25 15:33:52 字數 1918 閱讀 1838

處理器與外部裝置通訊的兩種方式:

序列通訊:

按照資料傳輸方式分為單工、半雙工、全雙工

序列通訊的通訊方式:

同步通訊:速度由時鐘同步訊號決定,每個時鐘訊號(如上公升沿)發生時傳輸乙個bit,如spi、iic通訊介面;非同步通訊:不帶時鐘同步訊號,但有傳輸約定。如uart(通用非同步收發器),單匯流排。uart(通用非同步收發器)通訊,                    傳送/接收端使用統一波特率(確定每個bit所使用的時間),起始位/校驗位/停止位;單匯流排通訊,沒有約                    定波特率,在標準時間內高低電平的佔比來確定是1還是0。

同步非同步的通訊區別:

*1* 同步通訊要求接收端時鐘頻率和傳送端時鐘頻率一致,傳送端傳送連續的位元流(如);非同步通訊時不要求接收端時鐘和傳送端時鐘同步,傳送端傳送完乙個位元組後,可經過任意長的時間間隔再傳送下乙個位元組。

*2* 同步通訊效率高;非同步通訊效率較低。

*3* 同步通訊較複雜,雙方時鐘的允許誤差較小;非同步通訊簡單,雙方時鐘可允許一定誤差。

*4* 同步通訊可用於點對多點;非同步通訊只適用於點對點。

stm32的串列埠通訊介面:

uart:通用非同步收發器

usart:通用同步非同步收發器

1.串列埠時鐘使能:  rcc_apbxperiphclockcmd();  

gpio時鐘使能:rcc_ahb1periphclockcmd();

2.引腳復用對映:  gpio_pinafconfig();

3.gpio埠模式設定:

gpio_init();

模式設定為gpio_mode_af

4.串列埠引數初始化:usart_init();

5.開啟中斷並且初始化nvic(如果需要開啟中斷才需要這個步驟)      

nvic_init();      

usart_itconfig();

6.使能串列埠:           usart_cmd();

7.編寫中斷處理函式:usartx_irqhandler();

8.串列埠資料收發:

void usart_senddata();//傳送資料到串列埠,dr

uint16_t usart_receivedata();//接受資料,從dr讀取接受到的資料

9.串列埠傳輸狀態獲取:

flagstatus usart_getflagstatus();

void usart_clearitpendingbit();

STM32序列口中斷(0918)

串列埠通訊 serial communication 是一種裝置間非常常用的序列通訊方式。非同步通訊中沒有時鐘訊號,只有起始位,資料位,奇偶校驗位,停止位。非同步通訊中我們使用了usart 通用同步非同步收發器 tx 傳送資料輸出引腳。rx 接收資料輸入引腳。目的 在串列埠除錯助手上顯示文字。需要進...

stm32串列埠通訊

通訊方式 1 同步通訊 帶時鐘同步訊號傳輸 spi,iic等 2 非同步通訊 不帶時鐘用途訊號 usrt,單匯流排 stm32串列埠引腳表 串口號 rxd txd 1 pa10 pa9 2 pa3pa2 3 pb11 pb10 4 pc11 pc10 5 pd2pc12 通訊過程 接收過程 由rx入...

STM32串列埠通訊

1.常用的串列埠相關暫存器 1 usart sr狀態暫存器,對應的庫函式 flagstatus usart getflagstatus usart typedef usartx,uint16 t usart flag 2 usart dr資料暫存器,對應的庫函式 void usart senddat...