简单平稳过度-回顾2025&说说我心中的ST中文论坛
stm32 定时器外部时钟1的TI1FP1及TI2FP2的设置问题
STM32F1定时器中触发信号TRC的来源及选择配置是怎么样的
STM32G474VET6如何配置HRTIM的中心对齐模式
Error in final launch sequence: Failed to execute MI command: target remote localhost:61234
使用CubeMx第二次生成的代码编译时报错
无刷电机PWM输出配置
STM32G474 HRTIM 推挽模式下 关闭死区 在比较寄存器较小的情况下,存在输出脉宽直接到100%
基于STM32F103的HAL库实现USB(HID) OTA升级
HAL_TIM_IC_Start_DMA的回调函数是HAL_TIM_IC_CaptureCpltCallback吗?为什么进不去?
微信公众号
手机版
[md]SV,PendSV,SysTick系统自动设置其使能且优先级为0s0。 我自己的代码,优先级组2,USART1为3s3,TIM4为0s3,EXTI9_5_IRQn为1s1,EXTI15_10_IRQn为1s1。 TIM4中断程序中,更新70ms变量标记;EXTI中断程序中,更新编码器数值;main中,读取70ms变量标记值和编码器数值。都只是变量读写,没有看出死锁。 死马当活马医,尝试把上面几个中断的优先级统一设为0s0,居然不死机了! 再试,优先级统一设为1s0,还是死机。 再试,我虽然USART1、EXTI设置有使能中断,但没插串口、没插编码器,不会有中断吧?打断点,确实没有USART1、EXTI的中断,只有TIM4中断在跑。 中断的优先级统一设为0s0不死机,设为1s0会死机,这是为什么呢?
[md]教训: 1、EXTI等中断虽然没跑,但优先级不能随便。 2、搞不清原因,不妨先把全部中断的优先级统一设为0s0或0s1试试。 问题暂时规避了,但根本原因还是不清不楚啊。
[md]优先级统一一样了,说明各个中断不能彼此打断和嵌套了。问题应该是中断嵌套后导致的,具体你后面有时间再对着代码再研究吧。
可能中断处理时间过长,一次没处理完就进下一次了