打印
[AT32F423]

【AT-START-F423测评】+ADC

[复制链接]
1131|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
AD, ADC, dc
测试目地:利用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);
打印出温度
打印出结果:



使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

认证:工程师
简介:超越自我,为设计激发灵感和想象。

164

主题

654

帖子

3

粉丝