GD32450i-EVAL学习笔记 7 - DAC

本文介绍了GD32F450微控制器中DAC的初始化步骤,包括GPIO设置、RCU使能、DAC配置和使能。内容详细讲解了如何设置12位右对齐模式的DAC输出,并给出了通过按键调整DAC输出值的实例,展示了电压从0-3.3V变化的过程。
该文章已生成可运行项目,

目录

1. 初始化

1.1 GPIO初始化

1.2 使能RCU

1.3 配置DAC

1.4 使能DAC

2. DAC输出

3. 实例


GD32F450最多2组DAC。数据可以采用 8 位或 12 位模式,左对齐或右对齐模式。

在使能 DAC 模块前,GPIO 口(PA4 对应 DAC0PA5 对应 DAC1)应配置为模拟模式。

1. 初始化

1.1 GPIO初始化

#define IO_DAC                          GPIOA
#define PIN_DAC_0                       4
#define PIN_DAC_1                       5
#define PIN_DAC                         PIN_DAC_0

#define DACSetAN()                      gpio_mode_set(IO_DAC, GPIO_MODE_ANALOG, GPIO_PUPD_NONE, ((uint32_t)1 << PIN_DAC))

1.2 使能RCU

rcu_periph_clock_enable(RCU_GPIOA);
rcu_periph_clock_enable(RCU_DAC);

1.3 配置DAC

dac_trigger_disable(DAC_OUT);
dac_wave_mode_config(DAC_OUT, DAC_WAVE_DISABLE);
dac_output_buffer_enable(DAC_OUT);

 不使用触发。

1.4 使能DAC

dac_enable(DAC_OUT);

2. DAC输出

dac_data_set(DAC_OUT, DAC_ALIGN_12B_R, gDacValue);

采用右对齐,12bit的设置,DAC的有效值范围为0-0xFFF。

3. 实例

GD32450i-EVAL的DAC输出配置:

通过按键Wakeup和Tamper增减DAC的设置值,用万用表量测DACOUT可以看到电压从0-3.3V的变化。

case KEY_WAKEUP | KEY_BREAK:
    gDacValue += 0x10;
    gDacValue &= 0xFFF;
    //Printf("DAC Set Value:0x%x\n", gDacValue);
    dac_data_set(DAC_OUT, DAC_ALIGN_12B_R, gDacValue);
    break;
        
case KEY_TAMPER | KEY_BREAK:
    gDacValue -= 0x10;
    gDacValue &= 0xFFF;
    //Printf("DAC Set Value:0x%x\n", gDacValue);
    dac_data_set(DAC_OUT, DAC_ALIGN_12B_R, gDacValue);
    break;

本文章已经生成可运行项目
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值