2025年第16届蓝桥杯嵌入式角逐学习条记(十):ADC丈量电压

[复制链接]
发表于 2025-10-25 06:59:53 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
1.原理图



VDD的最大值为3.3V,以是PB15丈量电压值的范围为0~3.3V,然后它读取到的AD值为0~4096,以是电压丈量公式为


为什么是4096,由于ADC是一个12比特的


2.CubeMX设置

将PB15引脚设置为ADC2_IN15,PB12设置为ADC1_IN11


打开ADC1的设置界面,找到IN11,选择Single ended模式


打开ADC2设置界面,将IN15-Single ended打勾


设置完成后点击右上角天生代码

3.代码部分

编写获取电压的函数
  1. double get_vol(ADC_HandleTypeDef *hadc)
  2. {
  3.         HAL_ADC_Start(hadc);
  4.         uint32_t adc_value = HAL_ADC_GetValue(hadc);
  5.         return 3.3 * adc_value / 4096;
  6. }
复制代码
LCD函数
  1. void lcd_show(void)
  2. {
  3.         sprintf(Temp,"R38_Vol:%.2f",get_vol(&hadc2));
  4.         LCD_DisplayStringLine(Line2,(uint8_t *)Temp);
  5.        
  6.         sprintf(Temp,"R37_Vol:%.2f",get_vol(&hadc1));
  7.         LCD_DisplayStringLine(Line4,(uint8_t *)Temp);
  8. }
复制代码
烧录完成后,扭动开发板上的R37与R38旋钮,屏幕上的电压值厘革随旋钮厘革。
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表