你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

请教 ADC_Channel_0与实际的adc用管脚PA0不一致

[复制链接]
powder-320203 提问时间:2015-10-18 20:48 /
阅读主题, 点击返回1楼
收藏 评论14 发布时间:2015-10-18 20:48
14个回答
powder-320203 回答时间:2015-10-23 21:41:14
单独只使用一个channel,是正确的,可是用了3个channel,切换后就是不对。
  ADCx->CHSELR = (uint32_t)ADC_Channel;        //

不向stm32f103\107
        ADC1->SQR3|=ch;                  //这个是正确的,很容易
请教大侠指点。                            
powder-320203 回答时间:2015-10-23 21:52:48
at89 发表于 2015-10-19 12:49
这种情况那就排除看看喽,是不是原理图上面连接有错或者是标错了了,或者查一下端口复用之类的,最好重新建 ...

单独用一个channel adc是正确的,用3个,作channel切换就不对了?请指点:
  /* Convert the selected Channel Vref  with 55.5 Cycles as sampling time */
  ADC_ChannelConfig(ADC1, ADC_Channel, ADC_SampleTime_239_5Cycles);
//  ADC_ChannelConfig(ADC1, ADC_Channel_0  , ADC_SampleTime_55_5Cycles);
//  cda_value=2;
  /* ADC Calibration */
  ADC_GetCalibrationFactor(ADC1);
//   ADC_DMACmd(ADC1, DISABLE);
  /* Enable ADC1 */
//  ADC_Cmd(ADC1, ENABLE);     
  
  /* Wait the ADCEN falg */
  while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_ADEN));
  /* ADC1 regular Software Start Conv */
  ADC_StartOfConversion(ADC1);
        if(cda_value==1) RegularConvData_Tab1 = ADC_GetConversionValue(ADC1);
        else if(cda_value==2) RegularConvData_Tab2 = ADC_GetConversionValue(ADC1);
        else if(cda_value==3) RegularConvData_Tab3 = ADC_GetConversionValue(ADC1);
powder-320203 回答时间:2015-10-23 21:59:30
  ADC_ChannelConfig(ADC1, ADC_Channel, ADC_SampleTime_239_5Cycles);
  /* ADC Calibration */
  ADC_GetCalibrationFactor(ADC1);
  
  /* Wait the ADCEN falg */
  while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_ADEN));
  /* ADC1 regular Software Start Conv */
  ADC_StartOfConversion(ADC1);
        if(ADC_Channel==ADC_Channel_0) RegularConvData_Tab1 = ADC_GetConversionValue(ADC1);
        else if(ADC_Channel==ADC_Channel_1) RegularConvData_Tab2 = ADC_GetConversionValue(ADC1);
        else if(ADC_Channel==ADC_Channel_9) RegularConvData_Tab3 = ADC_GetConversionValue(ADC1);
powder-320203 回答时间:2015-10-23 22:02:08
  ADC_ChannelConfig(ADC1, ADC_Channel, ADC_SampleTime_239_5Cycles);
  /* ADC Calibration */
  ADC_GetCalibrationFactor(ADC1);
  
  /* Wait the ADCEN falg */
  while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_ADEN));
  /* ADC1 regular Software Start Conv */
  ADC_StartOfConversion(ADC1);
        if(ADC_Channel==ADC_Channel_0) RegularConvData_Tab1 = ADC_GetConversionValue(ADC1);
        else if(ADC_Channel==ADC_Channel_1) RegularConvData_Tab2 = ADC_GetConversionValue(ADC1);
        else if(ADC_Channel==ADC_Channel_9) RegularConvData_Tab3 = ADC_GetConversionValue(ADC1);
peter001 回答时间:2015-10-23 23:51:05
是不是程序跑飞了
12

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版