stm32串口通信usart1收发代码百度网盘链接
程序员文章站
2024-02-22 11:54:52
...
stm32串口usart1收发代码
百度网盘链接:
https://pan.baidu.com/s/13xRp2PGpkKWWJRcfKHGIYw
提取码:xyd9
IC:stm32f103vet6
串口引脚:PA9(TX),PA10(RX)
代码是在工程模板的基础上移植修改了正点原子的串口代码
mian.c
#include "sys.h"
#include "delay.h"
#include "usart.h"
uint8_t t;
uint8_t len;
uint16_t times=0;
int main(void)
{
delay_init(); //延时函数初始化
uart_init(115200); //串口初始化为115200
while(1)
{
if(USART_RX_STA&0x8000) //USART_RX_STA第十六位为1则括号内为1,表示接收完数据
{
len=USART_RX_STA&0x3fff;//得到此次接收到的数据长度
printf("\r\n您发送的消息为:\r\n\r\n");
for(t=0;t<len;t++)
{
USART_SendData(USART1, USART_RX_BUF[t]);//向串口1发送数据
while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//等待发送结束
}
printf("\r\n\r\n");//插入换行
USART_RX_STA=0;
}else
{
times++;
if(times%500==0)printf("请输入数据,以回车键结束\n");
delay_ms(10);
}
}
}
串口现象:
未发送时
发送信息时: