串口调试心得

最近一段时间都在调试串口,期间遇到许多问题,在此记录下来,以备后需。以下是我的调试心得:

串口通讯出现问题,总结起来,无非就两个原因:一是数据发射端有问题;二是数据接收端有问题。这个查起来也很容易,只要用示波器测下双方串口的RX脚和TX脚就知道具体是发射端还是接收端的问题了,而且还可以在示波器上读出所发射的或接收的数据是否是自己想要传输的数据,这个就不具体叙述了。

现在所调试的是单片机开发板与PC的串口通讯,主要传输的是一些简单控制命令,未涉及文件传输,但我想道理应该都是一样的。以下是具体查证步骤:

 

1.  串口参数配置是否有问题

如果串口出现问题,首先查的就是双方的串口参数配置是否有问题,是否配为一致了,这里最容易出错的就是波特率,选择不当就会出问题。

2.  数据发射端是否正常

如果串口参数配置ok,则我们就需要验证数据发射是否正常,这个只要用示波器测下RS232与数据发射端相连的TX脚就知道,如果数据发射异常,则:

l  PC作为发射端

如果是电脑发射数据有问题,首先查证串口线是否有问题,比如说串口线中间可能断了什么的,还有就是串口线制式不同,分为交叉和非交叉两种(这只是听别人说的,具体我没去查),如果串口线没断,可以换种制式的串口线试试;如果串口线没问题,则需查下电脑串口是否可用,串口两端接触是否良好了。

l  单片机作为发射端

如果是单片机发射数据有问题,再用示波器测下单片机的串口TX脚数据是否正常,如果不正常,可能就是你代码有问题或者就是单片机的UART有问题了,如果单片机的串口TX脚数据正常,这就要查看单片机到RS232这之间的电路是否有问题了。

3.  数据接收端是否正常

如果数据发射端没有问题,则需查看接收端有没有问题了,硬件方面,如果RS232接收数据端有数据,但是与发射端数据不一样,这可能是RS232有问题,可以考虑换个232 IC。其他的基本与上一步骤相同。只是把验证TX脚改为验证RX脚而已。

这里要说的是在单片机程序设计时需注意的几个问题:

l  串口中断被打断,一般串口数据都是通过中断来读取的,如果有中断优先级比串口中断更高的中断,可能就会打断串口中断,如果这个中断执行时间很长的话,就会导致串口数据丢失问题。出现这个问题,我们可以考虑提升串口中断的优先级,不过这需看使用者的具体情况了。

l  有些单片机或者模块之类的虽然说明书说可以支持多大波特率,但实际使用时,当你用的波特率接近它的最大值或者就是最大值时,它还是会出问题,这时就需考虑降低波特率了,这个具体原因就不是很清楚了,可能是电路设计有问题,也可能是单片机本身就达不到那个波特率。

 

现在还有个问题待解决,就是在给板子上电或断电时,PC端总会收到0x00这个数据。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值