ADC即模数转换器,能把模拟量(电压)转换为数字量。
这一节我们讲讲stm32的ADC用法,stm32自带的ADC有四种用法:轮询、中断、DMA、定时器触发。
1)ADC轮询的用法
我们在之前的串口中断工程上修改,以便于打印数值查看。
使用cubemx打开串口中断的工程,然后另存为ADC工程,增加如下设置,启用ADC及其中断:
可以看到选择ADC1,勾选IN0后,右侧PA0引脚自动配置成了ADC输入;在NVIC选项卡下勾选ADC中断使能,这样我们可以在这个工程里演示轮询和中断模式。
到时钟设置选项卡下,更改ADC时钟,因为我们使用的主时钟是72M,ADC的时钟不能太高,所以要分频,如下是分到12M:
然后生成工程代码,在keil中打开,我们先试验轮询模式,即软件开始ADC转换后,一直等到转换完成后,才向后执行,代码如下: