rt_event_send(&evt, EVT_2);while(RT_TRUE == state_run) { err = rt_event_recv(&evt,EVT...
接收事件的函数原型如下: rt_err_t rt_event_recv(rt_event_t event, rt_uint32_t set, rt_uint8_t option, rt_int32_t timeout, rt_uint32_t *recved) 调用这个函数时,系统首先根据 set 参数和接收选项 option 来判断它要接收的事件是否发生了。 函数的各个参数解释如下: 参数描述 接收成功,函数返回...
当调用rt_event_recv()函数时,系统首先根据set参数和接收选项option来判断它要接收的事件是否发生: 事件已经发生,则根据参数option上是否设置有RT_EVENT_FLAG_CLEAR来决定是否重置事件的相对应的标志位。将发送的事件标志位填充到recved指向的标志变量中。 事件没有发生,把等待的set和option参数填入线程控制块结构中,然...
rt_event_send(&event,EVENT_FLAG0)rt_event_send(&event,EVENT_FLAG1)rt_event_send(&event,EVENT_FLAG0|EVENT_FLAG3) 接收event时也可以按需组合事件,看一下rt_event_recv函数用法: /** * @brief This function will receive an event from event object. if the event is unavailable, the thread shal...
接收事件的函数原型如下: rt_err_t rt_event_recv(rt_event_t event,rt_uint32_t set,rt_uint8_t option,rt_int32_t timeout,rt_uint32_t *recved) 调用这个函数时,系统首先根据set参数和接收选项option来判断它要接收的事件是否发生了。 函数的各个参数解释如下: ...
1rt_err_t rt_event_recv(rt_event_t event, 2 rt_uint32_t set, 3 rt_uint8_t option, 4 rt_int32_t timeout, 5 rt_uint32_t *recved); 1. 2. 3. 4. 5. (1)入口参数: event:事件集对象的句柄。 set:接收线程感兴趣的事件。
rt_event_recv rt_mb_send_wait rt_mb_recv rt_mq_send_wait rt_mq_recv 线程操作类 登录后复制rt_thread_detach rt_thread_delete rt_thread_yield rt_thread_delay rt_thread_delay_until rt_thread_mdelay rt_thread_suspend rt_thread_resume ...
使用rt_event_recv函数可以清除事件集的指定标志位,示例代码如下: ```c rt_uint32_t clear = 0x01; // 要清除的标志位 rt_event_recv(ev, clear, RT_EVENT_AND_CLEAR, set, RT_W本人TING_FOREVER); ``` 3. 等待事件集标志位 使用rt_event_recv函数可以等待事件集的指定标志位,示例代码如下: ```...
* @param recved the received event, if you don't care, RT_NULL can be set. * * @return the error code */ rt_err_t rt_event_recv(rt_event_t event, rt_uint32_t set, rt_uint8_t option, rt_int32_t timeout, rt_uint32_t *recved) ...
调用接收事件函数rt_event_recv(),线程从事件对象 event 接收事件。 若事件对象 event 满足线程所感兴趣的事件,则根据接收选项 option 是否设置RT_EVENT_FLAG_CLEAR来决定是否清除事件相应标志位,并返回; 若不满足,则把线程感兴趣的事件 set 和接收选项 option 写到线程控制块,然后把线程挂在此事件对象的阻塞队列上...