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

请教 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扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版