STM32USART串列埠通訊

2021-07-27 10:38:56 字數 931 閱讀 4069

問題描述:利用usart串列埠程式,實現pc與stm32通訊,計算機傳送資料,stm32接受後,再傳送給pc端;

1.gpio埠配置

根據手冊:pa.9為tx(傳送),pa.10為rx(接受),因此:pa.9為復用推挽輸出,pa.10為浮空輸入,一行**搞定:

void gpio_config()

2.配置usart相關暫存器

stm32有3個usart,這裡用usart1說明

波特率:由suart1->brr控制

更正一下,上表錯誤:div_mantissa[11:0]表示整數;div_fraction[3:0]表示小數。

波特率的計算公式如下:

這裡選擇時鐘為72mhz;波特率為9600;可以得到:usartdiv=468.75;整數部分:468=0x1d4;小數部分:0.75=0xc;

所以在usart1->brr=0x1d4c;即可設定波特率9600;

然後是控制暫存器:usart->cr1;

參照手冊,現在只考慮最簡單的形式(無中斷):使能usart,使能讀,使能寫。

void usart_config()

下面在有乙個傳送函式:

void send(uchar data)

其中的延時函式可以不加;

然後就是main主函式:

int main()

}}

其中關於usart1->sr的操作是在檢測微控制器是否接受到資料;

stm32 USART 串列埠通訊

簡單區分同步和非同步就是看通訊時需不需要對外提供時鐘輸出 usart 有專門控制傳送的傳送器 控制接收的接收器,還有喚醒單元 中斷控制等等。使用 usart 之前需要向 usart cr1 暫存器的 ue 位置 1 使能 usart,ue 位用來開啟供給給串列埠的時鐘。傳送或者接收資料字長可選 8 ...

stm32 USART串列埠通訊總結

usart.h ifndef usart h define usart h include stdio.h include sys.h define usart rec len 200 定義最大接收位元組數 200 define en usart1 rx 1 使能 1 禁止 0 串列埠1接收 ext...

STM32 USART通訊 筆記

新增usart通訊不良的因素 2020 5 12 stm32f1xx晶元參考手冊 stm32 reference manual rm0008 usart universal synchronous asynchronous receiver transmitter 它名為通用非同步 同步收發器 它是...