传感器采集线程当使用定时器周期产生信号量来触发采集并发送邮件,此时可以发送(调试可看到发送返回正确直至超过邮箱的最大邮件数后返回负值),邮箱接收者始终收不到邮件(无论定时器周期延时怎么变长)。 而将当定时器触发信号量改成系统延时函数时,其它不变,邮箱接收者就可以正确接收到邮件。请问是啥原因? 唯一区别是定时器优先级(4级)高,但是定时周期无论怎么变长,等于将发邮件时间间隔拉长,都是能发收不到。
查看更多
(1)
(2)
你的意思是这样吗
欢迎发表与嵌入式相关的技术分享、开发技巧、工具介绍、技术设想、职业心得、行业评论等对他人有启发,排版优雅的文章
回到 顶部
发布 问题
分享 好友
手机 浏览
投诉 建议
回到 底部
(1)
此时接收不到邮件
(2)
此时可以接收到邮件
@杰瑞鼠 第一种情况接收函数运行到了吗
一直在这里阻塞if (rt_mb_recv(&mb_Lcd, (rt_uint32_t *)(&mbLcd_Addr), RT_WAITING_FOREVER) == RT_EOK)
邮箱接收线程:


延时方式(如果用定时器信号量时需要将延时函数去掉将等待信号量打开):
信号量方式(将信号量定时器创建打开,加上定时器回调,和邮箱接收中的等待信号量就是定时器触发信号量模式):