OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2629|回复: 4

STM32L0 多通道ADC采集的数据全一样

[复制链接]

1

主题

2

帖子

0

精华

新手入门

积分
6
金钱
6
注册时间
2019-9-5
在线时间
0 小时
发表于 2019-9-5 10:09:29 | 显示全部楼层 |阅读模式
1金钱
求助!stm32L0系列三路ADC采集数据 代码如下,还请高人指点!
//ADC功能配置
void ADCx_Init1(void)       
{
hadc1.Instance->CHSELR = 0;       
ADC_ChannelConfTypeDef sConfig1;
HAL_ADC_MspInit1(&hadc1);
hadc1.Instance=ADCx;
hadc1.Init.ClockPrescaler=ADC_CLOCK_SYNC_PCLK_DIV2;//ADC时钟分频,小于16MHz
hadc1.Init.ContinuousConvMode=DISABLE;//非连续模式
hadc1.Init.DataAlign=ADC_DATAALIGN_RIGHT;//数据右对齐
hadc1.Init.EOCSelection=ADC_EOC_SINGLE_CONV;
hadc1.Init.DMAContinuousRequests=DISABLE;
hadc1.Init.ExternalTrigConv=ADC_SOFTWARE_START;//软件触发
hadc1.Init.ExternalTrigConvEdge=ADC_EXTERNALTRIGCONVEDGE_NONE;
hadc1.Init.LowPowerAutoPowerOff=DISABLE;//低功耗
hadc1.Init.LowPowerAutoWait=DISABLE;
hadc1.Init.LowPowerFrequencyMode=DISABLE;
hadc1.Init.Overrun=DISABLE;
hadc1.Init.Resolution=ADC_RESOLUTION_12B;       
hadc1.Init.SamplingTime=ADC_SAMPLETIME_3CYCLES_5;//采样时间
hadc1.Init.OversamplingMode=ADC_OVR_DATA_PRESERVED;
hadc1.Init.ScanConvMode=ADC_SCAN_DIRECTION_FORWARD;
HAL_ADC_Init(&hadc1);

sConfig1.Channel      = ADCx_CHANNEL4;
sConfig1.Rank         = ADC_RANK_CHANNEL_NUMBER;
HAL_ADC_ConfigChannel(&hadc1, &sConfig1);
}

void ADCx_Init2(void)       
{
hadc2.Instance->CHSELR = 0;       
ADC_ChannelConfTypeDef sConfig2;
HAL_ADC_MspInit2(&hadc2);
hadc2.Instance=ADCx;
hadc2.Init.ClockPrescaler=ADC_CLOCK_SYNC_PCLK_DIV2;//ADC时钟分频,小于16MHz?
hadc2.Init.ContinuousConvMode=DISABLE;//非连续模式
hadc2.Init.DataAlign=ADC_DATAALIGN_RIGHT;//数据右对齐
hadc2.Init.EOCSelection=ADC_EOC_SINGLE_CONV;
hadc2.Init.DMAContinuousRequests=DISABLE;
hadc2.Init.ExternalTrigConv=ADC_SOFTWARE_START;//软件触发
hadc2.Init.ExternalTrigConvEdge=ADC_EXTERNALTRIGCONVEDGE_NONE;
hadc2.Init.LowPowerAutoPowerOff=DISABLE;//低功耗
hadc2.Init.LowPowerAutoWait=DISABLE;
hadc2.Init.LowPowerFrequencyMode=DISABLE;
hadc2.Init.Overrun=DISABLE;
hadc2.Init.Resolution=ADC_RESOLUTION_12B;       
hadc2.Init.SamplingTime=ADC_SAMPLETIME_3CYCLES_5;//采样时间
hadc2.Init.OversamplingMode=ADC_OVR_DATA_PRESERVED;
hadc2.Init.ScanConvMode=ADC_SCAN_DIRECTION_FORWARD;
HAL_ADC_Init(&hadc2);

sConfig2.Channel      = ADCx_CHANNEL3;
sConfig2.Rank         = ADC_RANK_CHANNEL_NUMBER;
HAL_ADC_ConfigChannel(&hadc2, &sConfig2);
}

