ArterySW 发表于 2025-4-16 13:49

AT32 WorkBench常用功能31--AT32F435 ADC普通组转换单通道配置

AT32 WorkBench常用功能31--AT32F435ADC普通组转换单通道配置
ADC普通组转换单个通道(多通道不适用此种用法)
本文主要介绍如何基于AT32 WorkBench配置ADC的普通组,转换一个通道,并读取转换的数据

转换时序

硬件环境

[*]AT-START-F435

软件环境

[*]AT32 Workbench
[*]MDK5
[*]串口助手
[*]

配置步骤
1 打开AT32WorkBench新建AT32F435工程


2 配置系统时钟(如果使用默认内部HICK,跳过此步骤2)
2.1 打开外设CRM配置HEXT为时钟振荡器,如下图


2.2 打开时钟配置


3 配置ADC模式和分频


4 配置普通组转换ADC CH1(PA1引脚)


5配置串口打印
5.1配置USART1


5.2 USART1引脚配置成PA9


5.3 开启串口打印


6点击“生成代码”生成MDK5代码工程

7 配置ADC普通通道转换相关应用代码
main.c的mian函数写法如下, 可以直接替换这部分代码
int main(void)
{
/* add user code begin 1 */

/* add user code end 1 */

/* system clock config. */
wk_system_clock_config();

/* config periph clock. */
wk_periph_clock_config();

/* nvic config. */
wk_nvic_config();

/* timebase config. */
wk_timebase_init();

/* usart1 already supports printf. */
/* init usart1 function. */
wk_usart1_init();

/* init adc-common function. */
wk_adc_common_init();

/* init adc1 function. */
wk_adc1_init();

/* add user code begin 2 */

/* add user code end 2 */

while(1)
{
    /* add user code begin 3 */
    adc_ordinary_software_trigger_enable(ADC1, TRUE);
   
    while(adc_flag_get(ADC1, ADC_OCCE_FLAG) == RESET);
   
    printf("adc data:%d\r\n", adc_ordinary_conversion_data_get(ADC1));
   
    wk_delay_ms(1000);
    /* add user code end 3 */
}
}

8在MDK5上编译,并下载代码到AT32F435 MCU 上
9复位运行AT32F435MCU,用串口助手观看打印信息,ADC数据每1秒钟转换一次,修改 PA1引脚电压,即可看到AD值的变化


ShimmeringDawn 发表于 2025-6-20 09:47

很详细的教程,mark一下后续会用到的。
页: [1]
查看完整版本: AT32 WorkBench常用功能31--AT32F435 ADC普通组转换单通道配置