STM32
直播中

丁冬芹

8年用户 1382经验值
私信 关注
[问答]

Mbed开发NUCLEO-H743ZI2使用串口中断报错的原因?怎么解决?

如题,用H743ZI2的时候开串口中断就会出现报错的问题,研究了好长时间都不知道哪里错了。
所以就来这里问问有没有大佬知道的,谢谢大佬们了。具体描述:烧录结束后,LED正常的闪烁,但是通过串口助手发送任意字符后就会报错,错误信息如下

/********************************************************
++ MbedOS Error Info ++
Error Status: 0x80010133 Code: 307 Module: 1
Error Message: Mutex: 0x2400480C, Not allowed in ISR context
Location: 0x800EA35
Error Value: 0x2400480C
Current Thread: rtx_idle  Id: 0x24004118 Entry: 0x800B741 StackSize: 0x300 StackMem: 0x240041A0 SP: 0x2407FEE0
For more info, visit: https://mbed.com/s/error?error=0x80010133 tgt=NUCLEO_H743ZI2
-- MbedOS Error Info --

********************************************************/
之后LED就不会像原来那样闪烁,单片机也类似卡住一样不动了。
我也不知道哪里错了,代码都是按照教程里面写的,换了好几个教程里的代码效果都是一样的。


回帖(1)

马占云

2024-4-10 18:20:12
该错误是因为在中断服务程序(ISR)中使用了一个不允许在ISR上下文中使用的操作。

解决方法可能有以下几种:

1. 检查代码中是否有尝试在ISR上下文中访问不允许的资源,比如互斥锁(Mutex)。确保只在非中断上下文中使用这些资源。

2. 检查代码中是否有不允许在中断上下文中使用的函数调用。例如,某些驱动程序函数可能不允许在ISR中调用。查看文档或代码注释以确定是否有此类限制。

3. 如果使用了操作系统(如Mbed OS),确保正确初始化了操作系统,并且中断优先级的设置正确。中断优先级设置错误可能导致ISR中某些操作不允许执行。

4. 检查硬件配置和中断设置是否正确。确保使用的串口引脚和中断配置与硬件手册或官方示例代码中的配置相匹配。

请注意,具体的解决方法可能因硬件和软件环境的不同而有所区别。如果问题仍然存在,请提供更多的代码和硬件配置信息,以便我们能够更好地帮助你解决问题。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分