目录
前言
本期接着上一期的内容继续学习stm32的外部中断系统(上一期链接:stm32入门-----EXTI外部中断(上 ——理论篇)-CSDN博客)。本期的主要是进行实践操作stm32的外部中断,分为两个部分:红外线传感器进行计数和转动旋转编码器进行计数。(视频:[5-2] 对射式红外传感器计次&旋转编码器计次_哔哩哔哩_bilibili)
一、硬件介绍
1.对射红外线传感器
工作电压:3.3V-5V
输出形式:数字开关量D0输出(0 和 1),模拟输出A0引脚无效使用方式: 接好VCC和GND,模块电源指示灯会亮,模块槽中无遮挡时,接收管导通,模块DO输出低电平,开关指示灯亮;遮挡时,DO输出高电平,开关指示灯灭。模块DO可与继电器相连,组成限位开关等功能,也可以与有源蜂鸣器模块相连,组成报警器。DO输出接口可以与单片机I0口直接相连,一般接外部中断,检测传感器是否有遮档,如用电机码盘则可检测电机的转速。
硬件电路:
2.旋转编码器
- 旋转编码器:用来测量位置、速度或旋转方向的装置,当其旋转轴旋转时,其输出端可以输出与旋转速度和方向对应的方波信号,读取方波信号的频率和相位信息即可得知旋转轴的速度和方向
- 类型:机械触点式/霍尔传感器式/光栅式
硬件电路:
这里可以看到旋转编码器有两个输出口分别是A和B口,当没有进行旋转的时候此时两个输出口都会被拉升为高电平,当逆时针转动的时候A口的电路与GND导通,此时A口拉倒低电平,输出为低电平,但B处不变,顺时针就刚好反过来。(想了解详细可查看:江协科技STM32——旋转编码器计次(软件消抖)_旋转编码器消抖-CSDN博客)
二、EXTI外部中断C编程
我们可以用C语言的库函数来取调用这些外部中断,实际上只需要按照上一期理论的知识去进行相关的初始化设置就行了。大体上分为5步。
EXIT外部中断结构图: