【蓝桥杯-嵌入式 STM32】ADC、DAC
本文最后更新于 138 天前,其中的信息可能已经有所发展或是发生改变。

本次实验使用的是蓝桥杯嵌入式大赛的指定开发板,STM32G431R8T6。

下面为 CubeMX 和代码部分

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

如果您觉得这篇文章不错,且手里较为宽裕,可以支持一下博主,一分也是缘分😊
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