[应用相关] STM32ADC 驱动的疑惑

[复制链接]
1233|17
 楼主| hanzhen654 发表于 2018-7-26 21:51 | 显示全部楼层 |阅读模式
ADC 初始化 这个没疑问
  1. void ADCInit(void)
  2. {
  3.   // ADC init
  4.   // ADC Deinit
  5.   RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1|RCC_APB2Periph_ADC2|RCC_APB2Periph_GPIOA, ENABLE);
  6.   ADC_DeInit(ADC1);

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

  12.   // ADC Structure Initialization
  13.   ADC_StructInit(&ADC_InitStructure);

  14.   // Preinit
  15.   ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;
  16.   ADC_InitStructure.ADC_ScanConvMode = DISABLE;
  17.   ADC_InitStructure.ADC_ContinuousConvMode = DISABLE;
  18.   ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;
  19.   ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;
  20.   ADC_InitStructure.ADC_NbrOfChannel = 1;
  21.   ADC_Init(ADC1, &ADC_InitStructure);

  22.   // Enable the ADC
  23.   ADC_Cmd(ADC1, ENABLE);
  24. }


 楼主| hanzhen654 发表于 2018-7-26 21:52 | 显示全部楼层
获取通道这里是什么意思?
  1. Int16U GetADCChanel(Int8U chanel) {

  2.   // Configure chanel
  3.   ADC_RegularChannelConfig(ADC1, chanel, 1, ADC_SampleTime_55Cycles5);

  4.   // Start the conversion
  5.   ADC_SoftwareStartConvCmd(ADC1, ENABLE);

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

  8.   // Get the conversion value
  9.   return ADC_GetConversionValue(ADC1);

  10. }


 楼主| hanzhen654 发表于 2018-7-26 21:52 | 显示全部楼层
是不是ADC有很多通道,对应很多Io?
21mengnan 发表于 2018-7-26 22:22 | 显示全部楼层
hanzhen654 发表于 2018-7-26 21:52
获取通道这里是什么意思?

这是获取指定通道的转换结果,你看返回值。
heimaojingzhang 发表于 2018-7-27 08:28 | 显示全部楼层
adc有很多通道的  看看你使用的是哪个通道啊
paotangsan 发表于 2018-7-27 09:24 | 显示全部楼层
配置的时候及应该配置好了的啊
jerow 发表于 2018-7-27 10:19 | 显示全部楼层
21mengnan 发表于 2018-7-26 22:22
这是获取指定通道的转换结果,你看返回值。

使能通道后,直接读取,默认的应该就是使能的这个通道吧。
 楼主| hanzhen654 发表于 2018-7-28 10:25 | 显示全部楼层
heimaojingzhang 发表于 2018-7-27 08:28
adc有很多通道的  看看你使用的是哪个通道啊

我有8路电压要测量
 楼主| hanzhen654 发表于 2018-7-28 10:26 | 显示全部楼层
21mengnan 发表于 2018-7-26 22:22
这是获取指定通道的转换结果,你看返回值。

懂了,用来测量多路电压
 楼主| hanzhen654 发表于 2018-7-28 10:26 | 显示全部楼层
paotangsan 发表于 2018-7-27 09:24
配置的时候及应该配置好了的啊

配置不就是初始化吗
labasi 发表于 2018-7-28 10:39 | 显示全部楼层
恩 对 就是说配置的时候就要弄好是哪个通道
android2 发表于 2018-7-30 21:12 | 显示全部楼层
用的是哪个ADC通道
paotangsan 发表于 2018-8-3 14:43 | 显示全部楼层
hanzhen654 发表于 2018-7-28 10:26
配置不就是初始化吗

是的 就是初始化
598330983 发表于 2018-8-3 16:45 | 显示全部楼层
就是获取你索要通道的转换结果
wowu 发表于 2018-8-10 13:04 | 显示全部楼层
你读取结果的时候能看到是从哪个里边读出来的啊
 楼主| hanzhen654 发表于 2018-8-24 13:43 | 显示全部楼层
labasi 发表于 2018-7-28 10:39
恩 对 就是说配置的时候就要弄好是哪个通道

现在明白了,谢谢了
 楼主| hanzhen654 发表于 2018-8-24 13:43 | 显示全部楼层
android2 发表于 2018-7-30 21:12
用的是哪个ADC通道

分别映射到GPIO引脚上面
 楼主| hanzhen654 发表于 2018-8-24 13:44 | 显示全部楼层
598330983 发表于 2018-8-3 16:45
就是获取你索要通道的转换结果

现在会用了,还是得多练习
您需要登录后才可以回帖 登录 | 注册

本版积分规则

73

主题

1766

帖子

2

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