STM32 DAC模块的应用(FW_F1_V1.8.5)

目录

概述

1 STM32Cube配置项目

1.1 软件版本信息

1.2 配置DAC模块参数

1.3 GENERATE Project

2 DAC库函数介绍

2.1 初始化函数:HAL_DAC_Init

2.2 启动DAC数据转换:HAL_DAC_Start

2.3 停止DAC数据转换:HAL_DAC_Stop 

 2.4 设置通道数据函数:HAL_DAC_SetValue

3 功能代码实现

3.1 数据配置函数

3.2 初始化函数

4 测试

4.1 测试代码实现

4.2 运行结果


概述

本文主要讲述STM32F103芯片DAC模块模块的使用方法,包括使用STM32Cube工程生成工程项目。还介绍了FW_F1_V1.8.5中和DAC模块相关的库函数的使用方法。最后,编写一个案例,使用DAC模块输出模拟电压,使用ADC模块检测该电压的值。比较其是否一致。

1 STM32Cube配置项目

1.1 软件版本信息

软件名称版本信息
STM32CubeSTM32CubeMX 6.11
STM32 HALSTM32Cube_FW_F1_V1.8.5
KEIL(编译软件)Version: 5.38.0.0

1.2 配置DAC模块参数

1)使能DAC模块,笔者选择OUT2作为输出端口

 2)使能输出Buff

3)IO口选择,选择PA5端口作为输出接口

1.3 GENERATE Project

 完成参数配置后,就可以生成项目,点击GENERATE生成项目如下:

2 DAC库函数介绍

2.1 初始化函数:HAL_DAC_Init

函数原型:

HAL_StatusTypeDef HAL_DAC_Init(DAC_HandleTypeDef *hdac);

功能介绍:

根据指定的参数初始化DAC外设在DAC_InitStruct中初始化相关句柄。

参数介绍:

hdac:  指向DAC_HandleTypeDef结构体的指针,该结构体包含指定DAC的配置信息。

2.2 启动DAC数据转换:HAL_DAC_Start

函数原型:

HAL_StatusTypeDef HAL_DAC_Start(DAC_HandleTypeDef *hdac, uint32_t Channel);

功能介绍:

根据指定的参数初始化DAC外设在DAC_InitStruct中初始化相关句柄,启动对应通道DAC转换数据功能。

参数介绍:

hdac:  指向DAC_HandleTypeDef结构体的指针,该结构体包含指定DAC的配置信息。

Channel: 通道号

2.3 停止DAC数据转换:HAL_DAC_Stop 

函数原型:

HAL_StatusTypeDef HAL_DAC_Stop(DAC_HandleTypeDef *hdac, uint32_t Channel);

功能介绍:

根据指定的参数初始化DAC外设在DAC_InitStruct中初始化相关句柄,停止对应通道DAC转换数据功能。

参数介绍:

hdac:  指向DAC_HandleTypeDef结构体的指针,该结构体包含指定DAC的配置信息。

Channel: 通道号

 2.4 设置通道数据函数:HAL_DAC_SetValue

函数原型:

HAL_StatusTypeDef HAL_DAC_SetValue(DAC_HandleTypeDef *hdac, uint32_t Channel, uint32_t Alignment, uint32_t Data);

功能介绍:

根据指定的参数初始化DAC外设在DAC_InitStruct中初始化相关句柄,停止对应通道DAC转换数据功能。

参数介绍:

hdac:  指向DAC_HandleTypeDef结构体的指针,该结构体包含指定DAC的配置信息。

Channel: 通道号

Alignment: 字节对其方式和bit位个数

Data:  DAC通道要传递的值

3 功能代码实现

3.1 数据配置函数

函数91行: 调用HAL_DAC_SetValue函数配置DAC数值

Alignment配置为DAC_ALIGN_12B_R

3.2 初始化函数

代码37~58行:为STM32Cube自动生成的代码,完成DAC功能初始化

代码60行:配置通道的数据

代码61行:启动DAC数值转换功能

 源代码如下:

/* DAC init function */
void MX_DAC_Init(void)
{

  /* USER CODE BEGIN DAC_Init 0 */

  /* USER CODE END DAC_Init 0 */

  DAC_ChannelConfTypeDef sConfig = {0};

  /* USER CODE BEGIN DAC_Init 1 */

  /* USER CODE END DAC_Init 1 */

  /** DAC Initialization
  */
  hdac.Instance = DAC;
  if (HAL_DAC_Init(&hdac) != HAL_OK)
  {
    Error_Handler();
  }

  /** DAC channel OUT2 config
  */
  sConfig.DAC_Trigger = DAC_TRIGGER_NONE;
  sConfig.DAC_OutputBuffer = DAC_OUTPUTBUFFER_ENABLE;
  if (HAL_DAC_ConfigChannel(&hdac, &sConfig, DAC_CHANNEL_2) != HAL_OK)
  {
    Error_Handler();
  }
  /* USER CODE BEGIN DAC_Init 2 */
  HAL_DAC_SetValue( &hdac, DAC_CHANNEL_2, DAC_ALIGN_12B_R, 100 );
  HAL_DAC_Start( &hdac, DAC_CHANNEL_2);
  /* USER CODE END DAC_Init 2 */

}

4 测试

4.1 测试代码实现

由于笔者没有示波器用于测试模拟信号,于是使用一路ADC来转换DAC输出的模拟量。关于ADC功能的代码实现,可参考笔者其他文章在,合理只介绍DAC部分的实现方法。

