蓝桥杯【物联网】零基础到国奖之路:十七. 扩展模块之单路ADC和NE555
- 第一节 硬件解读
- 第二节 CubeMx配置
- 第三节 代码
- 1,脉冲部分代码
- 2,ADC部分代码![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/57531a4ee76d46daa227ae0a52993191.png)
第一节 硬件解读
PR1为ADC,本次重点为PR3,和PR3在一起的模块为NE555。
NE555是一款产生高精度定时脉冲的双极性集成电路。可以通过外接少量的阻容器件,组成定时触发电路等电路。
第二节 CubeMx配置
引脚对应:
PB1-ADC(PR1)
PB0-PLUS(PR3)
PB6-LED2
PB7-LED1
配置PB0为TIM3_CH3,PB1为ADC_IN9。
配置TIM3时钟源为Internal clock,channel3为直接输入捕获模式。分频为32-1,开启auto-reload preload。之后在NVIC打开TIM3的中断设置优先级为1。
第三节 代码
1,脉冲部分代码
脉冲模块,介绍下定时器捕获模式的方法;首先在“1”设置为上升沿捕获,目的为了检测即将到来的上升沿;然后,在“2”处检测到了上升沿,捕获此状态并记录此时计时器的值;接下来在“3”设置为下降沿捕获,目的是为了检测即将到来的下降沿;之后在“4”处检测到了波形的下降沿,捕获此状态并记录此时计时器的值;计算时间,两次计数器的值之差就是这个高电平的脉宽,进而可以得出高电平时间。
一,定义全局变量
外部声明变量
找到HAL_TIM_IC_CaptureCallbark()中断编写代码。
在main函数编写捕获周期频率的代码。
不用忘记开启TIM3CH3。
2,ADC部分代码
获取后直接打印。