分享串口接收中断只能接收到一个字节的其中一个原因

问题:

今天来分享一个我这两天遇到的一个很狗血的问题,就是我在写一个新项目串口部分时候,发现串口怎么只能接收到一个字节,因为我用的是接收中断RBEN吗,每接收到一个字节都会中断一次。

可是这次我发现我每次怎么只能收到一个字节,然后我调试了一遍发现每次一帧好几个字节,只能中断一次,就接收开头第一个字节。奇了怪了,因为我这个串口配置和初始化部分之前在其他地方也用过,只是应用程序变了而已,怎么这次不行了。于是我把代码和逻辑关系都检测了一遍,没有毛病啊,串口中断触发和相应使能都没有毛病啊,怎么会这样?

如果不想看下面这么多文字,就直接看结论就好了。

于是我去网上查了一下(网上这三种说法比较多):
一、有人说是可能是因为中断处理函数里面有阻塞性比较强的代码存在,造成中断处理时间太长,无法处理下一个字节,但是我这个中断处理函数之前也用过,没有毛病啊!
二、也有人说是在接受中断同时有发送中断,造成中断嵌套,但是我这个是开启了接收使能,发送使能都没有开启,因此,不考虑是这个问题。
三、有部分说是没有开启接收中断,其中有一个兄弟在开发时候说自己每次中断后,都需要重新使能一遍接收中断,我看了也试了对我不起作用。

结果:

没办法,我就换了几块板子试试看,发现还是同样的问题,思来思去,又把串口部分看了一遍,最后想到不会使我485转串口连接端子那边有问题吧,因为之前也遇到过485转串口的连接端子线出现问题不能接受和发送,这次只能接受一个字节不会真的是这个原因吧!!!,于是我就把这个端子线换了一下,没想到,串口真的恢复了,我去啊,没想到是物理问题造成的,这坑爹的端子线,让我弄了一天我去。

所以,真的有时候,搞嵌入式出现问题太多了,有可能是硬件电路问题,也有可能是软件问题,更有可能是外接设备的接线有问题。。。,幸好是现场自己弄,要是这种情况远程来调试怕是调到猴年马月啊。

因此,今天分享这篇,也是跟大家分享一波我自己这次的经历,好让如果也有遇到这种只能接受到一个字节的小伙伴看看,是不是也有可能是因为串口线或者连接线有问题造成的。如果有的话可以尝试换一下串口的通信线和连接线来解决。

本人水平有限,上述信息仅供学习参考,如有错误和不妥之处,请多多指教。
另外创作不易,请勿抄袭,如果有帮助到大家的话希望大家可以点个赞和收藏,谢谢~

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

OMGMac

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值