你的浏览器版本过低,可能导致网站不能正常访问!为了你能正常使用网站功能,请使用这些浏览器。
xmshao 发表于 2024-8-13 14:38 不用着急。</p> <p>看看你到底开启了哪些中断,看看是否有在中断里需被使用的变量,因为中断优先级方面的原 ...
[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会死机,这是为什么呢?
13530875826 发表于 2024-8-13 23:12 SV,PendSV,SysTick系统自动设置其使能且优先级为0s0。 我自己的代码,优先级组2,USART1为3s3,TIM4 ...
[md]教训: 1、EXTI等中断虽然没跑,但优先级不能随便。 2、搞不清原因,不妨先把全部中断的优先级统一设为0s0或0s1试试。 问题暂时规避了,但根本原因还是不清不楚啊。
[md]优先级统一一样了,说明各个中断不能彼此打断和嵌套了。问题应该是中断嵌套后导致的,具体你后面有时间再对着代码再研究吧。
可能中断处理时间过长,一次没处理完就进下一次了
HAL库,驱动步进电机不转
HRTIM的互补模式下,无法实现下管峰值电流保护
STM32F407 用定时器控制SPI传输的相关问题
STM32f1内存映射问题
FLASH的地址怎么选择呢?
如何使用定时器在任意IO输出PWM
stm32f103c8t6检测正交编码器一样的配置用TIM3正常输出计数,用TIM2一直输出01
stm32定时器编码器模式可以做输出吗
stm32f103ze完整电路原理图下载。
关于STM32的PWM占空比设置
[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]优先级统一一样了,说明各个中断不能彼此打断和嵌套了。问题应该是中断嵌套后导致的,具体你后面有时间再对着代码再研究吧。
可能中断处理时间过长,一次没处理完就进下一次了