网站的类型有哪些,网页设计咨询,上海网站建设穹拓,汕头论坛建站模板目录 概述
1 DAC模块介绍
2 STM32Cube配置参数
2.1 参数配置 2.2 项目架构
3 代码实现
3.1 接口函数
3.2 功能函数
3.3 波形源代码
4 DAC功能测试
4.1 测试方法介绍
4.2 波形测试 概述
本文主要介绍如何使用STM32G4的DAC模块功能#xff0c;笔者使用STM32Cube工具…目录 概述
1 DAC模块介绍
2 STM32Cube配置参数
2.1 参数配置 2.2 项目架构
3 代码实现
3.1 接口函数
3.2 功能函数
3.3 波形源代码
4 DAC功能测试
4.1 测试方法介绍
4.2 波形测试 概述
本文主要介绍如何使用STM32G4的DAC模块功能笔者使用STM32Cube工具配置DAC模块的参数并使用HAL提供的函数接口验证DAC输出模拟量的功能。
1 DAC模块介绍
请参看原文
STM32G4的数模转换器DAC功能介绍-CSDN博客
2 STM32Cube配置参数
2.1 参数配置
1 选择通道
选择DAC1模块其对应的IO接口为 DAC1_OUT_PIN: PA4 2配置参数
使能如下参数 2.2 项目架构
完成2.1节参数配置后就可以生成项目其程序架构如下 3 代码实现
3.1 接口函数
使用STM32Cube工具生成的代码已经完成DAC模块的初始化功能程序员只实现DAC的输入数据接口 代码29行DAC数据的输入接口 3.2 功能函数
1生成反正弦波函数 2生成正弦函数 3 三角波函数 3.3 波形源代码
/* USER CODE BEGIN Header */
/********************************************************************************* File Name : waveLib.c* Description : main task ******************************************************************************* attention*
* COPYRIGHT: Copyright (c) 2024 tangmingfei2013126.com* CREATED BY: mingfei.tang
* DATE: JUL 05th, 2024*******************************************************************************/
/* USER CODE END Header */
#include waveLib.h
#include dac.h
#include stdio.h
#include string.h
#include stdbool.h
#include math.h#define PI 3.14159void DAC_SetConvert( uint32_t value)
{HAL_DAC_SetValue( hdac1, DAC_CHANNEL_1, DAC_ALIGN_12B_R,value );
}float dac_triangle_wave( void )
{static double t -1;float value, angle;if( t 1 ){t -1;}t 0.001;angle t*1000;return angle;
}float asin_wave( void )
{static double t -1;float value, angle;if( t 1 ){t -1;}value asin( t ); angle (180*value)/3.1415926;t 0.001;return angle;
}float sin_wave( void )
{float value, angle;static double t -1;angle 2*PI*t;value 100*sin( angle ); t 0.001;if( t 1 ){t -1;}return value;
}/* End of this file */4 DAC功能测试
4.1 测试方法介绍
使用DAC模块输出模拟波形ADC模块采样该波形数据 代码66行 设置原始波形数据 代码68行 配置DAC数据 代码76行显示原始波形数据 源代码文件
void Debug_adcLog( void )
{float value;value 200 dac_triangle_wave();// dac_triangle_wave();DAC_SetConvert(value);if( bl_ready ){bl_ready false;adc1_value_list[2] value;// asin wave adc1_value_list[3] dac_triangle_wave();Debug_PrintfJustFloat( pADC_ValList, ADC_TOTAL_CH );}
}
4.2 波形测试 1正弦波形测试 2反正弦波测试 原始波形 ADC采样的波形 3三角波测试
原始波形 ADC采样的波形