电子工程师技术服务社区
- 社区首页
- 下载
- DAC_App.rar
资料描述
嗯,又是我,来分享一下昨天晚上捣弄的东西。小弟献丑了,写得不好,不对的地方请各位大神指正。
nucleo板子简单便宜,提供的资源自然也很少,所以要尽可能多的利用仅有的资源来学习更多的功能。看原理图和数据手册可以发现,唯一一个用户led即ld2连接的pa5引脚,刚好是dac1的通道2输出引脚,于是我们就可以用这个led来学习使用dac,顺带学习下定时器基本功能和dma。
dac—数模转换器
dac即是数模转换器,就是将数字量转换成模拟量,原理什么的大家应该都懂,直接跳入如何使用:
stm32的dac使用起来非常简单,首先将连接dac通道的gpio引脚配置为模拟状态,然后初始化dac,一共只有四个参数需要初始化,其中最重要的是触发源:这个参数的作用是,每来一个触发源信号,dac就刷新一次输出,也就是将需要转换的数字量转换为电压输出,这里选择定时器2作为触发源。
代码:
void dac_config(void)
{
gpio_inittypedef gpio_initstructure;
dac_inittypedef dac_initstructure;
dac_trigtim_config();//定时器配置,见第2点
rcc_ahbperiphclockcmd(rcc_ahbperiph_gpioa,enable);
rcc_apb1periphclockcmd(rcc_apb1periph_dac1,enable);
gpio_initstructure.gpio_pin = gpio_pin_5;
gpio_initstructure.gpio_mode = gpio_mode_an; //模拟
gpio_initstru