完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
|
|
把usart1->sr改成USART_GetFlagStatus(USART1 USART_FLAG_TC)就可以了
|
|
|
|
应该是你的数据发送完成判断出错了,改成这样试一试,我用的没啥问题。while((USART1->SR & 0x0080)!=0x0080);
|
|
|
|
|
|
|
|
实咋一看是说的通的,但是在仔细看手册的时候发现 TC 和 TXE 标志位在复位的时候被置1 ,这样第一次while循环就是没有用的。这样导致了首次第一个字符还没有被输出,就被后面的字符覆盖掉,造成实际看到的丢失现象。解决办法就很简单:在前面加上一句 USART1->SR;
|
|
|
|
|
|
|
|
这种应该是程序判断上有误,在调试模式下看看,串口发送的时候,第一个字节是否被正确写入寄存器
|
|
|
|
一楼回答的是正解。
|
|
|
|
发送时的判断有点小问题。用这个while((USART1->SR & 0x0080)!=0x0080)检测发送不会出问题。
|
|
|
|
两种方式,一种是初始化后清除标志位,一种是先发送一个没用的数据,从第二次开始就正常了
|
|
|
|
在设置串口标志时使用USART1 USART_FLAG_TC进行配置
|
|
|
|
只有小组成员才能发言,加入小组>>
722 浏览 0 评论
1123 浏览 1 评论
2502 浏览 5 评论
2840 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2683 浏览 6 评论
使用eim外接fpga可是端口一点反应都没有有没有大哥指点一下啊
664浏览 9评论
679浏览 7评论
请教大神怎样去解决iMX6Q在linux3.0.35内核上做AP失败的问题呢
794浏览 6评论
641浏览 5评论
682浏览 5评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-29 00:02 , Processed in 1.206453 second(s), Total 101, Slave 81 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号