串列埠初始化
使能串列埠
使能中斷
傳送資料
接收資料
獲取狀態標誌位
清除狀態標誌位
獲取中斷狀態標誌位
清除中斷狀態標誌位
對於usart_rx_sta#define usart_rec_len 200
//定義最大接收位元組數 200
#define en_usart1_rx 1
//使能(1)/禁止(0)串列埠1接收
extern u8 usart_rx_buf[usart_rec_len]
;//接收緩衝,最大usart_rec_len個位元組.末位元組為換行符
extern u16 usart_rx_sta;
//接收狀態標記
bit15
bit14
bit13-0
接收完成標誌
接收到0x0d置1
接收到的有效資料個數
當微控制器接收到資料後,進入串列埠中斷服務函式,並通過0-13位對接收的資料進行計數
當接收到0x0d,0-13位停止計數,若下乙個資料為0x0a則表示接收完成,若不是0x0a則需要重新接收。
例如傳送50個資料,首先資料會被儲存到usart_rx_buf中
然後usart_rx_sta的低十四位會計數50
之後微控制器傳送0x0d將bit14置1,若接下來接收到0x0a則將bit15置1
中斷服務函式
接收函式void
usart6_irqhandler
(void
)//串列埠6中斷服務程式
else
//還沒收到0x0d}}
}}
在xcom軟體中勾選傳送新行,則傳送的資料後自帶0x0d 0x0aif
(usart_rx_sta&
0x8000
)printf
("\r\n\r\n");
//插入換行
usart_rx_sta=0;
}
如何將接收到的字串轉化成整形資料?
利用atoi(字串)函式
首先包含標頭檔案
在中斷服務函式中#include
"string.h"
int x;
//定義乙個全域性變數
void
usart6_irqhandler
(void
)//串列埠6中斷服務程式
}/*-------------------------將收到的資料轉化成整形賦值給x----------------------------------*/
}else
//還沒收到0x0d}}
}}
STM32 二 串列埠收發
使用485介面接收資料,然後返回接收的資料。usart configuration while 1 2.1.usart configuration 開起時鐘 io口時鐘 串列埠開時鐘 開啟復用時鐘 復用設定 中斷初始化 io輸入輸出設定 485共有3個引腳,收發控制引腳 預設為收 收引腳,發引腳。串...
關於stm32串列埠2收發問題。
串列埠問題對於乙個菜鳥來說,太重要了。學會看手冊好重要 stm32上有很多i o口,也有很多的內建外設想i2c,adc,isp,usart等 為了節省引出管腳,這些內建外設基本上是與i o口共用管腳的,也就是i o管腳的復用功能。但是stm32還有一特別之處就是 很多復用內建的外設的i o引腳可以通...
stm32串列埠通訊
通訊方式 1 同步通訊 帶時鐘同步訊號傳輸 spi,iic等 2 非同步通訊 不帶時鐘用途訊號 usrt,單匯流排 stm32串列埠引腳表 串口號 rxd txd 1 pa10 pa9 2 pa3pa2 3 pb11 pb10 4 pc11 pc10 5 pd2pc12 通訊過程 接收過程 由rx入...