STM32G070RBT6基于STM32CubeMX自动生成ADC输入电压采样工程全过程讲解
- 📌相关篇《【硬件开源电路】STM32G070RBT6开发板》
- 🛠STM32CubeMX工程配置过程演示
📢Keil工程完成业务代码以及烧录演示放在资源中,gif文件过大无法上传。
📚工程概要
本工程是基于STM32CubeMX工具来配置项目,功能需求:在PA0引脚接入一个外部模拟量信号(单片机能承受的电压信号范围:0 ~ 3.6V)检测输入电压.然后通过串口打印出来。
📝需要自己补充的代码
- 🌿在adc.c源文件当中,在指定的位置放置如下实现函数
/******************************************************************************************************
* 函 数 名: ADC1_GetVaule
* 入口参数: 无
* 返 回 值: ADC1转换值
* 函数功能: 进行AD转换,采集电压
* 说 明: 多次采样求平均值,可以提高测量的精度,该函数返回的是AD转换得到的寄存器值
*******************************************************************************************************/
uint16_t ADC1_GetVaule(void)
{
uint8_t i = 0;
uint32_t AD_Vaule = 0; // AD转换值
for(i=0;i<30;i++) // 进行30次转换
{
HAL_ADC_Start(&hadc1); // 启动转换
AD_Vaule = AD_Vaule + HAL_ADC_GetValue(&hadc1); // 求和
}
AD_Vaule = AD_Vaule / 30; // 取平均值
return (uint16_t)AD_Vaule; // 返回AD转换值
}
🌿在adc.h头文件当中添加该函数实现的方法(函数)名。
- 🌿在usart.c文件当中,在指定的位置放置如下实现函数
📑主要功能是实现在需要调试信息输出的地方,Printf函数串口打印,在需要使用printf打印的地方,需要包含其
stdio.h
头文件,本函数依赖Miicro LIB
,需要在Keil中,Target
-勾选“Micro Lib”选项。
#include "stdio.h"
/*可调用printf*/
int fputc(int ch,FILE *f)
{
/*&huart1指的是串口1,如果用别的串口就修改数字*/
HAL_UART_Transmit(&huart1 , (uint8_t *)&ch , 1 , 0xffff);
return ch;
}
文章来源:https://www.toymoban.com/news/detail-428596.html
文章来源地址https://www.toymoban.com/news/detail-428596.html
✨STM32CubeMX配置注意事项
- 通过配置串口,默认串口1是分配在:
PC4
和PC5
引脚上的,在生成的Keil工程当中,定义在usart.c
文件当中。可以将串口1的功能复用到:PA9
和PA10
,PB6
和PB7
上。
⛳工程源码
链接:https://pan.baidu.com/s/1IHIIF5GFn41zYKjUMWOTKA
提取码:3t93
到了这里,关于STM32G070RBT6基于STM32CubeMX自动生成ADC输入电压采样工程全过程讲解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!