单片机
返回首页

STM32-DAC简单使用方法

2019-02-12 来源:eefocus

前言:

最近在调试STM32L152芯片的DAC功能,本文总结下STM32L152芯片 DAC简单使用方法。


硬件平台:STM32L152


软件平台:keil v5+cubeMX


函数库:HAL库


DAC使用方法

实现:


1.DAC的初始化。


DAC_HandleTypeDef hdac;

 


void DAC_Init(void)

{

  DAC_ChannelConfTypeDef sConfig;

    /**DAC Initialization 

    */

  hdac.Instance = DAC;

  if (HAL_DAC_Init(&hdac) != HAL_OK)

  {

    _Error_Handler(__FILE__, __LINE__);

  }

 

    /**DAC channel OUT1 config 

    */

  sConfig.DAC_Trigger = DAC_TRIGGER_NONE;

  sConfig.DAC_OutputBuffer = DAC_OUTPUTBUFFER_ENABLE;//输出缓存使能

  if (HAL_DAC_ConfigChannel(&hdac, &sConfig, DAC_CHANNEL_1) != HAL_OK)

  {

    _Error_Handler(__FILE__, __LINE__);

  }

}

其中,DAC的时钟开启在void HAL_DAC_MspInit(DAC_HandleTypeDef* hdac)函数中。


void HAL_DAC_MspInit(DAC_HandleTypeDef* hdac)

{

 

 

  GPIO_InitTypeDef GPIO_InitStruct;

  if(hdac->Instance==DAC)

  {

  /* USER CODE BEGIN DAC_MspInit 0 */

  /* USER CODE END DAC_MspInit 0 */

    /* Peripheral clock enable */

    __HAL_RCC_DAC_CLK_ENABLE();

  

    /**DAC GPIO Configuration    

    PA4     ------> DAC_OUT1 

    */

    GPIO_InitStruct.Pin = GPIO_PIN_4;

    GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;

    GPIO_InitStruct.Pull = GPIO_NOPULL;

    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);//对应的DAC管脚配置。

 

  /* USER CODE BEGIN DAC_MspInit 1 */

  /* USER CODE END DAC_MspInit 1 */

  }

}

 

void DAC_Trigger(uint16_t Value)

{

    HAL_DAC_SetValue(&hdac,DAC_CHANNEL_1 ,DAC_ALIGN_12B_R ,Value); //DAC的输出电压=Value*3.3/4096;

    HAL_DAC_Start(&hdac, DAC_CHANNEL_1); //开启DAC

    delay_ms(1000);

    HAL_DAC_Stop(&hdac, DAC_CHANNEL_1);//关闭DAC

}

总结:上述简单介绍了DAC输出电压实现步骤,步骤为DAC初始化、开启DAC时钟、配置DAC管脚、调用DAC函数输出对应的电压值。


进入单片机查看更多内容>>
相关视频
  • RISC-V嵌入式系统开发

  • SOC系统级芯片设计实验

  • 云龙51单片机实训视频教程(王云,字幕版)

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • TI 新一代 C2000™ 微控制器:全方位助力伺服及马达驱动应用

  • MSP430电容触摸技术 - 防水Demo演示

精选电路图
  • PIC单片机控制的遥控防盗报警器电路

  • 用数字电路CD4069制作的万能遥控轻触开关

  • 使用ESP8266从NTP服务器获取时间并在OLED显示器上显示

  • 开关电源的基本组成及工作原理

  • 如何构建一个触摸传感器电路

  • 基于ICL296的大电流开关稳压器电源电路

    相关电子头条文章