« 上一篇下一篇 »

AD+DA——STM32F407学习(一)

一、DAC

1、DA程控电压输出

  1. 时钟配置

            这里我们用的是DAC1_OUT,由上图知,引脚为PA4,所以时钟配置如下:

    开启了GPIOA、DAC的时钟。

  2. 引脚及模式配置

    根据STM32F407的数据手册(如下)


            我们把引脚的模式配置为模拟模式。(如下)

  3. DAC配置

           上面已经提到,我们用的是DAC1_OUT,即DAC通道1,我们将其配置为软件触发模式,这样就能自由的控制它的转换,有个地方要注意,那就是一定要使能输出缓存,不然就不会有电压输出。(具体配置如下)

           好了,上面3点就已经把DAC配置好了。这时你可以在一个循环里不断的输出数据,通过按键控制不同的数据输出,然后再用万用表测量PA4的电压,看看它是不是被你控制了。OK,程控电压输出(0-3.3V)就完成了。

   extern的作用

        这里顺便讲一下extern的用法。

        uint32_t param = 0;<main.c>

        param是个全局变量,用它来进行电压输出程控。循环里面检测按键,当设定的按键被按下,param就会增加相应的值。

        extern uint32_t param;<dac.c>

        然后通过这个外部变量的声明,上面DAC配置里面的参数param就会增加(它们是同一个变量 ,只是没在一个地方),然后再就会有不同的电压输出。


2、DA程控多信号输出

    关于信号产生这一块,请参见另一篇文章《简易函数信号发生器》。

二、ADC

外部电压值采样显示


总结

        DA电压输出不要用LED来检测,而应该用万用表

        12位DA最大数据只有4095(0x0FFF),而不是0xFFFF,必须要有严谨的态度。不然你会栽在很多小问题上

        LED不能直接接单片机电源,必须加限流电阻。接之前一定要先测电压。


感悟:写篇文章真的是很难,主要是一直都不想动,明明想写的,却老是拖着不去做,对人的惰性是深有体会!而且我发现拖延这个问题在我身上已经越来越严重了。