DAC数模转换器(DAC特性、DAC工作原理、DAC输出实验配置步骤、DAC输出三角波实验、DAC输出正弦波实验配置步骤、PWM + RC滤波器、PWM DAC技术实现原理)

参考

http://t.csdnimg.cn/GjsbR

一、DAC简介

在这里插入图片描述
在这里插入图片描述
注意 STM32H7 只有一个 DAC,但有两个独立的通道,跟 F4 的略不同,F4 是两个 DAC。
◆ 如果仅使用 STM32H7 的一个通道,即 PA4 或者 PA5 引脚,另一个引脚没有做任何配置,这个引脚
上会有波形效应。
◆ STM32H7 的 DAC 支持出厂校准和用户校准模式。特别注意一点,校准是建立在用户使能了输出缓
冲的情况下才有效。
◆ STM32H7 的 DAC 支持正常模式和采样保持模式,其中采样保持模式用于低功耗状态使用。
◆ DAC 的输出除了可以连接 PA4 或者 PA5 引脚,也可以连接到片上外设,比如运放,比较器。
◆ 12 位分辨率,双通道,支持独立或者同时使用。
◆ 两个 DA

### STM32 H7 DAC 使用教程及技术文档 #### 1. 概述 STM32H7系列微控制器集成了高性能的数模转换器(DAC),支持多种配置选项,适用于各种应用场合。该DAC模块具有高精度和快速响应的特点,适合用于音频处理、传感器模拟信号生成等领域[^2]。 #### 2. DAC 功能特性 - 支持双通道同步采样保持功能; - 提供多达两个独立的12位分辨率DAC输出; - 可通过DMA方式进行数据传输,减轻CPU负担; - 内置噪声波形发生器,可用于测试目的; - 支持软件触发或外部事件触发模式; #### 3. 配置与初始化 要启用DAC功能,需完成如下设置: ```c // 初始化结构体定义 DAC_ChannelConfTypeDef sConfig = {0}; // 开启DAC时钟 __HAL_RCC_DAC_CLK_ENABLE(); // 创建默认参数配置对象 hdac.Instance = DAC; if (HAL_DAC_Init(&hdac) != HAL_OK){ Error_Handler(); } // 设置通道具体参数 sConfig.DAC_Trigger = DAC_TRIGGER_NONE; // 不使用触发源 sConfig.DAC_OutputBuffer = DAC_OUTPUTBUFFER_DISABLE; // 关闭缓冲区 if (HAL_DAC_ConfigChannel(&hdac, &sConfig, DAC_CHANNEL_1) != HAL_OK){ Error_Handler(); // 错误处理函数 } ``` #### 4. 数据写入操作 向指定通道发送数值可以采用下面的方式实现: ```c uint32_t value = 2048; // 中间值对应约一半电压范围 if(HAL_DAC_SetValue(&hdac,DAC_CHANNEL_1,DAC_ALIGN_12B_R,value)!= HAL_OK){ Error_Handler(); } ``` #### 5. 启动/停止DAC工作 启动或停止DAC可以通过调用相应API来控制: ```c /* Start conversion of regular channel */ if (HAL_DAC_Start(&hdac, DAC_CHANNEL_1) != HAL_OK){ Error_Handler(); } /* Stop conversion of regular channel */ if (HAL_DAC_Stop(&hdac, DAC_CHANNEL_1) != HAL_OK){ Error_Handler(); } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值