打印
[单片机芯片]

【CH32X035评估板测评】+ADC

[复制链接]
1524|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
CH32X035系列微控制器内置了12位ADC,可以用于采集模拟信号并将其转换为数字信号。关于CH32X035的ADC使用,可以参考以下步骤:
  • 将ADC通道配置为对应的外设通道。例如,如果想要将ADC1通道0配置为外部信号输入通道,可以使用HAL_ADC_ConfigChannel()函数,设置ADC1通道0对应的外设通道。
  • 进行ADC初始化。可以使用HAL_ADC_Init()函数进行ADC初始化操作。
  • 读取ADC通道的值。可以使用HAL_ADC_GetValue()函数读取指定通道的ADC值。.
下面进行ADC的使用。

主要特性:
12 位分辨率 支持 14 个外部通道和 1 个内部信号采样源
多通道的多种采样转换方式:单次、连续、扫描、触发、间断等
数据对齐模式:左对齐(仅规则组)、右对齐
采样时间可按通道分别编程
规则转换和注入转换均支持外部触发
模拟看门狗监测通道电压,自校准功能
ADC 通道输入范围:0≤VIN≤VD
框架:

ADC配置:

相关代码:
    ADC_InitTypeDef  ADC_InitStructure = {0};
    GPIO_InitTypeDef GPIO_InitStructure = {0};

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE);

    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;
    GPIO_Init(GPIOA, &GPIO_InitStructure);

    ADC_DeInit(ADC1);

    ADC_CLKConfig(ADC1, ADC_CLK_Div6);

    ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;
    ADC_InitStructure.ADC_ScanConvMode = DISABLE;
    ADC_InitStructure.ADC_ContinuousConvMode = ENABLE;
    ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;
    ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;
    ADC_InitStructure.ADC_NbrOfChannel = 1;
    ADC_Init(ADC1, &ADC_InitStructure);

    ADC_DMACmd(ADC1, ENABLE);
    ADC_Cmd(ADC1, ENABLE);

    for(i = 0; i < 1024; i++){
        printf("%04d\r\n", TxBuf[i]);
        Delay_Ms(10);
    }


<blockquote>    DMA_Tx_Init(DMA1_Channel1, (u32)&ADC1->RDATAR, (u32)TxBuf, 1024);
输出结果:
PA1下拉时:

PA1上拉时:


使用特权

评论回复
评论
forgot 2023-10-30 21:49 回复TA
不错,赞一个 
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

164

主题

654

帖子

4

粉丝