STM32 关闭全局中断目前有几种方法: void __enable_irq (void) void __disable_irq (void) uint32_t __get_PRIMASK (void) void __set_PRIMASK (uint32_t value) void __enable_fault_irq (void) void __disable_fault_irq (void) uint32_t __get_BASEPRI (void) void __set_BASEPRI (uint32_t value) uint32_t __get_FAULTMASK (void) void __set_FAULTMASK (uint32_t value) 本人裸奔系统,在主程序的主循环中执行IIC(模拟的)命令时,用了上面所有的开启和关闭中断函数,都发现系统会宕机,频繁进入串口中断,而串口进中断值寄存器值为: 而正常情况下为: 只要IIC中开启中断,就会频繁进入串口中断,导致主循环无法执行,及时在串口中断中清除所有中断标识都不行! 请高手解答啊! 最近刚用STM32,发现这个应该算是一个BUG,怎么连主循环中都无法关闭中断呢,发现STM32的硬件BUG真是多啊! 有解决的办法吗?期待牛人啊! 看来STM32吹嘘的太多了!准备专用TI 的M3了,他的M3毕竟是Arm亲生的儿子哦! |
RE:坑爹的STM32,蛋疼的中断, 关闭全局中断问题,系统宕机哦,无法解决,严重BUG,求助
STM32的I2C 是有个小BUG的 但不是你这个
你在网上百度下 就知道了
回复:坑爹的STM32,蛋疼的中断, 关闭全局中断问题,系统宕机哦,无法解决,严重BUG,求助
我的IIC有一个主一个从,主采用IO模拟,从IIC采用的是中断方式,现在在模拟主IIC中关闭和开启全局中断,会导致系统宕机啊!
STM32硬件问题真是多!但这个片子牛吹的很大!
回复:坑爹的STM32,蛋疼的中断, 关闭全局中断问题,系统宕机哦,无法解决,严重BUG,求助 【悬赏问答】
解决问题和玩转技术是关键啊!
RE:坑爹的STM32,蛋疼的中断, 关闭全局中断问题,系统宕机哦,无法解决,严重BUG,求助 【悬赏问答】
回复:坑爹的STM32,蛋疼的中断, 关闭全局中断问题,系统宕机哦,无法解决,严重BUG,求助 【悬赏问答】
我记得开启和关闭中断分别是两个函数配合使用吧?忘记了,
多任务系统告诉我们可以使用如下函数开启和屏蔽中断,你可以试试。。。。
__asm void CPU_IntDis (void)
{
CPSID I
BX LR
}
__asm void CPU_IntEn (void)
{
CPSIE I
BX LR
}
回复:坑爹的STM32,蛋疼的中断, 关闭全局中断问题,系统宕机哦,无法解决,严重BUG,求助 【悬赏问答】
哈哈,楼主好有意思啊,这个问题应该是楼主使用不当。
我记得开启和关闭中断分别是两个函数配合使用吧?忘记了,
多任务系统告诉我们可以使用如下函数开启和屏蔽中断,你可以试试。。。。
__asm void CPU_IntDis (void)
{
CPSID I
BX LR
}
__asm void CPU_IntEn (void)
{
CPSIE I
BX LR
}
谢谢各位的回复!
这个也不行!
现在情况很明显,若开启串口,并通信,就会出现这个问题!
出现问题时,程序的主循环不再执行程序,类似宕机了!
但奇怪的是,在调试时,只有在串口中断中增加调试断点或停止中断,跳到中断后再继续执行,系统主程序就可以重新运行!
真是奇怪啊!
有没有人和我的一样的情况呢!
RE:坑爹的STM32,蛋疼的中断, 关闭全局中断问题,系统宕机哦,无法解决,严重BUG,求助 【悬赏问答】
你好,可以详细一点说明一下吗?