单片机串口模块调试方法.docx

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第 第 PAGE 1 页 共 NUMPAGES 1 页 单片机串口模块调试方法 技巧一: 笔者在调试某Cortex-M3内核(单片机)时遇到一个问题,此单片机不具备在线(仿真)功能,因此调试代码时只能使用(UART)输出Log的方式调试。调试过程中发现串口模块会影响单片机启动,进入死机状态,没有任何响应。 取下串口模块,然后给单片机加电可以正常启动,看来是串口模块引入了某种干扰。使用排除法,依次拔掉TX、RX,发现RX不会导致死机,拔下TX时可以正常启动,插上TX启动失败(TX和RX指的串口模块)。如果先给单片机(供电),然后插入串口TX则正常运行。思来想去,应该是串口模块的TX驱动能力较强,当单片机没有供电时,串口模块的TX给单片机提供了部分电力,这部分电力不能使单片机正常工作,但是使他进入某异常状态,此时即使给单片机加电也不能正常工作。UART的TX在没有数据传输的时候输出高电平,有一定的驱动能力,有时候不可小觑。 为了解决此问题增加一个(二极管),预留一个上拉(电阻),如下图所示: 当串口模块的TX输出0时,二极管导通,二极管正极被拉低,也就是单片机的RX拉低,单片机收到0。当串口模块的TX输出1时,二极管截止,单片机的RX被内部上拉电阻拉高,二极管正极最好预留一个上拉电阻。二极管最好选择正向压降小,开关速度快的(肖特基)二极管。 技巧二: 我司某款(产品)使用串口进行(芯片)间通讯,通讯协议采用一问一答的方式,即双方不会同时发出数据。我们在调试某项功能时需要监听记录串口数据包,然后通过数据包分析问题,通常情况使用两个串口模块分别监听TX和RX,可是这次数据量有点大,使用两个串口模块截取数据,组合到一起很困难,于是乎设计了以下小电路,使两条串口线的数据转移到一条线上去,然后使用串口模块接收。两个二极管相当于一个“与门”,预留一个上拉电阻。 这种方式只适合一问一答的通讯方式,即双方不会同时发出数据,如果双方同时发出数据,接收就会混乱。

文档评论(0)

157****9172 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档