串口发送,检测是否完成

2019-07-25 11:20发布

本帖最后由 yzqgoodjob 于 2017-11-14 15:33 编辑

死循环中有下面三句:

{
//////////////////////////////////////
USART1->DR = 0x31;
while((USART1->SR&0x40)==0);
USART1->DR = 0x32;
/////////////////////////////////////

  ……
  ……
  ……
//
//

}
结果:

串口助手里只有一只接收到2222222222222……
(如果在两次写寄存器之间延迟1ms的花,1和2都能发送)


请教:
1.是什么原因造成只能成功发送2的?
2.是这句while((USART1->SR&0x40)==0);判断功能没有实现吗?
3.有较好的解决办法吗?


多谢~






友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
8条回答
LIGONG004
2019-07-25 15:48
UART5->DR = 'A';                //·¢Ëíêy¾Y
                while((UART5->SR&0X40)==0);        //μè′y·¢Ëííê±Ï
                for(i=1000;i>0; i--);
                UART5->DR = 'T';                //·¢Ëíêy¾Y
                while((UART5->SR&0X40)==0);        //μè′y·¢Ëííê±Ï
                for(i=1000;i>0; i--);
                UART5->DR = 0x1A;                //·¢Ëíêy¾Y
                while((UART5->SR&0X40)==0);        //μè′y·¢Ëííê±Ï
                for(i=1000;i>0; i--);       

一周热门 更多>