-
APM32F003F4P6休眠后起来重新初始化ADC,无法进行AD转换
[color=rgb(17, 17, 17)][backcolor=rgb(255, 255, 255)][font=system-ui, -apple-system, BlinkMacSystemFont, "][size=14.4px]void ADC_Init(void)[/size][/font][/backcolor][/color][align=left][color=rgb(17, 17, 17)][backcolor=rgb(255, 255, 255)][font=system-ui, -apple-system, BlinkMacSystemFont, "][size=14.4px]{ ADC_Config_T adcConfig; GPIO_Config_T gpioConfig;[/size][/font][/backcolor][/color][/align][color=rgb(227, 98, 9)]ADC_Reset[/color]();[color=rgb(106, 115, 125)]/* ADC GPIO configuration */[/color][color=rgb(106, 115, 125)]//pd5,pd6 as diff ch3[/color]gpioConfig.pin = GPIO_PIN_5|GPIO_PIN_6;[color=rgb(106, 115, 125)]//now use and debug[/color]gpioConfig.mode = GPIO_MODE_IN_FLOATING;gpioConfig.speed = GPIO_SPEED_10MHz;gpioConfig.intEn=GPIO_EINT_DISABLE;[color=rgb(227, 98, 9)]GPIO_Config[/color](GPIOD, &gpioConfig);[color=rgb(227, 98, 9)]ADC_ConfigDivider[/color](ADC_DIV_2);[color=rgb(106, 115, 125)]//ADC_SetMode(ADC_MODE_SINGLE_END);[/color][color=rgb(106, 115, 125)]/* ADC configuration */[/color][color=rgb(227, 98, 9)]ADC_ConfigStructInit[/color](&adcConfig);[color=rgb(227, 98, 9)]ADC_Config[/color](&adcConfig);[align=left][color=rgb(17, 17, 17)][backcolor=rgb(255, 255, 255)][font=system-ui, -apple-system, BlinkMacSystemFont, "][size=14.4px]// ADC_EnableInterrupt(ADC_INT_CC); ADC_ConfigConversionMode(ADC_CONV_MODE_CONTINUOUS); [color=rgb(25, 47, 97)]#if[/color] 1 ADC_SetMode(ADC_MODE_DIFF_INPUT); ADC_SetDiffInputChannel(ADC_DIFF_CHANNEL_VAIN2); [color=rgb(25, 47, 97)]#else[/color] ADC_SetChannel(ADC_CHANNEL_5); [color=rgb(25, 47, 97)]#endif[/color][/size][/font][/backcolor][/color][/align][align=left][color=rgb(17, 17, 17)][backcolor=rgb(255, 255, 255)][font=system-ui, -apple-system, BlinkMacSystemFont, "][size=14.4px]//[/size][/font][/backcolor][/color][/align][align=left][color=rgb(17, 17, 17)][backcolor=rgb(255, 255, 255)][font=system-ui, -apple-system, BlinkMacSystemFont, "][size=14.4px]// NVIC_EnableIRQRequest(ADC_IRQn, 0X01); ADC_Enable(); ADC_StartConversion(); //fg_detect_start=TRUE; START_TIMER(w_delay_start, TIMER_1MS_3S); }[/size][/font][/backcolor][/color][/align][align=left][color=rgb(17, 17, 17)][backcolor=rgb(255, 255, 255)][font=system-ui, -apple-system, BlinkMacSystemFont, "][size=14.4px]上单初始化用这个函数,休眠后起来也用这个函数初始化,发现 if(ADC_ReadStatusFlag(ADC_FLAG_CC) == SET) 这个一直不成立,试过单端模式,也是一样的情况[/size][/font][/backcolor][/color][/align][align=left][color=rgb(17, 17, 17)][backcolor=rgb(255, 255, 255)][font=system-ui, -apple-system, BlinkMacSystemFont, "][size=14.4px]重新初始化也不行,查看寄存器,配置正常,但是CCF不能被置位,起来后会开启ADC clock[/size][/font][/backcolor][/color][/align]
797浏览量 6回复量 关注量 -
请教APM32F003差分ADC通道采集问题 sos
这个差分ADC通道采集是否存在问题?直接在ADC_SetDiffInputChannel(ADC_DIFF_CHANNEL_VAIN0); 选择通道0就可以了吗?已经在main中进行RCM_ConfigHIRCDiv(RCM_HIRC_DIV_8);分频 void ADC_ContinuousDiffInitVoltage(void) { ADC_Config_T adcConfig; GPIO_Config_T gpioConfig; //配置 gpioConfig.mode = GPIO_MODE_IN_FLOATING; // 模拟输入模式 gpioConfig.speed = GPIO_SPEED_10MHz; gpioConfig.pin = GPIO_PIN_5 | GPIO_PIN_6; // PC5: 正端, PC6: 负端 gpioConfig.intEn = GPIO_EINT_DISABLE; GPIO_Config(GPIOC, &gpioConfig); //模式 ADC_SetMode(ADC_MODE_DIFF_INPUT); ADC_SetDiffInputChannel(ADC_DIFF_CHANNEL_VAIN0); // 选择通道 0(PC5-PC6) // ADC 配置结构初始化 ADC_ConfigStructInit(&adcConfig); adcConfig.convMode = ADC_CONV_MODE_SINGLE ; // 连续转换模式 adcConfig.scanMode = ADC_SCAN_MODE_DISABLE; // 禁用扫描 adcConfig.interrupt = ADC_INT_CC; // 转换完成中断标志 adcConfig.channel = ADC_CHANNEL_0; // 必须配置,但差分模式实际由 CHSEL 控制 ADC_Config(&adcConfig); ADC_Calibration(); // 执行校准,消除偏移误差 ADC_Enable(); // 启用 ADC ADC_StartConversion(); // 开始连续转换 }
1403浏览量 0回复量 关注量 -
apm32f003 iap在线升级 中断向量表 修改无效
已定义 #define __VTOR_PRESENT 1U /*!
VTOR = FMC_BASE | VECT_TAB_OFFSET; //此处修改了中断向量表偏移地址,但实际并未被修改 GPIO_Init(); TMR4Init(); //中断处理中对PB4进行翻转 while(1) { delay(500000); //GPIO_Toggle(GPIOB, GPIO_PIN_4); } return 0; } 1909浏览量 3回复量 关注量 -
APM32F003F6 J-LINK烧录
使用J-LINK进行烧录,在KEIL5中显示连接是正常的,但是在线烧录时显示如下错误: 使用JFflashLite进行离线下载时,可以烧录,但是擦除很慢,超过100s。显示如下:
2044浏览量 4回复量 关注量

问答