完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
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亲生的儿子哦! |
|
相关推荐
11个回答
|
|
|
|
|
|
谢谢回复啊!
我的IIC有一个主一个从,主采用IO模拟,从IIC采用的是中断方式,现在在模拟主IIC中关闭和开启全局中断,会导致系统宕机啊! STM32硬件问题真是多!但这个片子牛吹的很大! |
|
|
|
|
|
|
|
这种情况你要看看你的串口设置,和串口的硬件连接有没有问题了。不要心急,我想你这个问题肯定可以解决的。譬如:你先把串口的程序段关掉看看,是不是还存在这个问题。
|
|
|
|
哈哈,楼主好有意思啊,这个问题应该是楼主使用不当。
我记得开启和关闭中断分别是两个函数配合使用吧?忘记了, 多任务系统告诉我们可以使用如下函数开启和屏蔽中断,你可以试试。。。。 __asm void CPU_IntDis (void) { CPSID I BX LR } __asm void CPU_IntEn (void) { CPSIE I BX LR } |
|
|
|
回复第 6 楼 于2012-11-27 08:53:20发表:
哈哈,楼主好有意思啊,这个问题应该是楼主使用不当。 我记得开启和关闭中断分别是两个函数配合使用吧?忘记了, 多任务系统告诉我们可以使用如下函数开启和屏蔽中断,你可以试试。。。。 __asm void CPU_IntDis (void) { CPSID I BX LR } __asm void CPU_IntEn (void) { CPSIE I BX LR } 谢谢各位的回复! 这个也不行! 现在情况很明显,若开启串口,并通信,就会出现这个问题! 出现问题时,程序的主循环不再执行程序,类似宕机了! 但奇怪的是,在调试时,只有在串口中断中增加调试断点或停止中断,跳到中断后再继续执行,系统主程序就可以重新运行! 真是奇怪啊! 有没有人和我的一样的情况呢! |
|
|
|
任何东西都不可能完美吧,有点缺陷什么的也正常,多想想办法,有些问题从软件上是能规避的
|
|
|
|
disable_irq关闭中断并等待中断处理完后返回, 而disable_irq_nosync立即返回. 在中断处理程序中应该使用disable_irq_nosync来关闭中断
|
|
|
|
这个问题,我在多任务处理时也碰到了,求教啊。。。。
|
|
|
|
cmh4 发表于 2019-1-22 19:47 你好,可以详细一点说明一下吗? |
|
|
|
任何东西都不可能完美吧,有点缺陷什么的也正常,多想想办法
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
2201 浏览 1 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
2027 浏览 3 评论
4633 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
2171 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
2705 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-26 04:23 , Processed in 1.126051 second(s), Total 93, Slave 77 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号