中断通道 : 就是中断源的意思,,,
stm32中断非常多,,几乎所有的模块都能申请中断
stm32中断非常多,,如果把这些中断都引到cpu上,,线会非常多
NVIC : nested vectored interrupt controller : 嵌套向量中断控制器

NVIC 给中断排序:
- 抢占优先级 : 直接中断当前程序,,执行 ===》 中断嵌套
- 响应优先级 : 优先排队

EXTI : external interrupt 外部中断

相同的 pin 不能同时出发中断,,,,,PA1 和 PB1 不能同时触发中断
EXTI 不止是GPIO
EXTI Line 来源
Line0~15 GPIO0~15
Line16 PVD
Line17 RTC Alarm
Line18 USB Wakeup
Line19 Ethernet Wakeup
EXTI可以理解成,一个中断事件汇总器,,他有很多line,,,这些线路,,既可以连接GPIO也可以连接PVD,RTC,USB等内部外设事件
- PVD : programmable voltage detector : 可编程电压检测器,,他能检测vdd电压是否低于某个阈值、
- RTC alarm : rtc是实时时钟,,,
- usb wakeup : usb休眠时,,主机可能发恢复信号
- ethernet wakeup : 网卡检测到 magic packet ,,网络唤醒包
EXTI 不是GPIO专属中断模块,,而是 stm32的 事件输入中断系统,,GPIO,RTC,PVD,USB等,都只是EXTI的事件来源
正常是触发一个中断响应,,在stm32中也可以选择触发一个事件,,就不会打断cpu了,,而是通向其他外设,,用来触发其他外设操作,,外设之间联合工作
-
中断响应
会打断CPU
-
事件响应 event
不会打断cpu,,只产生一个
事件脉冲给硬件用,,,这个事件主要给stm32内部硬件模块 ,,如 DMA,定时器,,ADC,睡眠唤醒,硬件同步,,,
IMR : interrupt mask register 中断屏蔽寄存器
EMR : event mask register :事件屏蔽寄存器

AFIO : alternate function IO : 复用功能输入输出
stm32引脚数量有限,, 一个引脚给多个外设共用,,,到底给谁,由AFIO决定
AFIO:
- EXTI引脚映射: external intterupt
- 引脚重映射 remap


编码器: encoder : 把运动变成电信号的传感器,
可以检测,,转了多久,,什么方向,转动速度,位置等
比如鼠标滚轮,,音箱旋流,,电机测速

中间圆圈表示,可旋转的金属触点,,旋转按钮时,,它会旋转,,会按顺序接触A,,B,对应的触点
正交编码: quadrature encoder 正交编码 ,, 相位差90度

pending flag : 普通挂起标志
intterupt pending : 中断挂起标志
EXTI只有一个 PR挂起寄存器,,, pending register
IMR : intterupt mask register
EMR : event mask register