测试目地:利用F423串口打印ADC温度
开发板:AT-START-F423
平台:MDK
理解ADC与使用:
一般来说,ADC(模数转换器)是一种电子设备,它可以将模拟信号转换为数字信号。在许多应用中,这使得我们能够使用数字电子设备处理和解析模拟信号。 使用ADC通常包括以下步骤: - 确定ADC的规格和性能:这包括确定ADC的分辨率(它能够分辨的最小电压差异)、转换速度(它能够多快地完成模拟到数字的转换)以及它的电源要求。
- 选择一个适合ADC的电路:这可能包括一个适合的滤波器以减少信号噪声,以及一个适当的电源以提供稳定的电压。
- 连接ADC:将ADC连接到需要转换的模拟信号源,并按照ADC的数据手册进行正确连接。
- 编程ADC:根据需要设置ADC的参数,采样率、分辨率等。
- 测试和验证:在完成设置后,对ADC进行测试以确保它能够正确地转换信号,并且结果符合预期。
ADC使用:
ADC特性精度连接图:
相关代码:
adc_common_config_type adc_common_struct;
adc_base_config_type adc_base_struct;
crm_periph_clock_enable(CRM_ADC1_PERIPH_CLOCK, TRUE);
nvic_irq_enable(ADC1_IRQn, 0, 0);
crm_adc_clock_select(CRM_ADC_CLOCK_SOURCE_HCLK);
adc_common_default_para_init(&adc_common_struct);
/* config division,adcclk is division by hclk */
adc_common_struct.div = ADC_HCLK_DIV_4;
adc_common_struct.tempervintrv_state = TRUE;
adc_common_config(&adc_common_struct);
adc_base_default_para_init(&adc_base_struct);
adc_base_struct.sequence_mode = FALSE;
adc_base_struct.repeat_mode = FALSE;
adc_base_struct.data_align = ADC_RIGHT_ALIGNMENT;
adc_base_struct.ordinary_channel_length = 1;
adc_base_config(ADC1, &adc_base_struct);
adc_resolution_set(ADC1, ADC_RESOLUTION_12B);
adc_ordinary_channel_set(ADC1, ADC_CHANNEL_16, 1, ADC_SAMPLETIME_640_5);
adc_ordinary_conversion_trigger_set(ADC1, ADC_ORDINARY_TRIG_TMR1CH1, ADC_ORDINARY_TRIG_EDGE_NONE);
adc_dma_mode_enable(ADC1, TRUE);
adc_dma_request_repeat_enable(ADC1, TRUE);
adc_interrupt_enable(ADC1, ADC_OCCO_INT, TRUE);
adc_enable(ADC1, TRUE);
while(adc_flag_get(ADC1, ADC_RDY_FLAG) == RESET);
adc_calibration_init(ADC1);
while(adc_calibration_init_status_get(ADC1));
adc_calibration_start(ADC1);
while(adc_calibration_status_get(ADC1));
adc_ordinary_software_trigger_enable(ADC1, TRUE);
打印出温度
打印出结果:
|