完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
看了原子哥的F4开发板的 “实验58 UCOSII实验3-消息队列、信号量集和软件定时器” 例程里面有求消息队列的大小 (OS_Q*)(q_msg->OSEventPtr))->OSQEntries但有时候我们
想知道收到的某条消息的具体长度,该怎么做?比如,我事先准备了10条消息队列内存,每条消息队列最大给分配的长度为100个字节,每次 实际发送的长度为0~100,那么接收端怎么得到每次实际发送数据的长度? 求助版主@zuozhongkai |
|
相关推荐
4个回答
|
|
我记得貌似函数返回值还是函数参数什么的就是消息长度,我电脑挂了,插不了资料了。你看一下接受数据的API函数
|
|
|
|
接收函数是这样的
void *OSQPend (OS_EVENT *pevent, INT16U timeout, INT8U *err); 它返回接收消息的地址,但没有所接收消息的长度,现在需要用接收消息的长度,不知道该怎么做? 如果实在不行,我想的是,自己封装一个协议,比如, 帧头 ,数据长度, 数据,帧尾 0xA5, 0x12,0x34, xxxxxx, 0x5A 让发送方把消息长度包含在消息里,接收方解析时,自己去计算长度,不过稍显得麻烦, 不知道有没有哪里本身就带有消息的长度的? |
|
|
|
你应该看一下UCOSIII,叫II而言,III 强大了一大截,我刚才实验了一下,
key=OSQPend((OS_Q* )&KEY_Msg, (OS_TICK )0, (OS_OPT )OS_OPT_PEND_BLOCKING, (OS_MSG_SIZE* )&size, (CPU_TS* )0, (OS_ERR* )&err); 这个函数中的size就是消息的字节数,很好用;嗯 |
|
|
|
谢谢你,我该了解UCOSIII了
|
|
|
|
只有小组成员才能发言,加入小组>>
800 浏览 0 评论
1156 浏览 1 评论
2531 浏览 5 评论
2863 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2714 浏览 6 评论
keil5中manage run-time environment怎么是灰色,不可以操作吗?
1090浏览 3评论
195浏览 2评论
461浏览 2评论
374浏览 2评论
M0518 PWM的电压输出只有2V左右,没有3.3V是怎么回事?
456浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-25 02:57 , Processed in 1.199345 second(s), Total 86, Slave 67 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号