zoukankan      html  css  js  c++  java
  • stm32 DAC配置

    VDDA VSSA DAC 模块模拟部分的供电,而 Vref+则是 DAC 模块的参考电压。DAC_OUTx 就是 DAC

    输出通道了 (对应 PA4 或者 PA5 引脚)。

    由第一张图可知,要让DAC工作,必须要设置该寄存器。

    要配置DAC,则要5步完成:

    1)开启 PA 口时钟,设置 PA4 为模拟输入。

    2)使能 DAC1 时钟。

    3) 初始化 DAC,设置 DAC 的工作模式。

    4)使能 DAC 转换通道

    5) 设置 DAC 的输出值。

     1 void Dac1_Init(void)
     2 {
     3   
     4     GPIO_InitTypeDef GPIO_InitStructure;
     5     DAC_InitTypeDef DAC_InitType;
     6 
     7     RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE );      //使能PORTA通道时钟
     8        RCC_APB1PeriphClockCmd(RCC_APB1Periph_DAC, ENABLE );      //使能DAC通道时钟 
     9 
    10     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;                 // 端口配置
    11      GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;          //模拟输入
    12      GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    13      GPIO_Init(GPIOA, &GPIO_InitStructure);
    14     GPIO_SetBits(GPIOA,GPIO_Pin_4)    ;//PA.4 输出高
    15                     
    16     DAC_InitType.DAC_Trigger=DAC_Trigger_None;    //不使用触发功能 TEN1=0
    17     DAC_InitType.DAC_WaveGeneration=DAC_WaveGeneration_None;//不使用波形发生
    18     DAC_InitType.DAC_LFSRUnmask_TriangleAmplitude=DAC_LFSRUnmask_Bit0;//屏蔽、幅值设置
    19     DAC_InitType.DAC_OutputBuffer=DAC_OutputBuffer_Disable ;    //DAC1输出缓存关闭 BOFF1=1
    20     DAC_Init(DAC_Channel_1,&DAC_InitType);     //初始化DAC通道1
    21 
    22     DAC_Cmd(DAC_Channel_1, ENABLE);  //使能DAC1
    23   
    24     DAC_SetChannel1Data(DAC_Align_12b_R, 0);  //12位右对齐数据格式设置DAC值
    25 
    26 }
    27 
    28 //设置通道1输出电压
    29 //vol:0~3300,代表0~3.3V
    30 void Dac1_Set_Vol(u16 vol)
    31 {
    32     float temp=vol;
    33     temp/=1000;
    34     temp=temp*4096/3.3;
    35     DAC_SetChannel1Data(DAC_Align_12b_R,temp);//12位右对齐数据格式设置DAC值
    36 }

    知识来源:STM32F1 开发指南

  • 相关阅读:
    Spring@Profile注解
    day 32 子进程的开启 及其用法
    day 31 udp 协议SOCK_DGRAM
    day 30 客户端获取cmd 命令的步骤
    day 29 socket 理论
    day 29 socket 初级版
    有关 组合 继承
    day 27 多态 接口 类方法 静态方法 hashlib 摘要算法模块
    新式类和经典类的区别
    day 28 hasattr getattr serattr delattr 和带__内置__ 类的内置方法
  • 原文地址:https://www.cnblogs.com/zengsf/p/7216639.html
Copyright © 2011-2022 走看看