usart编写顺序(串口通讯)及其示例

在这里插入图片描述
在这里插入图片描述
while(1)
{

if(USART_RX_STA&0x8000)//得到此次接受的数据长度(当16位置1时说明此次接受完毕)
		{					   
			len=USART_RX_STA&0x3fff;  //0x3fff即0011 1111 1111 1111
	   //其中第15位为0x0d换行/0x0a回车,用这种方式可以获取代码长度
			printf("\r\n您发送的消息为:\r\n");
			for(t=0;t<len;t++)
			{
				USART_SendData(USART1, USART_RX_BUF[t]);         
				//这行代码可以将所获取的代码写入写入缓存区
				while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
				//USART_GetFlagStatus用于检测标志位
				//USART_FLAG_RXNE接收数据寄存器非空标志位即非空时就会持续运行
			}
			printf("\r\n\r\n");//\n为0x0d换行 \r为0x0a回车	
			USART_RX_STA=0;	 //接受位数值		
}else
	{
		times++;  //跟下一行代码相配合,意思是以0.5s为周期处理一次数据
		if(times%5000==0)
		{
			printf("\r\n接受数据中\r\n");
		}
		if(times%200==0)printf("请输入数据,以回车结束\r\n");  
		if(times%30==0)LED0=!LED0;//LED闪烁以代表程序正常运行
		delay_ms(10);   
	}
}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值