|
发表于 2025-2-19 09:47:37
703 浏览 3 回复
[飞控嵌入式]
PX4串口通信数据发送
通过串口发送无人机的航姿信息。于是先按照task的模板写了一个串口开启及发送的程序,这一部分很顺利,可以正常通过串口调试助手看到数据。然后又进一步希望以特定频率发送航姿信息,想过直接delay,但是精度不够,然后又看到有hrt_call_every函数,所以调用这个函数,但是却出现poll timeout错误,于是放弃这个方法。随后又采用work queue的模板,准备用工作队列方式发送数据,可是用工作队列连数据都不发送了,现在一直无法解决这些问题。现在的问题是用task方式,不知道如何以特定频率发送,用work queue发送数据,在串口调试助手上看不到数据。Setp1:修改task模板 写串口发送程序 顺利,可以看到数据
setp2:添加特定频率发送功能 方法:1.delay延时 精度不够 2.hrt_call_every函数调用 出现错误 失败
setp3:修改work queue模板 参照distance sensor的tfmin程序 失败,串口调试助手接收不到数据
问题:参照task模板如何以特定频率发送?
为什么用work queue发送数据,无数据发送
我知道答案
回答被采纳将会获得 5 阿木币 已有3人回答
|
 扫一扫浏览分享
|
|
|
|
|
|
|
发表于 2025-2-25 10:02:19
|
|
|
|
|
|
|
发表于 2025-2-25 10:10:06
1、使用orb_set_interval和orb_check实现周期性数据发送
2、建议排查工作队列是否触发,确认send_attitude_worker是否被调用、串口配置是否正确、串口是否被占用 |
|
|
|
|
|
|
|
楼主|
发表于 2025-3-3 15:12:29
orb_set_interval不是用于uorb之间的吗?
我通过在地面站输入send_att start是有成功开启的,并且输入work_queue status 发现存在send_att线程。串口配置以及是否被占用这两个都是没问题的。 |
|
|
|
|
|
|
|