蓝桥杯嵌入式开发:STM32G431R8T6的ADC和DAC实验教程
创作时间:
作者:
@小白创作中心
蓝桥杯嵌入式开发:STM32G431R8T6的ADC和DAC实验教程
引用
1
来源
1.
http://www.liustu.com.cn/index.php/2025/02/20/stm32adda/
本文将介绍如何使用STM32G431R8T6开发板实现ADC(模数转换)和DAC(数模转换)功能。通过CubeMX进行硬件配置,并提供完整的C代码实现,帮助读者掌握ADC和DAC的基本使用方法。
本次实验使用的是蓝桥杯嵌入式大赛的指定开发板,STM32G431R8T6。
CubeMX配置
ADC部分
设置引脚选择ADC模式,对应通道选择“Single-ended”(单端输出)。其他默认即可。
DAC部分
DAC选择“仅与外部引脚相连”。
生成代码
ad.c
#include "ad.h"
/* ADC读取函数
* 参数 AD结构体的变量
* 返回值 AD读取到的电压(0-3.3V)
*/
double ADC_GetValue(ADC_HandleTypeDef* adcHandle)
{
/* 保存从AD寄存器中读取到的数值 */
unsigned int value;
HAL_ADC_Start(adcHandle);
/* 读取ADC中寄存器的值 */
value = HAL_ADC_GetValue(adcHandle);
/* 数据处理,转化为电压值 */
return value * 3.3 / 4095;
}
/* DAC输出函数
* 参数 DAC结构体、通道值、数据对其格式、输出的电压值
*/
void DAC_OUT(DAC_HandleTypeDef* dacHandle, uint32_t Channel, uint32_t Alignment, double value)
{
uint32_t v_data;
/* 开启DAC输出 */
HAL_DAC_Start(dacHandle, Channel);
/* DAC输出 */
v_data = value / 3.3 * 4096;
HAL_DAC_SetValue(dacHandle, Channel, Alignment, v_data);
/* DAC关闭 */
HAL_DAC_Stop(dacHandle, Channel);
}
ad.h
#ifndef __AD_H_
#define __AD_H_
#include "main.h"
double ADC_GetValue(ADC_HandleTypeDef* adcHandle);
void DAC_OUT(DAC_HandleTypeDef* dacHandle, uint32_t Channel, uint32_t Alignment, double value);
#endif
主函数功能验证部分
while (1)
{
/* ADC数据采集显示 */
adc1_value = ADC_GetValue(&hadc1);
adc2_value = ADC_GetValue(&hadc2);
sprintf(lcd_string,"ADC1 = %.3f",adc2_value);
LCD_DisplayStringLine(Line1, (unsigned char *)lcd_string);
sprintf(lcd_string,"ADC2 = %.3f",adc1_value);
LCD_DisplayStringLine(Line2, (unsigned char *)lcd_string);
/* 将采集到的ADC电压通过DAC输出 */
DAC_OUT(&hdac1,DAC_CHANNEL_1,DAC_ALIGN_12B_R,adc1_value);
sprintf(lcd_string,"PA4 DAC = %.3f",adc2_value);
LCD_DisplayStringLine(Line3, (unsigned char *)lcd_string);
}
演示教程视频
【B 站链接 —— 备战 2025 蓝桥杯 —— 嵌入式】ADC、DAC
热门推荐
手机电话卡逾期影响信用吗,逾期未还手机电话费会影响个人信用记录吗?
天人五衰是什么意思?天人五衰是指哪五衰?
OWL联赛重大转型:OverActive退出,暴雪探索新方向
岭南李丛绘清供,艺海拾贝话古今
华中科技大学团队揭示冬季抑郁发病机制:PER3基因变异影响糖皮质激素合成
刘备人物形象分析
女人更年期失眠的调理
早醒和晚睡:抑郁和焦虑的“时间信号”?
香水百合一年开几次花?
故宫摄影第一人、著名摄影家李少白 用镜头收集欲晓东方的紫禁之光
交叉注意力结合特征融合,这个创新思路必将爆发!
动车组列车的动力集中式与动力分散式牵引方式详解
微信不能发送位置信息的原因解析
从6S到10S的跨越之路:6S管理的起源、发展和延伸
以新媒体助力文化出海,构筑国际传播新优势
以新媒体助力文化出海,构筑国际传播新优势
如果给姓名打分,姓名打分可靠吗?有什么依据?
龋齿矿化怎么治疗?需要特定的治疗方式来促进复原哦
冰箱不是保险箱!如何正确使用和清洁冰箱?
西安医院小程序开发如何颠覆传统就医模式?带来哪些变革?
阿达帕林凝胶常见问题,快问快答!
占领汉中后,刘备为何开始提防张飞?你看看张飞干了啥蠢事
你需要知道的 6 个智能学习目标示例
卖木炭是否合法?介绍相关法律法规
如何在银行办理银行卡的多币种账户开通?
因果关系的缩放与重组:从微观到宏观的系统思维
猫眼花卉应该用哪种土壤栽培?栽培时需要注意什么?
长陵旅游攻略:探秘明十三陵之首的必玩景点与实用指南
安徽公布生态环境违法行为举报奖励典型案例
如何在UI设计中实现用户个性化