标题:
STM32-DAC工程模板
[打印本页]
作者:
wh0522
时间:
2017-12-14 21:30
标题:
STM32-DAC工程模板
0.png
(7.35 KB, 下载次数: 34)
下载附件
2017-12-15 01:16 上传
单片机源程序如下:
#include "sys.h"
#include "delay.h"
#include "usart.h"
#include "led.h"
#include "adc.h"
#include "dac.h"
#include "key.h"
/*************************************************
工程模板
①添加相应驱动文件 xxx.c
②修改驱动文件路径 C/C++
③添加库函数源文件 lib.c
④引用初始化函数(#include "..")
**************************************************/
int main(void)
{
u16 adcx;
float temp;
u8 t=0;
u16 dacval=0;
u8 key;
delay_init(); //延时函数初始化
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级
uart_init(115200); //串口初始化
KEY_Init(); //按键初始化
LED_Init(); //LED初始化
Adc_Init(); //ADC1初始化
Dac1_Init(); //DAC1初始化
printf("\r\n DAC输出实验 \r\n");
printf("\r\n 测试时间:2016/8/2 \r\n");
printf("\r\n 实验--燃然 \r\n");
while(1)
{
t++;
key=KEY_Scan(0);
if(key==WKUP_PRES) //WKUP按键按下
{
if(dacval<4000) dacval+=200;
DAC_SetChannel1Data(DAC_Align_12b_R,dacval);//12位右对齐数据格式 ,设置DAC输出值
}
else if(key==KEY1_PRES) //KEY1按下
{
if(dacval>200) dacval-=200;
else dacval=0;
DAC_SetChannel1Data(DAC_Align_12b_R,dacval);//12位右对齐数据格式 ,设置DAC输出值
}
if(t==10||key==WKUP_PRES||key==KEY1_PRES) //WKUP/KEY1按下了,或者定时时间到了/
{
adcx=DAC_GetDataOutputValue(DAC_Channel_1); //读取DAC寄存器值
printf("\r\n读取DAC寄存器值= %d ",adcx); //串口显示读取DAC寄存器值
temp=(float)adcx*(3.3/4096); //计算并得到DAC电压值
printf("\r\n读取DAC电压值= %f",temp); //串口显示读取DAC电压值
adcx=Get_Adc_Average(ADC_Channel_1,10); //得到ADC转换值
temp=(float)adcx*(3.3/4096); //得到ADC电压值
printf("\r\n读取ADC电压值= %f \r\n",temp); //串口显示读取ADC电压值
LED1=!LED1;
LED0=!LED0;
t=0;
}
delay_ms(20);
}
}
//正弦波
//三角波
//方波
复制代码
所有资料51hei提供下载:
template-工程模板 - DAC.rar
(400.28 KB, 下载次数: 28)
2017-12-15 01:16 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
zlkj
时间:
2018-5-29 22:02
感谢分享!请求发个电路图
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1