• 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 开发指南

  • 相关阅读:
    BZOJ 1036 树的统计
    codevs 4712 gcd与lcm问题
    codevs 1574 矩阵乘法
    Python定时任务框架APScheduler
    PHP集成支付宝快速实现充值功能
    玩转Web之easyui(二)-----easy ui 异步加载生成树节点(Tree),点击树生成tab(选项卡)
    玩转Web之easyui(一)-----easy ui datagird 分页
    Android访问服务器(TOMCAT)乱码引发的问题
    工厂方法模式--结合具体例子学习工厂方法模式
    简单工厂模式--结合实例学习简单工厂模式
  • 原文地址:https://www.cnblogs.com/zengsf/p/7216639.html
Copyright © 2020-2023  润新知