void ADCx_Init3(void)       
{
hadc3.Instance->CHSELR = 0;       
ADC_ChannelConfTypeDef sConfig3;
HAL_ADC_MspInit3(&hadc3);
hadc3.Instance=ADCx;
hadc3.Init.ClockPrescaler=ADC_CLOCK_SYNC_PCLK_DIV2;//ADC时钟分频,小于16MHz
hadc3.Init.ContinuousConvMode=DISABLE;//非连续模式
hadc3.Init.DataAlign=ADC_DATAALIGN_RIGHT;//数据右对齐
hadc3.Init.EOCSelection=ADC_EOC_SINGLE_CONV;
hadc3.Init.DMAContinuousRequests=DISABLE;
hadc3.Init.ExternalTrigConv=ADC_SOFTWARE_START;//软件触发
hadc3.Init.ExternalTrigConvEdge=ADC_EXTERNALTRIGCONVEDGE_NONE;
hadc3.Init.LowPowerAutoPowerOff=DISABLE;//低功耗
hadc3.Init.LowPowerAutoWait=DISABLE;
hadc3.Init.LowPowerFrequencyMode=DISABLE;
hadc3.Init.Overrun=DISABLE;
hadc3.Init.Resolution=ADC_RESOLUTION_12B;       
hadc3.Init.SamplingTime=ADC_SAMPLETIME_3CYCLES_5;//采样时间
hadc3.Init.OversamplingMode=ADC_OVR_DATA_PRESERVED;
hadc3.Init.ScanConvMode=ADC_SCAN_DIRECTION_FORWARD;
HAL_ADC_Init(&hadc3);

sConfig3.Channel      = ADCx_CHANNEL2;
sConfig3.Rank         = ADC_RANK_CHANNEL_NUMBER;
HAL_ADC_ConfigChannel(&hadc3, &sConfig3);
}

void HAL_ADC_MspDeInit1(ADC_HandleTypeDef* hadc1)
{
  if(hadc1->Instance==ADCx)
  {
    /* 禁用ADC外设时钟 */
    ADCx_RCC_CLK_DISABLE();

    /* AD转换通道引脚反初始化 */
    HAL_GPIO_DeInit(ADCx_GPIO_PORT, ADCx_GPIO_PIN4);


  }
}
void HAL_ADC_MspDeInit2(ADC_HandleTypeDef* hadc2)
{
  if(hadc2->Instance==ADCx)
  {
    /* 禁用ADC外设时钟 */
    ADCx_RCC_CLK_DISABLE();

    /* AD转换通道引脚反初始化 */
    HAL_GPIO_DeInit(ADCx_GPIO_PORT, ADCx_GPIO_PIN3);


  }
}
void HAL_ADC_MspDeInit3(ADC_HandleTypeDef* hadc3)
{
  if(hadc3->Instance==ADCx)
  {
    /* 禁用ADC外设时钟 */
    ADCx_RCC_CLK_DISABLE();

    /* AD转换通道引脚反初始化 */
    HAL_GPIO_DeInit(ADCx_GPIO_PORT, ADCx_GPIO_PIN2);


  }
}


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

4

主题

231

帖子

0

精华

高级会员

Rank: 4

积分
755
金钱
755
注册时间
2018-12-7
在线时间
131 小时
发表于 2019-9-5 14:07:34 | 显示全部楼层
你可以用一个ADC的其中三个通道吧 你这是三个ADC
回复

使用道具 举报

1

主题

2

帖子

0

精华

新手入门

积分
6
金钱
6
注册时间
2019-9-5
在线时间
0 小时
 楼主| 发表于 2019-9-5 15:29:52 | 显示全部楼层
对  现在就是多通道。多通道采集上来的数据不对呀  代码哪里有问题啊
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2019-9-6 02:38:58 | 显示全部楼层
帮顶
回复

使用道具 举报

1

主题

83

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3566
金钱
3566
注册时间
2017-7-10
在线时间
390 小时
发表于 2019-9-6 09:52:26 | 显示全部楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-12 19:23

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表