当前位置:首页 > 技术心得 > 正文内容

STM32串口发送数据首字符丢失解决办法

xjtudll7年前 (2018-05-16)技术心得6710

现象:

串口发送数据时,第一个字符丢失

例如,发送“system init\r\n”,最后收到的是“ystem init\r\n”,在此之后发送的数据均正常。

错误代码:

ccd7cbde-9d4f-4561-9198-ebecf7de88eb

原因分析:

TC 和 TXE 标志位在复位的时候被置1 ,这样第一次while循环就是没有用的。这样导致了首次第一个字符还没有被输出,就被后面的字符覆盖掉,造成实际看到的丢失现象。

34e8ce26-d2e7-4cda-8a54-0463e8b2597e

解决办法1:

在发送之前就先清除TC位

a693ef92-d9c8-4654-81bc-3b66708af8c4

解决办法2:

在串口初始化的时候先清除TC位,这样就可以保持原来的发送代码了。

USART_ClearFlag(USART1,USART_FLAG_TC);

61c87b8d-335a-4f90-94da-39e76e5cf92a

扫描二维码推送至手机访问。

版权声明:本文由鸟的天空发布,如需转载请注明出处。

本文链接:http://www.xjtudll.cn/Exp/500/

标签: STM32
分享给朋友:

“STM32串口发送数据首字符丢失解决办法” 的相关文章

PowerPCB转Protel

PowerPCB转Protel

第一步:用PowerPCB打开文件,选择Export导出,保存类型选择"ASCII Files(*.asc)",按保存按钮,弹出"ASCII Output"对话框,在导出格式(Format)中选择"PowerPCB V3.5",然后Sele...

Xcode Error:ARC forbids explicit message send of release解决及自定义ARC

Xcode Error:ARC forbids explicit message send of release解决及自定义ARC

首先:Xcode 5中是可以选择是否用ARC的,在有ARC的时候,你完全不需要也不允许做retain,release,你要考虑strong 还是weak。推荐使用ARC。 如果不用ARC,是可以去掉的。在target->build settings里面,有个APPLE LLVM 5.0 La...

sql server 2008提示“列名无效”,但是能正常查询

在SQLServer2008中,当设计(修改)表结构之后,再用SQL语句时,列名会显示无效,但执行可以通过.原因是SQL Server的intellisense(智能感知功能)需要重新整理一下,用快捷键Ctrl+Shift+R即可 归根结底是智能提示出了问题,用了缓存。...

SVN强制写日志和修改日志功能

SVN默认是可以不写日志的,也不能修改日志,使用时颇为不便。以下就讲述如何在windows系统下实现强制写日志和修改日志功能。 1、强制用户写日志 在每次提交的时候写明提交的目的是一个很好的习惯,SVN默认没有提供,但是可以通过脚本实现:将下面的代码存为bat文件,放到版本库的hooks目录下即可,...

常用电平标准

常用电平标准

现在常用的电平标准有TTL、CMOS、LVTTL、LVCMOS、ECL、PECL、LVPECL、RS232、RS485等,还有一些速度比较高的LVDS、GTL、PGTL、CML、HSTL、SSTL等。下面简单介绍一下各自的供电电源、电平标准以及使用注意事项。1、TTL电平TTL:Transistor...

IIS WCF 调用COM问题

IIS WCF 调用COM问题

参考资料: http://cn.voidcc.com/question/p-msefzjic-so.html https://www.cnblogs.com/CrazyKey/archive/2012/07/13/2590083.html https://www.cnblogs.com/Lulus/...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。