STM32串口接收数据显示到LCD上,调试半天仍然搞不出来
用的原子的战舰
开发板,各配置都配置完成,中断也OK,但是我觉得是我程序逻辑有问题,但找不到突破口,可能对串口理解不够透彻。
如果有现成例子的话可以发给我作为参考更好。
主函数里的逻辑区
各初始化函数,各变量定义就不贴了;
while(1)
{
if(USART_RX_STA&0x8000)
{
len=USART_RX_STA&0x3fff;
printf("
RECEIVE DATA:
");
for(t=0;t<len;t++)
{
USART_SendData(USART1, USART_RX_BUF[t]);//Ïò´®¿Ú1·¢ËÍÊý¾Ý
while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//µÈ´ý·¢ËͽáÊø
}
sprintf((char*)tmp,"RECEIVE=%d",USART_ReceiveData(USART1));
LCD_ShowString(60,100,200,16,16,tmp);
printf("
"); //²åÈë»»ÐÐ
USART_RX_STA=0;
}
}
请问楼主你是怎么解决的?我的程序是接收到后如果接收的字符比上次接收的短,后面几位还是会在,没有消失,这个该怎么解决?
一周热门 更多>