问答

汇集网友智慧,解决技术难题

21ic问答首页 - TAG - 实际
  • gd32f470zit6ADC采集电压后与实际电压相差25%,求帮助

    代码如下 [align=left][color=#f0c000]void ADC_init(void)[/color][/align][align=left][color=#f0c000]{[/color][/align][align=left][color=#f0c000] // 1. 使能时钟[/color][/align][align=left][color=#f0c000] rcu_periph_clock_enable(RCU_GPIOF);[/color][/align][align=left][color=#f0c000] rcu_periph_clock_enable(RCU_ADC2);[/color][/align][align=left][color=#f0c000] adc_clock_config(ADC_ADCCK_PCLK2_DIV8);[/color][/align][align=left][color=#f0c000] // 2. 配置 为模拟输入[/color][/align][align=left][color=#f0c000] gpio_mode_set(GPIOF, GPIO_MODE_ANALOG, GPIO_PUPD_NONE, GPIO_PIN_6);[/color][/align][align=left][color=#f0c000] // 3. 配置 ADC 基本参数[/color][/align][align=left][color=#f0c000] adc_sync_mode_config(ADC_SYNC_MODE_INDEPENDENT); // 独立模式[/color][/align][align=left][color=#f0c000] /* ADC contineous function disable */[/color][/align][align=left][color=#f0c000] adc_special_function_config(ADC2, ADC_CONTINUOUS_MODE, DISABLE); // 单次转换[/color][/align][align=left][color=#f0c000] /* ADC scan mode disable */[/color][/align][align=left][color=#f0c000] adc_special_function_config(ADC2, ADC_SCAN_MODE, DISABLE); // 不扫描[/color][/align][align=left][color=#f0c000] adc_resolution_config(ADC2, ADC_RESOLUTION_12B); // 12位分辨率[/color][/align][align=left][color=#f0c000] adc_data_alignment_config(ADC2, ADC_DATAALIGN_RIGHT); // 数据右对齐[/color][/align][align=left][color=#f0c000] adc_channel_length_config(ADC2, ADC_ROUTINE_CHANNEL, 1); // 单次转换通道数[/color][/align][align=left][color=#f0c000] adc_external_trigger_config(ADC2, ADC_ROUTINE_CHANNEL, EXTERNAL_TRIGGER_DISABLE); // 外部触发禁止[/color][/align][align=left][color=#f0c000] // 4. 设置采样时间和通道[/color][/align][align=left][color=#f0c000] adc_routine_channel_config(ADC2, 0, ADC_CHANNEL_4, ADC_SAMPLETIME_15); //// 配置ADC规则通道 [/color][/align][align=left][color=#f0c000] // 5. 启用 ADC 并校准[/color][/align][align=left][color=#f0c000] adc_enable(ADC2);[/color][/align][align=left][color=#f0c000] delay_2us(1000);[/color][/align][align=left][color=#f0c000] adc_calibration_enable(ADC2);[/color][/align][align=left][color=#f0c000]}[/color][/align][align=left][color=#f0c000] [/color][/align][align=left][color=#f0c000]uint16_t adc_channel_sample(void)[/color][/align][align=left][color=#f0c000]{[/color][/align][align=left][color=#f0c000] /* ADC software trigger enable */[/color][/align][align=left][color=#f0c000] adc_software_trigger_enable(ADC2, ADC_ROUTINE_CHANNEL);[/color][/align][align=left][color=#f0c000] /* wait the end of conversion flag */[/color][/align][align=left][color=#f0c000] while (!adc_flag_get(ADC2, ADC_FLAG_EOC));[/color][/align][align=left][color=#f0c000] /* clear the end of conversion flag */[/color][/align][align=left][color=#f0c000] adc_flag_clear(ADC2, ADC_FLAG_EOC);[/color][/align][align=left][color=#f0c000] /* return regular channel sample value */[/color][/align][align=left][color=#f0c000] return (adc_routine_data_read(ADC2));[/color][/align][align=left][color=#f0c000]}[/color][/align][align=left][color=#f0c000]uint16_t adc_channel_value(void)[/color][/align][align=left][color=#f0c000]{[/color][/align][align=left][color=#f0c000] uint32_t adc_value = 0;[/color][/align][align=left][color=#f0c000] uint32_t i = 0;[/color][/align][align=left][color=#f0c000] for (i = 0; i < 5; i++)[/color][/align][align=left][color=#f0c000] {[/color][/align][align=left][color=#f0c000] adc_value += adc_channel_sample();[/color][/align][align=left][color=#f0c000] }[/color][/align][align=left][color=#f0c000] return (adc_value / 5);[/color][/align][align=left][color=#f0c000]}[/color][/align][align=left][font=Consolas][size=4][color=#f0c000]转换[/color][/size][/font][/align][color=#cccccc][backcolor=rgb(31, 31, 31)][font=Consolas, "] ADC_value [color=#d4d4d4]=[/color] [color=#dcdcaa]adc_channel_value[/color](); adc[color=#d4d4d4]=[/color](([color=#569cd6]double[/color])(ADC_value[color=#d4d4d4]*[/color][color=#b5cea8]3.3[/color])[color=#d4d4d4]/[/color][color=#b5cea8]4096[/color]); [color=#dcdcaa]printf[/color]([color=#ce9178]"adc:[/color][color=#9cdcfe]%.2lf[/color][color=#ce9178]V VINSampledvalues:[/color][color=#9cdcfe]%d[/color][color=#d7ba7d]\r\n[/color][color=#ce9178]"[/color],adc,ADC_value); [/font][/backcolor][/color]

    电压 adc采集 GD32F470 实际 ig TI

    951浏览量 5回复量 关注量
  • 21网站用家园币兑换物品,什么时候发货 赏100家园币

    事情是这样的,我12月3日兑换了一个物品,运费也付了,家园币显示扣除,但实际账号家园币还在,那我这物品是兑换成功还是失败?运费15元是扣除了,家园币还在,请问这是什么情况?有没有人兑换过,比较了解,求告知一下情况,谢谢!

    网站 失败 成功 实际

    7548浏览量 22回复量 关注量