蓝桥杯嵌入式ADC配置

在蓝桥杯嵌入式中ADC是比较重要的一个模块,ADC多次会考到,因此掌握这个ADC还是很有必要的。

在省赛中没有用到扩展板的情况下,主要就是一路的ADC采样。其采样通过主板上那个电位器R37来调节电压进行捕获考察ADC。

我们来看电路图:
在这里插入图片描述
这里R37电位器与PB0相连。在看数据手册上PB0挂载了ADC。并且对应着ADC的通道8。
在这里插入图片描述
代码部分这里分享一下如何快速的配置ADC和正常的配置;

1、正常配置
adc.c

include "adc.h"

void adc_init(void)
{
  ADC_InitTypeDef ADC_InitStruct;
  GPIO_InitTypeDef GPIO_InitStruct;
	
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1 | RCC_APB2Periph_GPIOB, ENABLE);  //使能ADC1和GPIOB的时钟
	
	GPIO_InitStruct.GPIO_Pin = GPIO_Pin_0;
  GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AIN;     //模拟输入模式
	GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;
  GPIO_Init(GPIOB, &GPIO_InitStruct);
	
	ADC_InitStruct.ADC_Mode = ADC_Mode_Independent; //独立模式
  ADC_InitStruct.ADC_ScanConvMode = DISABLE;
  ADC_InitStruct.ADC_ContinuousConvMode = DISABLE;
  ADC_InitStruct.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;  //软件触发
  ADC_InitStruct.ADC_DataAlign = ADC_DataAlign_Right;//adc数据右对齐
  ADC_InitStruct.ADC_NbrOfChannel = 1; //顺序转换规则adc通道数目
  ADC_Init(ADC1, &ADC_InitStruct);
	
	ADC_RegularChannelConfig(ADC1, ADC_Channel_8, 1, ADC_SampleTime_1Cycles5); //配置通道8,采样时间1.5个周期
	
	ADC_Cmd(ADC1, ENABLE);
	
	ADC_StartCalibration(ADC1);  //校准adc
	while(ADC_GetCalibrationStatus(ADC1));//等待校准结束
}


/*读取adc的值*/
unsigned int adc_sacnf(void)
{
  ADC_SoftwareStartConvCmd(ADC1,ENABLE);
	while(!ADC_GetFlagStatus(ADC1,ADC_FLAG_EOC));
	return ADC_GetConversionValue(ADC1);
}


2、快速配置:快速配置上我们使用官方给的固件库在这里插入图片描述
ADC上的快速配置在打开固件库的这个路径:6-STM32固件库代码V3.5\STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Examples\ADC\ADC1_DMA
首先打开里面的main函数文件
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

这些直接复制
注意:我们板子上的IO是PB0这里改成PB0的IO、我们的时钟源也要改成GPIOB的时钟、在这个ADC_RegularChannelConfig()函数里本文说过PB0对应的是通道8因此要把14改成8、ADC_Init()初始化函数里面两个结构体改成DISABLE。

要改的就这些。这样初始化函数就配置完了,但是读取的话没有给出,还是要我们自己配置。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

叶同学要努力呀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值