前两天做电源题,需要输出固定电压,上网查了下资料,然后自己用STM32写了个DAC输出固定电压的程序
希望跟大家一起分享学习一下。如果有什么错误还请纠正。
用的是STM32F103RC,PA4和PA5口
单片机源程序如下:
- /******************************************
- 这是DAC输出波形的测试程序
- 用于测试 输出三角波以及锯齿波等任意波形
- 这是其对应的.c文件,用于定义一些函数等内容
- *******************************************/
- #include "DAC.h"
- /*************************************************
- 函数:static void DAC_Config(void)
- 功能:DAC以及GPIO的初始化配置
- 返回值:无
- 参数:无
- 备注:无
- **************************************************/
- static void DAC_Config(void)
- {
- DAC_InitTypeDef DAC_InitStructure;
- GPIO_InitTypeDef GPIO_InitStructure;
-
-
- DAC_GPIO_PeriphClkCmd( DAC_GPIO_CLK,ENABLE);
- //GPIO结构体初始化配置
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4 | GPIO_Pin_5 ;
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN ;
-
- GPIO_Init(GPIOA ,&GPIO_InitStructure);
-
- //开启DAC对应的时钟
- DAC_PeriphClkCmd(DAC_CLK ,ENABLE);
-
- DAC_InitStructure.DAC_Trigger = DAC_Trigger_None ;
- DAC_InitStructure.DAC_WaveGeneration = DAC_WaveGeneration_None ;
- /************************波形发生器的时候才会用到**********************************/
- DAC_InitStructure.DAC_LFSRUnmask_TriangleAmplitude = DAC_LFSRUnmask_Bit0;
- /**********************************************************************************/
- DAC_InitStructure.DAC_OutputBuffer = DAC_OutputBuffer_Disable ;
-
- DAC_Init(DAC_Channel_1 ,&DAC_InitStructure);
- DAC_Init(DAC_Channel_2 ,&DAC_InitStructure);
-
- DAC_Cmd(DAC_Channel_1, ENABLE);
- DAC_Cmd(DAC_Channel_2, ENABLE);
-
-
- }
- /******************************
- 函数:void DAC_Mode_Init(void)
- 功能:实现各类函数的初始化
- 返回值:无
- 参数:无
- 备注:无
- *******************************/
- void DAC_fixation_Init(void)
- {
- DAC_Config();
- }
复制代码
所有资料51hei提供下载:
程序.7z
(173.85 KB, 下载次数: 23)
|