APM中SBUS信号解析
一、SBUS信号概述
SBUS信号以串口传输,波特率为100000bps。每2ms一帧,一帧25个字节。其中第0字节为起始帧,固定为0x0F。第24字节为帧尾。第1~22字节为1-16比例通道数据字节。第23字节为状态字,具体位含义如下:
第3位:是否丢帧标识,1为丢帧,0为正常。
第4位:是否失控保护是否激活,1为激活。
二、APM中SBUS数据流
老规矩,先上类图。
(1)
如图(1)所示,硬件抽象层AP_HAL::RCInput是具体应用平台的父类,根据具体的芯片选择对应的子类与子类的方法。由于雷迅的x7-pro用的stm32H7的芯片,故实例化ChibiOS::RCInput子类。
(2)
APM中sbus数据在AP_RCProtocol_SBUS::sbus_decode()函数中解析,该函数的调用关系见图(2)。在ChibiOS命名空间下的RCInput类中的_timer_tick()函数中获取了AP_RCProtocol_SBUS类的实例化对象rcprot。rcprot调用read函数,获取_rc_values值,该值通过hal.rcin接口传输到上层应用中。
(3)
如图(3)所示,Copter::rc_loop()以100Hz的频率调用read_radio();遥控器的数据以100Hz的频率更新。
三、SBUS协议解析
APM具体SBUS解析见下图。
(4)
如图(4)所示,sbus_decode首先判断帧头,若帧头非0x0F,直接退出解析,返回false。帧尾未作处理。
APM中SBUS信号解析相关推荐
- 树莓派基础实验39:解析无线电接收机PWM、SBUS信号
一.介绍 虽然如今或者将来,5G网络的建设带来人工智能和工业自动化的全面升级,生产活动中劳动力的需求大大减少,大量的劳动力将向内容生产行业和服务行业转移.教育.医疗.娱乐.公共管理等诸多领域,乃至 ...
- STM32-HAL库串口DMA空闲中断的正确使用方式+解析SBUS信号
STM32-HAL库串口DMA空闲中断的正确使用方式+解析SBUS信号 一. 问题描述 二. 方法一--使用HAL_UART_Receive_DMA 三. 方法二--使用HAL_UARTEx_Rece ...
- Qt中的信号与槽机制解析
注:要想使用Qt的核心机制信号与槽,就必须在类的私有数据区声明Q_OBJECT宏,然后会有moc编译器负责读取这个宏进行代码转化,从而使Qt这个特有的机制得到使用. 所谓信号槽,简单来说,就像是插销一 ...
- matlab求信号的瞬时相位,phrase MATLAB中关于信号瞬时相位 频率的提取的代码,值得学习,很实用 267万源代码下载- www.pudn.com...
文件名称: phrase下载 收藏√ [ 5 4 3 2 1 ] 开发工具: matlab 文件大小: 2403 KB 上传时间: 2014-05-06 下载次数: 94 提 供 者: 杨 ...
- linux内核定义的常用信号6,Linux中的信号
在 Linux 中,理解信号的概念是非常重要的.这是因为,信号被用于通过 Linux 命令行所做的一些常见活动中.例如,每当你按 Ctrl+C 组合键来从命令行终结一个命令的执行,你就使用了信号.每当 ...
- 10JavaScript中的预解析
技术交流QQ群:1027579432,欢迎你的加入! 1.预解析 JavaScript代码是由浏览器中的JavaScript解析器来执行的.JavaScript解析器在运行JavaScript代码的时 ...
- 我使用过的Linux命令之trap - 在脚本中处理信号
用途说明 trap是一个shell内建命令,它用来在脚本中指定信号如何处理.比如,按Ctrl+C会使脚本终止执行,实际上系统发送了SIGINT信号给脚本进程,SIGINT信号的默认处理方式就是退出程序 ...
- Caffe中的损失函数解析
Caffe中的损失函数解析 导言 在有监督的机器学习中,需要有标签数据,与此同时,也需要有对应的损失函数(Loss Function). 在Caffe中,目前已经实现了一些损失函数,包括最常见的L2损 ...
- 【数字信号处理】相关函数应用 ( 相关函数应用场景 | 噪声中检测信号原理 )
文章目录 一.相关函数应用场景 一.相关函数应用场景 求下面信号的 " 自相关函数 " : x(n)=sin(2πfn)+N(n)x(n) = \sin(2\pi fn) + N ...
- 2020美国计算机研究生学校排名,2020 US.news 美国研究生院排名出炉,美中国际独家解析!...
原标题:2020 US.news 美国研究生院排名出炉,美中国际独家解析! 今天,美国US.news发布了2020年美国研究生院排名.和往年一样,本次研究生院细分为商科.法学.教育.工程.医学(分为研 ...
最新文章
- 低质量的勤奋,比懒惰更可怕
- 如何检查Go中是否存在文件?
- 《后浪》刷屏力图破壁二次元,B站还有哪些短板?
- python WindroseAxes 报错 has no attribute ‘Appender‘
- qq语音按住ctrl就静音怎么解决_excel图形处理技巧:怎么制作出地摊经济的街景...
- Eclipse快速导入继承类的方法
- php三次握手,深入理解TCP协议及其源代码——三次握手(示例代码)
- word模板中替换文本中自定义字符串生成月报
- FPGA 光纤传输IP核的使用
- 华硕笔记本怎么安装计算机,华硕笔记本电脑驱动怎么安装(一次装全,Win10)...
- 初级、中级、高级程序员的区别在哪里?
- 【点云处理技术之PCL】点云配准算法之NDT
- 北京-IT技术狗-顾名思义 解释一下当时随手写下这个名字
- 2017北京区域赛 G - Liaoning Ship’s Voyage【计算几何+bfs】
- 三维空间刚体运动——(1)齐次坐标与旋转矩阵
- 曹祖圣VB.NET视频学习工具
- 《浅谈-Android系统越用反应越慢的问题》
- 苹果Apple Pay优缺点全解析
- Autovue直连P6 EPPM
- OpenScap基础应用
热门文章
- 变革中的技术——2010-2011回顾与展望
- HttpClient下载图片实例
- 自然语言处理NLP星空智能对话机器人系列:论文解读 How Good is Your Tokenizer? (你的词元分析器有多好?多语言模型的单语性能研究)
- 离线地图瓦片下载工具
- html播放rtmp直播,video.js实现浏览器播放rtmp协议直播流的问题
- sqldependency 的使用
- edius裁剪快捷键_edius常用的快捷键有哪些-怎么设置快捷键-edius快捷键使用大全...
- vim插件介绍(一)之Tabular
- HTML CSS 个人网页设计 WEB前端大作业代码
- 2 测试方法与理论 - 软件测试