並行通訊
資料各個位同時傳輸,速度快,占用引腳資源多
序列通訊
資料按位順序傳輸,占用引腳資源少,速度相對比較慢
1.按照資料傳送方向可以分為:
單工:資料傳輸只支援在乙個方向上傳輸。
半雙工:允許資料在兩個方向上傳輸,但是在某一時刻只允許資料在乙個方向上傳輸。
全雙工:允許資料同時在兩個方向上傳輸。
2.序列通訊的通訊方式
同步通訊:帶時鐘同步訊號傳輸,如spi,iic通訊介面
非同步通訊:不帶時鐘同步訊號,urat(通用非同步收發器),單匯流排。
stm32的串列埠通訊介面
uart:通用非同步收發器
usart:通用同步非同步收發器
uart非同步通訊方式引腳連線方式
rs232轉換器的作用
我們所說的usb轉串列埠實際上有兩種:一種是usb轉232串列埠,一種是usb轉ttl串列埠,uart上使用的ttl電平,而pc的串列埠是rs232,由於電平定義不同,所以要做電平轉換。
stm32串列埠非同步通訊需要定義的引數
起始位資料位(8位或者9位)
奇偶校驗位(第9位)
停止位(1,15,2位)
波特率設定
常用的串列埠相關暫存器
usart_sr狀態暫存器
usart_dr資料暫存器
usart_brr波特率暫存器
波特率的計算方法
void
usart_init()
;//串列埠初始化:波特率,資料字長,奇偶校驗,硬體流控以及收發使能
void
usart_cmd()
;//使能串列埠
void
usart_itconfig()
;//使能相關中斷
void
usart_senddata()
;//傳送資料到串列埠,dr
uint16_t usart_receivedata()
;//接受資料,從dr讀取接受到的資料
flagstatus usart_getflagstatus()
;//獲取狀態標誌位
void
usart_clearflag()
;//清除狀態標誌位
itstatus usart_getitstatus()
;//獲取中斷狀態標誌位
void
usart_clearitpendingbit()
;//清除中斷狀態標誌位
串列埠配置的一般步驟
1.串列埠時鐘使能,gpio時鐘使能:
rcc_apb2periphclockcmd()
;2.串列埠復位:
usart_deinit()
; 這一步不是必須的
3.gpio埠模式設定:
gpio_init()
; 模式設定為gpio_mode_af_pp
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
(usart_typedef* usartx, uint16_t usart_flag)
;void
usart_clearitpendingbit
(usart_typedef* usartx, uint16_t usart_it)
;
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...
STM32串列埠通訊
串列埠作為mcu最重要的外部介面,同時也是軟體開發重要的除錯手段,其重要性不言而喻。在這裡我們主要從庫函式的角度來講述如何設定串列埠,來達到最基本的通訊功能。串列埠的設定一般可以歸結為以下幾個步驟 1 串列埠時鐘使能,gpio時鐘使能。2 設定引腳復用器對映,呼叫gpio pinafconfig函式...