#define PI
3.1415
// 函数名称: void Sine_WaveData(u16 cycle ,u16 *D)
// 函数功能:正弦波形数据产生
***********************************************************/
void Sine_WaveData(u16 num, u16 *D)
{
u16 i;
{
Cnt = 2*PI*i/255; // 0、PI/2、PI、3/2PI、2PI
D[i] = (u16)(2048*(sin(Cnt) + 1)); // 把负值转换为正值
}
void DAC_Channel1Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
DAC_InitTypeDef DAC_InitType;
// 开GPIOA、DAC时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_AFIO,ENABLE); // 使能 GPIOA、AFIO 时钟
RCC_APB1PeriphClockCmd(RCC_APB1Periph_DAC, ENABLE); // 使能 DAC 时钟
u16 DAC_Channel1WaveValue[256]; // 用函数封装
/**********************************************************// 函数名称: void Sine_WaveData(u16 cycle ,u16 *D)
// 函数功能:正弦波形数据产生
***********************************************************/
void Sine_WaveData(u16 num, u16 *D)
{
u16 i;
float Cnt = 0.0;
for(i=0; i<num; i++){
Cnt = 2*PI*i/255; // 0、PI/2、PI、3/2PI、2PI
D[i] = (u16)(2048*(sin(Cnt) + 1)); // 把负值转换为正值
}
}
// DAC通道1输出初始化void DAC_Channel1Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
DAC_InitTypeDef DAC_InitType;
// 开GPIOA、DAC时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_AFIO,ENABLE); // 使能 GPIOA、AFIO 时钟
RCC_APB1PeriphClockCmd(RCC_APB1Periph_DAC, ENABLE); // 使能 DAC 时钟