STM32CubeMX配置STM32G031多通道ADC采集(HAL库开发)

这篇具有很好参考价值的文章主要介绍了STM32CubeMX配置STM32G031多通道ADC采集(HAL库开发)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

时钟配置HSI主频配置64M

STM32CubeMX配置STM32G031多通道ADC采集(HAL库开发),STM32CubeMX,stm32,嵌入式硬件,单片机

 勾选打开8个通道的ADCSTM32CubeMX配置STM32G031多通道ADC采集(HAL库开发),STM32CubeMX,stm32,嵌入式硬件,单片机

 使能连续转换模式STM32CubeMX配置STM32G031多通道ADC采集(HAL库开发),STM32CubeMX,stm32,嵌入式硬件,单片机

 配置好串口,选择异步模式STM32CubeMX配置STM32G031多通道ADC采集(HAL库开发),STM32CubeMX,stm32,嵌入式硬件,单片机配置好需要的开发环境并获取代码STM32CubeMX配置STM32G031多通道ADC采集(HAL库开发),STM32CubeMX,stm32,嵌入式硬件,单片机

 修改main.c

串口重定向

#include "stdio.h"
int fputc(int ch, FILE *f)
{
  HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xFFFF);
  return ch;
}

 串口重定向一定要勾选Use Micro LIB

STM32CubeMX配置STM32G031多通道ADC采集(HAL库开发),STM32CubeMX,stm32,嵌入式硬件,单片机 获取ADC通道值

uint32_t ADC_Get_Average(uint8_t ch)
{
	ADC_ChannelConfTypeDef sConfig;
	uint32_t value_sum=0;	
	switch(ch)							
	{
		case 0:sConfig.Channel = ADC_CHANNEL_0;break;	
		case 1:sConfig.Channel = ADC_CHANNEL_1;break;
		case 2:sConfig.Channel = ADC_CHANNEL_2;break;
		case 3:sConfig.Channel = ADC_CHANNEL_3;break;
		case 4:sConfig.Channel = ADC_CHANNEL_4;break;
		case 5:sConfig.Channel = ADC_CHANNEL_5;break;
        case 6:sConfig.Channel = ADC_CHANNEL_6;break;
        case 7:sConfig.Channel = ADC_CHANNEL_7;break;
	}
    
	sConfig.SamplingTime = ADC_SAMPLINGTIME_COMMON_1;		
	sConfig.Rank = ADC_REGULAR_RANK_1;
	HAL_ADC_ConfigChannel(&hadc1,&sConfig);											

    HAL_ADC_Start(&hadc1);								
    HAL_ADC_PollForConversion(&hadc1,30);				
    value_sum = HAL_ADC_GetValue(&hadc1);								
    HAL_ADC_Stop(&hadc1);								

	return value_sum;									
}

主函数 

int main(void)
{
    HAL_Init();
    SystemClock_Config();
    MX_GPIO_Init();
    MX_ADC1_Init();
    MX_USART1_UART_Init();


    uint16_t i = 0;
    uint16_t Adc_Val = 0;
    static uint16_t count = 0;
    
    while (1)
    {
        count++;
        if(count % 100000 == 0)
        {
            for(i = 0; i < 8; i++)
            {
                Adc_Val  = ADC_Get_Average(i);
                printf("CHANNEL%d = %04d, %f V\r\n", i, Adc_Val, (double)Adc_Val / 4095 * 3.3); 
            }
            printf("\r\n\r\n\r\n\r\n\r\n"); 
        }
    }
}

 串口输出

STM32CubeMX配置STM32G031多通道ADC采集(HAL库开发),STM32CubeMX,stm32,嵌入式硬件,单片机文章来源地址https://www.toymoban.com/news/detail-615698.html

