
STM8S001J3同时两路ADC采集,PC4的AIN2和PD6的AIN6,同样的配置方式,PD6数据正常,PC4的数据一直不变,单通道采集PC4数据也是不变化,下面贴上PD6和PC4的配置方式代码: void ADC1_Config(void) { /* 初始化 ADC1 通道6的IO口 */ GPIO_Init(GPIOD, GPIO_PIN_6, GPIO_MODE_IN_PU_NO_IT); GPIO_Init(GPIOC, GPIO_PIN_4, GPIO_MODE_IN_FL_NO_IT); ADC1_PrescalerConfig(ADC1_PRESSEL_FCPU_D2);//预分频2 ADC1_ExternalTriggerConfig(ADC1_EXTTRIG_TIM,DISABLE);//不使用外部触发 ADC1_SchmittTriggerConfig(ADC1_SCHMITTTRIG_CHANNEL2,DISABLE); ADC1_SchmittTriggerConfig(ADC1_SCHMITTTRIG_CHANNEL6,DISABLE); //禁止AIN2 AIN4的施密特触发器,降低IO静态功耗 //PD5,PD6上的通道如果施密特方式禁用会导致串口无法收发数据! ADC1_ConversionConfig(ADC1_CONVERSIONMODE_SINGLE,//单次转换 ADC1_CHANNEL_6,//配置通道号最大的那个 ADC1_ALIGN_RIGHT);//右对齐 ADC1_Cmd(ENABLE);//开启ADC ADC1_ScanModeCmd(ENABLE);//开启扫描模式 } 下面是主函数代码: while (1) { //ans = getchar(); //读取输入的字符 // GPIO_WriteReverse(LED_GPIO_PORT, (GPIO_Pin_TypeDef)LED_GPIO_PINS); ADC1_StartConversion();//开启一次转换 while(!ADC1_GetFlagStatus(ADC1_FLAG_EOC));//等待转换完成 ADC1_ClearFlag(ADC1_FLAG_EOC);//软件清除 Conversion_Value2=(u16)ADC1_GetBufferValue(ADC1_SCHMITTTRIG_CHANNEL2);//读取AIN2的值 Conversion_Value6=(u16)ADC1_GetBufferValue(ADC1_SCHMITTTRIG_CHANNEL6);//读取AIN6的值 printf("%d", Conversion_Value2); //把输入的字符发送出去 Delay(100); printf("%d", Conversion_Value6); //把输入的字符发送出去 Delay(100); } 求高手解答!谢谢! |
STM8S003无法检测到引脚电平
STM8 @svlreg 问题
STM8AF62XX+L99PM62GXP LIN通讯的电路原理图有吗?官网提供了一套软件,没找到对应的原理图,请大家指教一下
求一个STM8S207例程
初次接触STM8,请问在STVD中,为什么这个Struct会报错
STMS005K6T6 如何采集内部参考电压。
stm8s003 adc中断和通道切换的问题
adc施密特触发器stm8
stm8l051f3 TSSOP20 封装,待机模式下,2天后,电流突然增加到140UA
STM8S用STVP烧录怎么加密?
参阅ST官方数据手册可知:PC4的ADC功能在AFR2,你必须在OPTION BYTE中配置PC4的AFR2功能。
同时:你的GPIO配置中:
GPIO_Init(GPIOD, GPIO_PIN_6, GPIO_MODE_IN_PU_NO_IT);
GPIO_Init(GPIOC, GPIO_PIN_4, GPIO_MODE_IN_FL_NO_IT);
貌似应该2个通道都一致。
还有:如果你不是设置扫描方式,也应该对PC4的ADC进行配置。
评分
查看全部评分
评分
查看全部评分
评分
查看全部评分