STM32Cube-10 | 使用ADC读取气体传感器数据(MQ-2)

news/2024/9/25 7:19:01

本篇详细的记录了如何使用STM32CubeMX配置STM32L431RCT6的ADC外设,读取MQ-2气体传感器的数据并通过串口发送

本质就是ADC采集

MQ-2的原理图如下:

 

生成MDK工程

选择芯片型号

打开STM32CubeMX,打开MCU选择器:

搜索并选中芯片STM32L431RCT6:

配置时钟源

  • 如果选择使用外部高速时钟(HSE),则需要在System Core中配置RCC;
  • 如果使用默认内部时钟(HSI),这一步可以略过;

 

这里我都使用外部时钟:

配置串口

小熊派开发板板载ST-Link并且虚拟了一个串口,原理图如下:

这里我将开关拨到AT-MCU模式,使PC的串口与USART1之间连接。

接下来开始配置USART1

配置ADC

ADC

ADC全称 Analog-to-Digital Converter,即模拟-数字转换器,可以将连续变化的模拟信号转换为离散的数字信号,进而使用数字电路进行处理,称之为数字信号处理。

STM32L431xx 系列有 1 个 ADC,ADC 分辨率高达 12 位,每个 ADC 具有多达 20 个的采集通道,这些通道的 A/D 转换可以单次、连续、扫描或间断模式执行。ADC 的结果可以左对齐或右对齐方式存储在 16 位数据寄存器中。

STM32L431 的 ADC 最大的转换速率为 5.33Mhz,也就是转换时间为 0.188us(12 位分辨率时),ADC 的转换时间与 AHB 总线时钟频率无关。

 

 

配置ADC(单次转换模式)

首先选择ADC1,开启通道3:

接下来是对ADC的设置,这里我们保持默认即可:

最后设置ADC的转换规则:

其余的一些设置保持默认即可。

配置时钟树

STM32L4的最高主频到80M,所以配置PLL,最后使HCLK = 80Mhz即可:

生成工程设置

代码生成设置

最后设置生成独立的初始化文件:

生成代码

点击GENERATE CODE即可生成MDK-V5工程:

3. 在MDK中编写、编译、下载用户代码

重定向printf( )函数

参考:

  • STM32Cube-09 | 重定向printf函数到串口输出的多种方法

编写读取数据的测试代码

修改main函数如下:

代码语言:javascript
复制
int main(void)
{uint16_t smoke_value = 0;HAL_Init();SystemClock_Config();MX_GPIO_Init();MX_ADC1_Init();MX_USART1_UART_Init();while (1){HAL_ADC_Start(&hadc1);                    //启动ADC单次转换HAL_ADC_PollForConversion(&hadc1, 50);    //等待ADC转换完成smoke_value = HAL_ADC_GetValue(&hadc1); //读取ADC转换数据printf("smoke_value = %d\n", smoke_value);HAL_Delay(500);}
}

至此,我们已经学会如何使用ADC读取MQ-2传感器的值

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/30827.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

LCD屏显示图片习题【一】

解题的关键在于 显示图片的双重for循环条件与目标位置的结合,且该程序输入的坐标值为图片左上角像素点坐标目录LCD屏显示图片习题题目解析代码完整展示 LCD屏显示图片习题 题目解析 ​ 该题的显著要求有两个,一是任意位置,二是任意大小。为满足这两个要求得先读取并记录bmp数…

【ubuntu】程序运行时的任务栏图标

1. 快捷方式需要正确的配置StartupWMClass属性,那么如何获取这个属性呢?参考如下命令xprop | grep WM_CLASS将终端程序小窗运行上述命令,鼠标点击哪个应用窗体就会获取哪个窗体的名称,有可能会有多个,多个情况任选其一 2. 将图标复制到 /usr/share/pixmaps/ 中,文心一言的…

Visual Studio中的四款代码格式化工具

前言 今天大姚给大家分享四款Visual Studio中的代码格式化工具、扩展插件。大家可以在Visual Studio中的管理扩展或者插件市场下载安装。 代码格式化工具的作用 自动调整代码的布局和风格,以确保代码具有统一的格式,提高可读性并减少潜在的错误。 Visual Studio中的管理扩展插…

【译】使用 GitHub Copilot 作为你的编码 GPS

GitHub Copilot 是一个改变游戏规则的人工智能助手,可以彻底改变您在 Visual Studio 中的编码流程。GitHub Copilot 是一个改变游戏规则的人工智能助手,可以彻底改变您在 Visual Studio 中的编码流程。在我们的视频系列中,Bruno Capuano 探讨了这个智能编码伙伴如何帮助您更…

[转帖]mkcert

https://github.com/FiloSottile/mkcert mkcert is a simple tool for making locally-trusted development certificates. It requires no configuration.$ mkcert -install Created a new local CA 💥 The local CA is now installed in the system trust store! ⚡️ The …

读人工智能时代与人类未来笔记01_重塑人类社会秩序

读人工智能时代与人类未来笔记01_重塑人类社会秩序1. AlphaZero 1.1. 2017年年底,由谷歌旗下DeepMind公司开发的人工智能程序AlphaZero击败了当时世界上最强大的国际象棋程序Stockfish 1.1.1. AlphaZero对Stockfish的百场战绩是28胜72平0负,可以说获…

[转帖]Nginx(四)虚拟主机

说明: 各个指令块在具体的应用场景再进行说明 一 虚拟主机 一个web服务里面就是一个独立的网站站点,这个站点对应独立的域名或者IP或者端口 特点:具有独立的程序及资源目录,可以独立的对外提供服务供用户访问! +++++++++++++++++++ 分割线 +++++++++++++++++++ 虚拟主机…

大吴雨逝键

。无需多言,