STM32F030CCT6 ADC单次采集问题

所属分类:STM32F系列 浏览数:516 提问者:自由翼 提问时间:2018-01-09

问:

用STM32F030CCT6开发需要做电量检测,用PB1引脚(ADC通道9)发现代码只跑adc的就正常,一旦加了其他代码就不正常(例如AD检测前加一个LED灯引脚初始化),因为之前有STM32F030F4P6小板,将代码移植过去是正常可以用的,ADC采样读值正常,搞了几天都找不出问题,有没有人用过这款芯片的ADC?或者会不会这款芯片的ADC有问题?


答:ADC初始化代码: void bat_Init(void) { ADC_DeInit(ADC1); RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOB, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1,ENABLE); //ADC IO??,????PA0??ADC?? GPIO_InitTypeDef PORT_ADC; PORT_ADC.GPIO_Pin=GPIO_Pin_1; PORT_ADC.GPIO_Mode=GPIO_Mode_AN; PORT_ADC.GPIO_PuPd=GPIO_PuPd_NOPULL; GPIO_Init(GPIOB,&PORT_ADC); //ADC ???? ADC_InitTypeDef ADC_InitStuctrue; ADC_InitStuctrue.ADC_Resolution=ADC_Resolution_12b;//12λ¾«¶È ADC_InitStuctrue.ADC_ContinuousConvMode=DISABLE;//µ¥´ÎADC ADC_InitStuctrue.ADC_ExternalTrigConvEdge=ADC_ExternalTrigConvEdge_None; ADC_InitStuctrue.ADC_DataAlign=ADC_DataAlign_Right;//Êý¾ÝÓÒ¶ÔÆë ADC_InitStuctrue.ADC_ScanDirection=ADC_ScanDirection_Backward;//Êý¾Ý¸²¸Ç ADC_Init(ADC1,&ADC_InitStuctrue); ADC_ChannelConfig(ADC1,ADC_Channel_9,ADC_SampleTime_1_5Cycles); //??????????,????16,?????????? //ADC_ChannelConfig(ADC1,AD
回答者:自由翼 回答时间:2018-01-09

答:问题已经解决,是受串口影响,在打印数据前再初始化一次串口就正常了,可以排除ADC的问题,具体串口哪里配置影响了还在找原因。
回答者:自由翼 回答时间:2018-01-09

答:注意管脚复用冲突方面的问题。
回答者:xmshao 回答时间:2018-01-09

登录后回答。
图书推荐
ARM快速嵌入式系统原型设计

ARM快速嵌入式系统原型设计

本书通过mbed介绍嵌入式系统设计的所有主要议题,便于读者快速掌握嵌入式系统的设计方法。
STM32库开发实战指南

STM32库开发实战指南

本书围绕库的分析和使用,对综合运用固件库开发项目给出了具体范例,循序渐进、系统地掌握。
轻松玩转STM32Cube

轻松玩转STM32Cube

本书结合官方手册和例程,全面、系统介绍了STM32F103各项功能,是学习STM32的入门教材。
广告