到了这里,关于STM32CubeMX配置STM32G031多通道ADC采集(HAL库开发)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于高性能的STM32G031K4T6、STM32G031K6T6、STM32G031K8T6(ARM微控制器)64MHz 闪存 32-LQFP

    STM32G0 32位微控制器 (MCU) 适合用于消费、工业和家电领域的应用,并可随时用于物联网 (IoT) 解决方案。这些微控制器具有很高的集成度,基于高性能ARM® Cortex®-M0+ 32位RISC内核,工作频率高达64MHz。该器件包含内存保护单元 (MPU)、高速嵌入式内存、DMA以及各种系统功能、增强型

    2024年02月11日
    浏览(47)
  • STM32CubeMx实现ADC多通道+DMA读取(HAL库)

    目录 一、实验结果  二、STM32CubeMx配置 三、main.c测试代码 1、RCC配置 (外部晶振选择8MHz。设置相应的分频器M=8,倍频器倍频系数N=336,分频器分频系数P=2,那么主PLL生成的第一个输出高速时钟PLLP为:168MHz)  2、SYS配置  3、ADC(规则)通道配置(独立模式,预分频4分频,1

    2024年02月15日
    浏览(55)
  • STM32HAL ADC+TIM+DMA采集交流信号 基于cubemx

    本文主要讲解定时器触发ADC去采集交流信号,DMA把数据搬移到内存。 所需工具: 开发板:STM32F103C8T6 STM32CubeMX IDE: Keil-MDK 相关文章: STM32HAL ADC+TIM+DMA采集交流信号 基于cubemx(二) STM32cubemx ADC+TIM+DMA超频采样 ADC+TIM+DMA采集交流信号是电赛中使用范围最为广泛的一个技术。这个模

    2024年02月03日
    浏览(52)
  • 野火STM32电机系列(六)Cubemx配置ADC规则和注入通道

    前文已经配置了GPIO、编码器 本节讲解CubeMXADC规则和注入通道 本文adc注入通道采用定时器触发,因此在上文定时器配置的基础上进行 常规信号(温度等)使用带DMA的常规通道连续采样 注入采样由定时器触发,采集电机三相电流,并进入adc中断执行10khz的控制程序 ADC硬件接口

    2024年02月08日
    浏览(47)
  • STM32初学入门笔记(3):STM32CubeMX配置STM32实现多通道ADC+DMA读取模拟量

    模拟信号的读取是我们在做很多项目是都要用到的,而模拟量的读取就要依赖于ADC数模转换器。对于初学者,学习使用ADC可以很大的帮助以后的STM32学习。 目录 ADC简介 : DMA简介:  工程开始: STM32CubeMX配置区: 配置外部时钟: 配置调试: 配置ADC: 配置DMA: 配置串口: 配

    2024年02月09日
    浏览(50)
  • 【STM32】定时器1触发ADC多(规则)通道采样+DMA(CUBEMX配置)

    在用单片机做电源控制时不得不提ADC采集,离散系统是有固定的执行周期的,所以我们采样也是要固定时间去采样。然后就是我希望pwm波(定时器1产出)的频率与采样频率一致。 我下面演示的是G431CBU6,当然其他芯片也大差不差了。 说一下大致流程,TIM1触发ADC采样,然后

    2024年02月01日
    浏览(51)
  • STM32 HAL库 STM32CubeMX -- ADC

    ADC(Analog-to-Digital Converter)指模/数转换器或者模拟/数字转换器。 是指将连续变量的模拟信号转换为离散的数字信号的器件。 也就是将 模拟信号 转化为 数字信号 。 STM32f103 系列有3 个ADC,精度为12 位,每个ADC 最多有16 个外部通道和2个内部信号源。其中ADC1 和ADC2 都有16 个外部

    2024年02月15日
    浏览(44)
  • STM32CubeMX教程13 ADC - 单通道转换

    开发板(正点原子stm32f407探索者开发板V2.4) STM32CubeMX软件(Version 6.10.0) keil µVision5 IDE(MDK-Arm) ST-LINK/V2驱动 野火DAP仿真器 XCOM V2.6串口助手 1个滑动变阻器 使用STM32CubeMX软件配置STM32F407开发板的 ADC实现单通道ADC采集 ,具体为使用ADC1_IN5通道通过软件/定时器触发采集滑动变阻

    2024年02月02日
    浏览(54)
  • STM32G070RBT6基于STM32CubeMX自动生成ADC输入电压采样工程全过程讲解

    📌相关篇《【硬件开源电路】STM32G070RBT6开发板》 🛠STM32CubeMX工程配置过程演示 📢Keil工程完成业务代码以及烧录演示放在资源中,gif文件过大无法上传。 📚工程概要 本工程是基于STM32CubeMX工具来配置项目,功能需求:在PA0引脚接入一个外部模拟量信号(单片机能承受的电

    2024年02月01日
    浏览(45)
  • STM32Cubemx——ADC采集+DMA传输

    STM32F407VE核心板 STM32Cubemx 版本 6.0.1 Keil 版本 5.31 杜邦线 ST-Link 12 位 ADC 是逐次趋近型模数转换器。它具有多达 19 个复用通道,可测量来自 16 个外部源、两个内部源和 VBAT 通道的信号。这些通道的 A/D 转换可在单次、连续、扫描或不连续采样模式下进行。ADC 的结果存储在一个左

    2023年04月24日
    浏览(62)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包