使用spi和定时器中断时遇到shall not be used in ISR

发布于 2020-07-23 13:12:36

把rt_spi_send_then_recv放到定时器中断进行读取数据,就会出现这个问题

msh >Function[rt_mutex_take] shall not be used in ISR
(0) assertion failed at function:rt_mutex_take, line number:659

查看更多

关注者
0
被浏览
296
2 个回答
RXGC_5534
RXGC_5534 2020-07-23

如果不用RT-Thread的SPI框架,在定时器中断进行SPI接口数据获取是没有问题,是不是有BUG存在

aozima
aozima 2020-07-23
拒绝白嫖,拒绝键盘侠!

SPI只能在线程中操作,试想有个线程正在对SPI总线上面的FLASH进行读写,此时发生中断会怎样?且中断里面也要操作SPI上的传感器会怎样?

2个方向:

  1. 中断里发信号给线程,由线程来读写SPI。
  2. 如果有必要,可以不使用RT的SPI框架,并确保这个SPI只接你这1个设备。你可以直接在中断里面进行操作。(不推荐)

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览