OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4989|回复: 10

FreeRTOS队列中存放不定长度的帧数据

[复制链接]

3

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
137
金钱
137
注册时间
2012-8-28
在线时间
20 小时
发表于 2019-8-6 14:23:45 | 显示全部楼层 |阅读模式
1金钱
问题说明:有如下数据帧:
第一帧:FF 01 01
第二帧:FF 01 01 02
第三帧:FF 01 01 02 03
第四帧:FF 01 01 02 03 04
.........
.........
.........
第N帧:FF 01 01 02 03 04 05 06 07 .... N  
(每帧数据长度  大于3 小于N个字节)
STM32通过串口发送轮询命令,但是设备回复的数据帧长度不一致,然后怎么通过队列发送这些不定长的数据帧给其他任务读取?
希望大牛指导一下。

最佳答案

查看完整内容[请看2#楼]

FreeRTOS V10 里面的stream_buffer支持不定长度 或者放到全局变量里面然后发送任务通知让其他任务读取。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

35

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1593
金钱
1593
注册时间
2014-4-27
在线时间
241 小时
发表于 2019-8-6 14:23:46 | 显示全部楼层
FreeRTOS V10 里面的stream_buffer支持不定长度

或者放到全局变量里面然后发送任务通知让其他任务读取。
回复

使用道具 举报

3

主题

1155

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
7462
金钱
7462
注册时间
2015-1-15
在线时间
1367 小时
发表于 2019-8-6 16:21:56 | 显示全部楼层
封装一个结构体,发结构体地址发出去,接收端应该知道该怎么处理
一分耕耘一分收获。
回复

使用道具 举报

0

主题

7

帖子

0

精华

新手上路

积分
45
金钱
45
注册时间
2019-6-14
在线时间
5 小时
发表于 2019-8-9 12:04:28 | 显示全部楼层
消息队列,传递指针
回复

使用道具 举报

3

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
137
金钱
137
注册时间
2012-8-28
在线时间
20 小时
 楼主| 发表于 2019-8-9 16:42:06 | 显示全部楼层
谢谢大家的帮助,用结构体的话
比如:
struct  aa {
uint8_t a[10];
uint8_t b[20];
......
};
如果是这样的,我有100种长度,是不是需要定义100个数据。

你们说的是不是需要实现一个链表把不同数据长度的数据连接起来?

对于FreeRTOS中的队列第一次使用不太明白
回复

使用道具 举报

3

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
137
金钱
137
注册时间
2012-8-28
在线时间
20 小时
 楼主| 发表于 2019-8-9 16:43:06 | 显示全部楼层
青云LI 发表于 2019-8-9 12:04
消息队列,传递指针

你好!我对于FreeRTOS中的队列第一次使用不太明白
您能举一个简单的列子吗?或者这个结构体大概怎么定义?谢谢
回复

使用道具 举报

3

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
137
金钱
137
注册时间
2012-8-28
在线时间
20 小时
 楼主| 发表于 2019-8-9 16:44:36 | 显示全部楼层
yklstudent 发表于 2019-8-6 16:21
封装一个结构体,发结构体地址发出去,接收端应该知道该怎么处理

谢谢您的回复 ,就是不知道这个结构体怎么定义才好,您能举一个简单的列子吗?
回复

使用道具 举报

3

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
137
金钱
137
注册时间
2012-8-28
在线时间
20 小时
 楼主| 发表于 2019-8-9 16:46:19 | 显示全部楼层
zhangrupei 发表于 2019-8-6 14:23
FreeRTOS V10 里面的stream_buffer支持不定长度

或者放到全局变量里面然后发送任务通知让其他任务读取。

我现在的做法是没有用队列,串口接收完一帧数据后存放到一个全局变量的大数组中,然后另外一个任务去读取并解析
回复

使用道具 举报

0

主题

7

帖子

0

精华

新手上路

积分
45
金钱
45
注册时间
2019-6-14
在线时间
5 小时
发表于 2019-8-9 18:12:13 | 显示全部楼层
zhuczloveai910 发表于 2019-8-9 16:43
你好!我对于FreeRTOS中的队列第一次使用不太明白
您能举一个简单的列子吗?或者这个结构体大概怎么定 ...

你可以去看下安富莱或野火的freertos教程,里面有详细举例
回复

使用道具 举报

0

主题

7

帖子

0

精华

新手上路

积分
45
金钱
45
注册时间
2019-6-14
在线时间
5 小时
发表于 2019-8-9 18:12:44 | 显示全部楼层
zhuczloveai910 发表于 2019-8-9 16:43
你好!我对于FreeRTOS中的队列第一次使用不太明白
您能举一个简单的列子吗?或者这个结构体大概怎么定 ...

你可以去看下安富莱或野火的freertos教程,里面有详细举例
回复

使用道具 举报

3

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
137
金钱
137
注册时间
2012-8-28
在线时间
20 小时
 楼主| 发表于 2019-8-16 13:48:55 | 显示全部楼层
青云LI 发表于 2019-8-9 18:12
你可以去看下安富莱或野火的freertos教程,里面有详细举例

嗯,好的,谢谢
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 21:57

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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