在昨天翻数据手册的时候突然发现GD32VF103RBT6带了两路的DAC,分别为PA4和PA5引脚。本次使用DAC0进行电压输出,并且降DAC的设置值与输出电压显示在OLED屏幕上。
首先新建工程,选择的是MRS开发环境,只需将之前的工程设为模块即可。在工程的user_file下新建DAC文件夹,并且添加其头文件路径。
DAC初始化
- #include "dac.h"
- void dac_init(void)
- {
- rcu_periph_clock_enable(RCU_GPIOA);
- rcu_periph_clock_enable(RCU_DAC);
- gpio_init(RCU_GPIOA,GPIO_MODE_AIN , GPIO_OSPEED_50MHZ, GPIO_PIN_4);
- dac_deinit();
- dac_dma_disable(DAC0);
- dac_trigger_disable(DAC0);
- dac_wave_mode_config(DAC0, DAC_WAVE_DISABLE);
- dac_output_buffer_enable(DAC0);
- dac_enable(DAC0);
- }
头文件
- #ifndef USER_FILE_DAC_DAC_H_
- #define USER_FILE_DAC_DAC_H_
- #include "gd32vf103.h"
- void dac_init(void);
- #endif /* USER_FILE_DAC_DAC_H_ */
主函数引用dac.h头文件,在OLED显示函数中没有编写浮点型显示函数,所以调用sprintf将内容映射到OLED字符串显示函数中
结果:150/4096.0*3.3=0.12084v