历史上的今天
今天是:2025年01月18日(星期六)
2021年01月18日 | STM32F0xx_ADC采集电压配置详细过程
2021-01-18 来源:eefocus
前言
关于ADC这一块的功能基本上也算是CortexM芯片的标配了。ST的每一块芯片都有这个功能,只是说因型号不同,通道数、位数等有所不同。STM8的芯片大多数都是10的,也就是说分辨率可达到:参考电压*(1/1024);STM32大多数都是12位的,也有少部分是16位的(F373)。平常采集一般的电压值,10位数都够我们使用了,除非使用在非常精密,或者说要求比较高的场合。
F0系列的芯片和F1系列的芯片差不多相似,但是F0没有ADC2、ADC3这么一说,只有ADC1,这里在编程的时候(特别是想把代码从F1移植到F0上的人要注意)。
下载
ST标准外设库和参考手册、数据手册等都可以在ST官网下载,你也可以到我的360云盘下载。关于F0系列芯片的参考手册有多个版本(针对F0不同芯片),但有一个通用版本,就是“STM32F0x128参考手册V8(英文)2015-07”建议参考该手册,以后如果你换用一种型号芯片也方便了解。
今天的软件工程下载地址(360云盘):
https://yunpan.cn/cSULmkr3vBQUj 访问密码 14c7
STM32F0xx的资料可以在我360云盘下载:
https://yunpan.cn/cS2PVuHn6X2Bj 访问密码 8c37
准备工作
今天总结的软件工程是基于“TIM基本延时配置详细过程”修改而来,因此需要将该软件工程下载准备好。打开软件工程,新建源程序文件(adc.c 和 adc.h),在工程中添加新建的源程序文件adc.c和使用到标准外设库stm32f0xx_adc.c。添加的源代码响应的源文件代码就OK了。
数据传输原理
ADC模块是一种12位的逐次逼近型模拟数字转换器。它有多达19个通道,可测量16个外部和3个内部信号源。各通道的A/D转换可以单次、连续、扫描或间断模式执行。 ADC的结果可以左对齐或右对齐方式存储在16位数据寄存器中。

配置过程详情
①RCC时钟

该函数位于bsp.c文件下面;
我个人习惯第一步配置时钟,ST官方提供的例程也是把配置时钟放在前面。关于RCC时钟的配置比较重要,有好几次我就是由于忘记配置相应RCC时钟,让我找了很久的问题,最后才发现是RCC时钟没有配置。
注意:
外设时钟不要随便添加,比如:RCC_APB1外设不要配置在RCC_APB2时钟里面【如:RCC_APB2PeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE);这样能编译过,但是错误的】
我每次都提醒RCC时钟,是因为很多人就是因为时钟而导致软件运行有问题,所以,提醒更多人要注意配置RCC.
②ADC引脚配置

该函数位于adc.c文件下面;
重点注意:
引脚配置要和AD通道对应才行(请看数据手册中的引脚说明)。
③ADC配置

该函数位于adc.c文件下面;
分辨率和对齐方式决定你的计算方式、通道与上面的引脚配置需对应。
④ADC采集电压值

该函数位于adc.c文件下面;
调用这个接口就可以采集电压值。这里采样8次(根据自己情况可以选择平均多次),算平均,最后得出电压值(1000倍值)。1000倍数值是不想有小数点,方便打印输出。
说明
STM32F0的芯片软件兼容性很好,可以适用于F0其他很多型号的芯片(具体请看手册、或者亲自测试)。
今天的工程是基于工程“STM32F0xx_TIM基本延时配置详细过程”修改而来,以上实例总结仅供参考,若有不对之处,敬请谅解。
史海拾趣
|
1 引言 20世纪末,全球范围内兴起的信息革命浪潮,为汽车工业的突破性发展提供了千载难逢的机遇,信息技术的广泛应用是解决汽车带来的诸如交通拥挤、交通安全、环境污染、能源枯竭等问题的最佳途径。同时,随着汽车电子技术的发展,电子组件 ...… 查看全部问答> |
|
最近用164做了个倒计时,我用的是定时器1的方式1,倒计时可以跑起来,而且完全正常,我现在想用两个外部中断来调整时和分,但是一加上外部中断定时中断都不在响应了,我把外部中断的入口屏蔽了,倒计时正常了。如果我把定时器换为定时器0所有中断都 ...… 查看全部问答> |
|
串口0为片内自带的,初始化的时候,U0FCR这个寄存器总是写不进去值,请教高手~~~ 附代码:[code] INT8U UART0_Init( INT32U baudrate) { INT32U Fdiv; PINSEL0 &= 0 ...… 查看全部问答> |
|
ndis5.1中对应的函数为 VOID NdisInitializeWorkItem( IN PNDIS_WORK_ITEM WorkItem, IN NDIS_PROC Routine, IN PVOID Context ); n ...… 查看全部问答> |
|
;*******************************; 主 程 序;*******************************MAINPG: ANL PCA0MD,#0 ...… 查看全部问答> |
|
MSP430: Trouble Writing Memory Block at 0x0 on Page 0 of Length 0x4: Could not perform access, BSL memory segments are protected. MSP430: GEL: File: D:\\workspace_v5_2\\12864\\Debug\\12864.out: Load failed.… 查看全部问答> |