测试代码如下:

ADC数据采集代码:

4.2 运行结果

ADC采集的数字量和DAC输出的模拟量的对应关系

  • 13
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
此软件包中提供的 HAL(硬件抽象层)驱动程序支持 以下STM32F100xx STM32F101xx,STM32F102xx,STM32F103xx ,STM32F105xx 和STM32F107xx系列。 STM32CubeF1固件包附带一个更新程序实用程序STM32CubeUpdater,可配置为自动或按需检查新固件包更新(新版本或/和补丁)。 要快速入门STM32CubeF1固件包,请参阅UM1847,您可以从www.st.com/stm32cube下载固件更新和所有最新文档。 下面 链接到最有用的文档 最新版本 的STM32CubeF1固件包。 UM1847:STM32F1系列STM32CubeF1入门。 UM1853:STM32CubeF1 Nucleo演示固件。 UM1850:STM32F1xx HAL驱动程序的说明。 UM1734:STM32Cube USB设备库。 UM1720:STM32Cube USB主机库。 UM1721:使用FatF在STM32Cube上开发应用程序。 UM1722:使用RTOS在STM32Cube上开发应用程序。 UM1713:使用LwIP TCP / IP堆栈在STM32Cube上开发应用程序。 UM1709:STM32Cube以太网IAP示例。 更新历史记录 V1.7.0 / 09-October-2018 主要变化 用于修复已知缺陷和一些实现增强的常规更新 对HAL驱动程序进行的以下更改需要基于较旧的HAL版本更新应用程序代码 HAL CAN驱动程序的返工(兼容性中断) 新的HAL CAN驱动程序已经使用新的API进行了重新设计,以绕过先前HAL CAN驱动程序版本中对CAN Tx / Rx FIFO管理的限制。 推荐使用新的HAL CAN驱动程序。它通常位于Drivers / STM32F1xx_HAL_Driver / Src和Drivers / STM32f1xx_HAL_Driver / Inc文件夹中。它可以通过stm32f1xx_hal_conf.h中的开关HAL_CAN_MODULE_ENABLED启用 出于软件兼容性原因,旧版HAL CAN驱动程序也出现在Drivers / STM32F1xx_HAL_Driver / Src / Legacy和Drivers / STM32F1xx_HAL_Driver / Inc / Legacy文件夹中。建议不要使用它作为已弃用的用法。但是可以通过stm32f1xx_hal_conf.h中的开关HAL_CAN_LEGACY_MODULE_ENABLED启用它 \ HAL stm32f1xx_hal_conf_template.h:添加开关 HAL_CAN_LEGACY_MODULE_ENABLED HAL CAN驱动程序已使用新API进行了重新设计。 \ CMSIS 修复已知缺陷 和几个实现 增强 \项目 更新CAN示例以支持新的HAL CAN驱动程序。 通过添加开关 HAL_CAN_LEGACY_MODULE_ENABLED 更新stm32f1xx_hal_conf.h 。 F 或完整的更改列表,请参阅每个固件组件的发行说明 内容 STM32CubeF1固件包附带了一系列在STMicroelectronics板上运行的示例,由板组织,并为主要支持的工具链提供预配置项目。此表(STM32CubeProjectsList.html)中提供了详尽的项目列表。 项目发布说明 STM32F103RB,核蛋白 应用程序 (发行说明) 演示(发行说明) 示例(发行说明) Examples_LL (发行说明) Examples_MIX (发行说明) 模板(发行说明) Templates_LL (发行说明) STM32VL发现 示例(发行说明) 模板(发行说明) Templates_LL (发行说明) STM3210C_EVAL 应用程序(发行说明) 示例(发行说明) 模板(发行说明) Templates_LL (发行说明) STM3210E_EVAL 应用程序(发行说明) 示例(发行说明) Examples_LL (发行说明) Examples_MIX (发行说明) 模板(发行说明) Templates_LL (发行说明) 驱动程序 Cortex-M CMSIS V4.5(发行说明) STM32F1xx CMSIS V4.3.0(发行说明) STM32F1 xx HAL V1.1.3 (发行说明) BSP STM3210E_EVAL V7.0.0 (发行说明) BSP STM3210C_EVAL V6.1.0 (发行说明) BSP STM32VL-Discovery V1.0.1 (发行
the firmware package(stm32cube fw_f4 v1.8.5)or one of its dependencies requires the presence of a specific version of software or components. This error usually occurs when the firmware package requires a particular version of the software to function properly. To resolve this issue, you can follow the steps below: 1. Verify the compatibility: Check if the firmware package (stm32cube fw_f4 v1.8.5) is compatible with your current software version. Ensure that you have the correct version of the firmware package for your software. 2. Update the software: If the firmware package requires a specific version of software or components, check if there is an available update for your software. Updating to the latest version may resolve the compatibility issue. 3. Install missing dependencies: If the error message mentions the need for dependencies, make sure to install them. These dependencies could be additional software or components required by the firmware package. Check the documentation or user manual of the firmware package for a list of required dependencies. 4. Seek support: If you have followed the above steps but still encounter the error, it is recommended to seek support from the firmware package's manufacturer or community. They can provide assistance in troubleshooting the issue or guiding you through the installation process. Remember to always backup your system and files before making any changes or updates to ensure the safety of your data. 请注意,在执行任何操作之前,一定要提前备份您的系统和文件,以确保您的数据安全。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值