[STM32F1] ADC 驱动

[复制链接]
665|17
 楼主| pangb 发表于 2022-4-14 22:23 | 显示全部楼层 |阅读模式
void ADCInit(void)
{
  // ADC init
  // ADC Deinit
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1|RCC_APB2Periph_ADC2|RCC_APB2Periph_GPIOA, ENABLE);
  ADC_DeInit(ADC1);

  // RA1 - analog input
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;
  GPIO_InitStructure.GPIO_Speed = 0;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;
  GPIO_Init (GPIOA, &GPIO_InitStructure);

  // ADC Structure Initialization
  ADC_StructInit(&ADC_InitStructure);

  // Preinit
  ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;
  ADC_InitStructure.ADC_ScanConvMode = DISABLE;
  ADC_InitStructure.ADC_ContinuousConvMode = DISABLE;
  ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;
  ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;
  ADC_InitStructure.ADC_NbrOfChannel = 1;
  ADC_Init(ADC1, &ADC_InitStructure);

  // Enable the ADC
  ADC_Cmd(ADC1, ENABLE);
}
ADC 初始化 这个没疑问
 楼主| pangb 发表于 2022-4-14 22:26 | 显示全部楼层
Int16U GetADCChanel(Int8U chanel) {

  // Configure chanel
  ADC_RegularChannelConfig(ADC1, chanel, 1, ADC_SampleTime_55Cycles5);

  // Start the conversion
  ADC_SoftwareStartConvCmd(ADC1, ENABLE);

  // Wait until conversion completion
  while(ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC) == RESET);

  // Get the conversion value
  return ADC_GetConversionValue(ADC1);

}获取通道这里是什么意思?
supernan 发表于 2022-4-14 22:28 | 显示全部楼层
是不是ADC有很多通道,对应很多Io?
dengdc 发表于 2022-4-14 22:29 | 显示全部楼层
这是获取指定通道的转换结果,你看返回值。
zwll 发表于 2022-4-14 22:33 | 显示全部楼层
adc有很多通道的  看看你使用的是哪个通道啊
stly 发表于 2022-4-14 22:37 | 显示全部楼层
配置的时候及应该配置好了的啊
supernan 发表于 2022-4-14 22:40 | 显示全部楼层
使能通道后,直接读取,默认的应该就是使能的这个通道吧。
 楼主| pangb 发表于 2022-4-14 22:42 | 显示全部楼层
我有8路电压要测量
supernan 发表于 2022-4-14 22:44 | 显示全部楼层
用来测量多路电压
llljh 发表于 2022-4-14 22:46 | 显示全部楼层
ADC驱动很简单,12位的基本上很常用啦
 楼主| pangb 发表于 2022-4-14 22:48 | 显示全部楼层
配置不就是初始化吗
zyf部长 发表于 2022-4-14 22:50 | 显示全部楼层
恩 对 就是说配置的时候就要弄好是哪个通道
heweibig 发表于 2022-4-14 22:55 | 显示全部楼层
用的是哪个ADC通道
jiaxw 发表于 2022-4-14 22:57 | 显示全部楼层
是的 就是初始化
llljh 发表于 2022-4-14 22:58 | 显示全部楼层
就是获取你索要通道的转换结果
songqian17 发表于 2022-4-14 23:00 | 显示全部楼层
你读取结果的时候能看到是从哪个里边读出来的啊
 楼主| pangb 发表于 2022-4-14 23:03 | 显示全部楼层
分别映射到GPIO引脚上面
 楼主| pangb 发表于 2022-4-14 23:04 | 显示全部楼层
现在会用了,还是得多练习
您需要登录后才可以回帖 登录 | 注册

本版积分规则

701

主题

7643

帖子

6

粉丝
快速回复 在线客服 返回列表 返回顶部