欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

MCU系列之-浅谈sbus通信协议(源码,原理图均有)

程序员文章站 2022-06-22 22:53:21
大家好,今天我发表一篇关于sbus通信协议的解析,刚开始作者为啥要做这个东西呢,因为作者在2019年4月21日参加了广东举办的中国工程机器人大赛,做的是小型无人机,作者用的是FS-i6遥控,刚开始的通信协议是飞控作者写好了,后来在我回到学校开始做飞思卡尔比赛的时候,突然想遥控飞卡车,哈哈哈,这玩起来肯定爽歪歪啊,初始时候我本来想用蓝牙手机遥控,这个太简单了,写几行代码,发送几个命令就ok了,但是后来想了想,手机遥控肯定手感不好啊,我不是有航模遥控器吗,就用它了,于是一不做二不休撸起袖头开始干,用FS的话有...
大家好,今天我发表一篇关于sbus通信协议的解析,刚开始作者为啥要做这个东西呢,因为作者在2019年4月21日参加了广东举办的中国工程机器人大赛,做的是小型无人机,
作者用的是FS-i6遥控,刚开始的通信协议是飞控作者写好了,后来在我回到学校开始做飞思卡尔比赛的时候,突然想遥控飞卡车,哈哈哈,这玩起来肯定爽歪歪啊,初始时候我本来想用蓝牙手机遥控,这个太简单了,写几行代码,发送几个命令就ok了,但是后来想了想,手机遥控肯定手感不好啊,我不是有航模遥控器吗,就用它了,于是一不做二不休撸起袖头开始干,用FS的话有三个通信方式,ppm,sbus,pwm,用pwm接线太多直接pass用ppm捕获吗,算了还是用sbus吧,sbus通信速率远高于ppm,然后我就开始找资料,看别人写的代码,但是都失败了,我写了一天一夜的代码,晚上几乎没睡觉都在写,刚开始我是用k66单片机写的,没写成功,后来换了stm32f1搞,又搞了几个小时还是没搞出来什么,我用上位机看我输出的数字,老是不对,后来我去qq找大佬,大佬问我硬件有没有接对,我一看,我靠,sbus需用如下电路对电平反相,再接到串口接收的管脚。三极管可以用8050。

MCU系列之-浅谈sbus通信协议(源码,原理图均有)
难受啊,搞了一天原来是电路错了,我赶快到实验室焊接板子,搞完之后我回来继续做,但是还是不对,printf打印出来的数据还是不对,我都想放弃了,但是没有,刚开始测试波形没问题的,下面是软件的问题了,下面该串口的初始化,串口配置为波特率100kbps( 100000 ),8位数据,偶校验(even),2位停止位,无流控。对应代码如下
MCU系列之-浅谈sbus通信协议(源码,原理图均有)
好,这个搞定了,开始解析啦,解析代码如下
MCU系列之-浅谈sbus通信协议(源码,原理图均有)
读取数据解决了,解析搞定了,但是还是不对,到底哪里问题呢?哦,原来是我代码格式写错了,真是细节决定成败,最后我终于改成功了,我后来移植到 k66上也成功了,至于解析的这块作者能力有限,看的是网上的教程,网站https://blog.csdn.net/wsptr/article/details/53795458?tdsourcetag=s_pcqq_aiomsg
我在这里就不在赘述了,总结下想完成sbus,1:sbus是串口接受的通信 ,接单片机rx.2:接反向电路。3:解析sbus.这些搞完之后就开始写自己想要的效果代码了,作者用在了遥控飞思卡尔车上,玩起来很快乐。
MCU系列之-浅谈sbus通信协议(源码,原理图均有)
是不是很酷呀,还等啥,写个sbus来遥控吧。

本文地址:https://blog.csdn.net/weixin_45501867/article/details/107621968