處理器與外部裝置通訊的兩種方式:
序列通訊:按照資料傳輸方式分為單工、半雙工、全雙工
序列通訊的通訊方式:
同步通訊:速度由時鐘同步訊號決定,每個時鐘訊號(如上公升沿)發生時傳輸乙個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...