stm32串口通信usart1收发代码

stm32串口usart1收发代码

IC:stm32f103vet6
串口引脚:PA9(TX),PA10(RX)

keil5工程连接:
https://www.cnblogs.com/hjf-log/p/stm32-usart1.html
我的博客园里面有百度网盘的链接和提取码

代码是在工程模板的基础上移植修改了正点原子的串口代码

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);   
		}
	}	 
}

串口现象:
未发送时
stm32串口通信usart1收发代码_第1张图片
发送信息时:
stm32串口通信usart1收发代码_第2张图片

你可能感兴趣的:(stm32f103vet6)