SBUS出现24个字节1帧或者0xF8开头的问题及其解决办法

问题

去年下半年接到导师给的任务:用一个航模遥控器控制一台需要多控制量的设备。由于单片机资源紧张,我只能使用一个串口接收SBUS,收到数据后再解算每个通道的值。上网查看了这篇文章:SBUS协议及编解码,C语言源码,了解到协议的构成,信心满满的自己焊了其中第一幅图的反相器,串口接上一看懵了。为什么别人读出来的是0x0F开头稳定的25字节1帧,我读出来的是0xF8开头的时而24字节时而25字节1帧呢?试了很多种办法,打了厂家客服电话,均没有结果。后来发现是反相器的原因。由于过程中在网上找不到相关错误,所以发个博客,万一以后有和我一样的新手朋友遇到这个问题,请按如下方法解决。

解决

反相器!

在这篇博客中,提到了两种反相器的结构。我自己焊的第一种反相器,虽然用表测出具有反向效果,但是并不适用于SBUS。建议大家使用第二种反相器结构:
反相器
注意:

1.没有合适的电容可以不加,但一定要加下拉电阻!
2.在使用STM32系列单片机时,该反相器芯片的供电要选择3.3V!!5V供电将不能正常读取SBUS!

我知道我犯得这种错误很多人都不会犯,但是万一有和我一样的新手朋友,遇到同样的问题,希望这篇文章能为你节省一些时间。

学习不止,实践出真知。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值