16

阿木币

0

精华

15 小时

在线时间

应届白菜

Rank: 1

发表于 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人回答

扫一扫浏览分享
回复

使用道具 举报

4

阿木币

0

精华

8 小时

在线时间

应届白菜

Rank: 1

发表于 2025-2-25 10:02:19
需要特定频率发送可以考虑高精度定时器的方式,可以参考这个链接
https://blog.csdn.net/lida2003/article/details/126000470
回复 点赞

使用道具 举报

4

阿木币

0

精华

30 小时

在线时间

应届白菜

Rank: 1

发表于 2025-2-25 10:10:06
1、使用orb_set_interval和orb_check实现周期性数据发送
2、建议排查工作队列是否触发,确认send_attitude_worker是否被调用、串口配置是否正确、串口是否被占用
回复 点赞

使用道具 举报

16

阿木币

0

精华

15 小时

在线时间

应届白菜

Rank: 1

 楼主| 发表于 2025-3-3 15:12:29
13934541459 发表于 2025-2-25 10:10
1、使用orb_set_interval和orb_check实现周期性数据发送
2、建议排查工作队列是否触发,确认send_attitude_ ...

orb_set_interval不是用于uorb之间的吗?
我通过在地面站输入send_att start是有成功开启的,并且输入work_queue status 发现存在send_att线程。串口配置以及是否被占用这两个都是没问题的。
回复 点赞

使用道具 举报

返回列表
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表