MCU做SPI从机,采用2MHZ左右的通信速率,发现会概率性丢失数据;经过排查发现可能是由于调用的rt_thread_delay函数中,从关中断到开中断,时间太长导致的,这个有解决方向吗
查看更多
你测试出来的 rt_thread_delay 关中断有多久?
rt_thread_delay
从机适配DMA,就不怕丢数据了。
欢迎发表与嵌入式相关的技术分享、开发技巧、工具介绍、技术设想、职业心得、行业评论等对他人有启发,排版优雅的文章
回到 顶部
发布 问题
分享 好友
手机 浏览
投诉 建议
回到 底部
不是固定的,通过控制GPIO跳转去测大部分情况下关中断时间是1.5us左右,但是偶尔会出现时间长达1ms的情况,出现后面这种1ms的情况SPI的数据就会丢了
吓人啊,这么长关中断时间,到底发生了什么,关注下。
有空我也自行测一下看看自己的代码。
@alittle 1.5us 时间是正常,这个时间已经很短了。
1ms 就不应该了。你是在
rt_thread_delay
函数里添加的 io 翻转输出测试的?关中断期间应该没干多少事儿,cpu 也没有机会去干别的事儿。