【经验】STM32的一些细节

这两天 碰到的奇葩问题是 STM32定时器同步的问题。

我的设计本意是:使用定时器T3以100us的周期来定时发送命令给 FPGA。由于编码器出结果的最长时间为51us。因此,希望PWM中断要滞后于T3 约60us 。

调试过程:分别在T3和PWM中断中置IO1, IO2. 观察波形,发现IO1和IO2的周期都对,但相位差不固定,一直在变动。

百思不得其解。。。

后来,尝试用T2和T3来测试。发现相位是固定的,原来T2和T3的时钟来源是APB1 ,而T1的时钟来源是 APB2 。差异就在这里。

T8用的时钟是APB2.

改T3为T8, 相位差还是飘动。把T8由向上计数 也改成 和T1一样(中央对齐模式),这个时候相位差固定,但由之前的 55us 上升到78us 。估计和清中断标志有关。

关于中断优先级:

  1. 中断优先级能分组,但只需要分一次确定下来即可,而不是分多次。若是分2组,则抢占优先级可以有0---3 这4个级别。

函数:NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);

NVIC_IRQChannelPreemptionPriority 抢占优先级,越小优先级越高

NVIC_IRQChannelSubPriority 副优先级,越小优先级越高

  1. 高抢占优先级能 打断 低抢占优先级。同一抢占优先级的中断不能相互打断。

还有一个比较坑爹的情况:在调试外部中断时,怎么也进不了中断。后来查明的原因是 PE6引脚对应的中断源 为 EXTI9_5 。

大量细节都隐藏在手册里。

相关推荐
国科安芯4 分钟前
面向星载芯片原子钟的RISC-V架构MCU抗辐照特性研究及可靠性分析
单片机·嵌入式硬件·架构·制造·risc-v·pcb工艺·安全性测试
三伏5221 小时前
Cortex-M3权威指南Cn第十章——笔记
笔记·单片机·嵌入式硬件·cortex-m3
独处东汉1 小时前
freertos开发空气检测仪之按键输入事件管理系统设计与实现
人工智能·stm32·单片机·嵌入式硬件·unity
小灰灰搞电子1 小时前
STM32/GD32 字节对齐详解
stm32·单片机·嵌入式硬件
我送炭你添花3 小时前
工业触摸屏:PCAP(投影电容式)触摸屏控制器选型推荐(工业级,2025-2026主流)
嵌入式硬件·自动化
来自晴朗的明天4 小时前
2、NMOS 电源防反接电路
单片机·嵌入式硬件·硬件工程
良许Linux5 小时前
DSP的选型和应用
后端·stm32·单片机·程序员·嵌入式
混分巨兽龙某某5 小时前
基于STM32的嵌入式操作系统RT-Thread移植教学(HAL库版本)
stm32·嵌入式硬件·rt-thread·rtos
乌恩大侠5 小时前
【OAI】 USRP 在conf文件中的配置,RU选项
fpga开发
_ZeroKing5 小时前
自制智能门锁:NFC 刷卡 + 小程序远程开锁(完整实战记录)
嵌入式硬件·小程序·notepad++·arduino