DAC是STM32系列的一个基本外设,可以将数字信号转化成模拟信号,这次我将使用DAC来输出一个特定波形。
首先确定工作方法,由于我目前在做的简易示波器在输出波形的同时还需要显示输入信号,所以不能占用太多CPU时间,于是就选用了基于DMA的ADC。
使用DMA只需告诉DMA外设它要怎么搬移数据就可以处理其他事。
首先定义一下
#define DAC_DHR12R1 (u32)&(DAC->DHR12R1) //DAC DATA buff
作为DMA的外设数据地址
首先是初始化输出管脚
DAC1对应PA4
void Wave_GPIO_Config(void)//DAC!-------PA5 { GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4 ; GPIO_SetBits(GPIOA,GPIO_Pin_4) ; GPIO_Init(GPIOA, &GPIO_InitStructure); }