GD32450i-EVAL学习笔记 7 - DAC

目录

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;

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值