查看: 4950|回复: 5

[其他] 关于 _lwmsgq_receive()函数使用,请各位高手指导。

[复制链接]

该用户从未签到

1

主题

6

帖子

0

新手上路

Rank: 1

积分
9
最后登录
1970-1-1
发表于 2014-3-25 12:37:46 | 显示全部楼层 |阅读模式
 
在我的程序中,使用了以下一句:
result = _lwmsgq_receive((pointer)server_queue_a, msg_client_a, LWMSGQ_RECEIVE_BLOCK_ON_EMPTY,0,0);
来接收server_queue_a中的数据到msg_client_a中,如果server_queue_a中没有数据时,进程就会block在此处,如果小弟想如果在10ms内没有接到数据,程序不block在这里,应该怎么写,看了指导书,说_mqx_uint _lwmsgq_receive(
pointer handle,
_mqx_max_type_ptr message,
_mqx_uint flags,
_mqx_uint ticks,
MQX_TICK_STRUCT_PTR tick_ptr)
这个函数可以,但不知道怎么用,请各位大虾支持啊。
我知道答案 目前已有4人回答
回复

使用道具 举报

该用户从未签到

145

主题

4926

帖子

0

金牌会员

Rank: 6Rank: 6

积分
9267
最后登录
1970-1-1
发表于 2014-3-26 13:23:45 | 显示全部楼层

回复:关于 _lwmsgq_receive()函数使用,请各位高手指导。

楼主,你用的是哪款芯片,这个最好告诉大家,便于大家帮你解决问题。
回复 支持 反对

使用道具 举报

该用户从未签到

1

主题

6

帖子

0

新手上路

Rank: 1

积分
9
最后登录
1970-1-1
 楼主| 发表于 2014-3-26 16:36:53 | 显示全部楼层

RE:关于 _lwmsgq_receive()函数使用,请各位高手指导。

我用的是pk60n512vmd100,请指点啊
回复 支持 反对

使用道具 举报

该用户从未签到

145

主题

4926

帖子

0

金牌会员

Rank: 6Rank: 6

积分
9267
最后登录
1970-1-1
发表于 2014-3-27 13:24:51 | 显示全部楼层

回复:关于 _lwmsgq_receive()函数使用,请各位高手指导。

回复第 3 楼 于2014-03-26 16:36:53发表:
我用的是pk60n512vmd100,请指点啊 

楼主,你这个问题可以到我们的官网建一个技术服务请求,标题注明MQX,
那里会有很多的MQX工程师通过邮件方式帮你解决。
建服务请求的链接:[url=https://www.freescale.co
m/zh-Hans/webapp/servicerequest.create_SR.framework]https://www.freescale.co
m/zh-Hans/webapp/servicerequest.create_SR.framework[/url]
回复 支持 反对

使用道具 举报

该用户从未签到

1

主题

6

帖子

0

新手上路

Rank: 1

积分
9
最后登录
1970-1-1
 楼主| 发表于 2014-3-27 18:34:05 | 显示全部楼层

RE:关于 _lwmsgq_receive()函数使用,请各位高手指导。

您就不能帮一下下吗?大侠,实在没招了,只能用变通的办法,但是那样做确实不好。
您那个网站最后就是一通英文,真的不好填明白。
回复 支持 反对

使用道具 举报

该用户从未签到

30

主题

61

帖子

0

高级会员

Rank: 4

积分
969
最后登录
2025-7-8
发表于 2014-3-28 16:02:11 | 显示全部楼层

RE:关于 _lwmsgq_receive()函数使用,请各位高手指导。

调用下面函数:
result = _lwmsgq_receive((pointer)server_queue_a, msg_client_a, LWMSGQ_RECEIVE_BLOCK_ON_EMPTY | LWMSGQ_TIMEOUT_FOR, 2,0);
下面是函数参数说明
/*!
* \brief Gets a message from a lightweight message queue.
*
* This function removes the first message from the queue and copies the message
* to the user buffer.
* \n The message becomes a resource of the task.
*
* \param[in]  handle   Pointer to the message queue created by _lwmsgq_init.
* \param[out] message  Received message.
* \param[in]  flags    LWMSGQ_RECEIVE_BLOCK_ON_EMPTY Block the reading task if msgq is empty.
* LWMSGQ_TIMEOUT_UNTIL Perform a timeout using the tick structure as the absolute time.
* LWMSGQ_TIMEOUT_FOR Perform a timeout using the tick structure as the relative time.
* \param[in]  ticks    The maximum number of ticks to wait or NULL (unlimited wait).
* \param[in]  tick_ptr Pointer to the tick structure to use.
*
* \return MQX_OK
* \return LWMSGQ_INVALID (The handle was not valid.)
* \return LWMSGQ_EMPTY (The LWMSGQ_RECEIVE_BLOCK_ON_EMPTY flag was used and no
* messages were in the message queue.)
* \return LWMSGQ_TIMEOUT (No messages were in the message queue before the timeout
* expired.)
*
* \see _lwmsgq_init
* \see _lwmsgq_usr_check
* \see _lwmsgq_send
* \see MQX_TICK_STRUCT
*/
_mqx_uint _lwmsgq_receive
(
    pointer handle,
    _mqx_max_type_ptr message,
    _mqx_uint flags,
    _mqx_uint ticks,
    MQX_TICK_STRUCT_PTR tick_ptr
)
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2025-7-21 03:39 , Processed in 0.096238 second(s), 26 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

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