读取24位ad的值_实践案例丨利用小熊派开发板获取土壤湿度传感器的ADC值

摘要:一文带你用小熊派开发板动手做土壤湿度传感器。

一、实验准备

1.实验环境

  • 一块stm32开发板(推荐使用小熊派),以及数据线
  • 已经安装STM32CubeMX
  • 已经安装KeilMDK,并导入stm32开发板对应的芯片包(小熊派使用的是STM32L431RCT6)
  • 准备一个串口调试助手,我使用的是UartAssist(包含在附件中)
  • 一个土壤湿度传感器模块

71da55b2d2551e24eb82941772b07584.png

2.目标效果

  • 通过CubeMX创建工程并配置参数
  • 获取stm32以硬件IIC获取SHT20传感器值(通过SHT20数据手册转化)
  • 串口1重定向输出土壤湿度值

二、通过CubeMX生产MDK工程

A.芯片选择

打开CubeMX,进入芯片选择:

aeea4d401b578d89b2974bc4df478501.png

选择自己的stm32芯片(即STM32L431RCT6):

37780ae37a7b51d3578bc19cbb737df4.png

B.时钟源RCC设置

更改系统时钟源

系统时钟默认使用内部的高速时钟(HSI),选择使用HSE,时钟更精确

设置外部时钟对应的端口

03d4b718e18887a1a1b119a49bf6f485.png

配置时钟树

STM32L431RCT6系统时钟最大可以为80MHz,我们配置到最大即可

a3b0ed29dccae4675a188d8dccec4ffc.png

C.参数配置(对应端口设置)

1)配置USART1

使用USART,模式为异步,波特率为115200,无硬件流控制

6346ac7e4a77bb029bc315179327e739.png

2)配置ADC通道

知识补充:ADC,模拟-数字转换器,可以将连续变化的模拟信号转化为离散的数字信号。其中,小熊派的ADC1的通道三已经被引出,即PC2

打开ADC1通道3

5932b7d074fa879b63b755e3cd7427fb.png

​---
3)配置adc

我们保持默认即可:

649e630d8bbe179547a3d504df3e3878.png

D.工程设置

一些基础的设置,包括工程名、存储位置、工程环境、工程中各个文件的组成

53ed36bbd849dcad3c5ee5ce2d74e27f.png

99219bcf3b7b2b34c915e9ea2dde0ba7.png

E.生成代码

d88bff52be0d4fcc79c9f02c81db5f85.png

三、代码补充

1. 串口1输出重定向

我们知道printf是打印函数,原理是根据传入的字符串参数格式化打印输出到stdout中。我们需要让printf打印到串口之中,只需要在usart.c文件中模仿printf写一个输出函数即可

  • 在添加头文件
/* USER CODE BEGIN 0 */#include <stdarg.h>#include <string.h>#include <stdio.h>/* USER CODE END 0 */
  • 写输出函数
/* USER CODE BEGIN 1 */void UsartPrintf(UART_HandleTypeDef *huart, char *fmt,...){unsigned char UsartPrintfBuf[296];va_list ap;unsigned char *pStr = UsartPrintfBuf;va_start(ap, fmt);vsprintf((char *)UsartPrintfBuf, fmt, ap);    //格式化va_end(ap);while(*pStr != 0){USART1->TDR = *pStr++;while((USART1->ISR & 0x40)  == 0);}}//使用方法:UsartPrintf(&huart1,"hello worldrn");/* USER CODE END 1 */

注意:自己添加的代码,需要在begin和end之间

2. 读取传感器ADC值

我们获取传感器adc的值,通过在实验室多次测量不同土壤湿度的ADC值,来表示土壤湿润程度

主函数代码

 while (1){/* USER CODE END WHILE *//* USER CODE BEGIN 3 */HAL_ADC_Start(&hadc1); //开启ADC1HAL_ADC_PollForConversion(&hadc1,50); //等待ADC转化完成for(num=0;num<20;num++){AD_Value += HAL_ADC_GetValue(&hadc1);}AD_Value = AD_Value/20;  //ADC转换的数据20次的平均值UsartPrintf(&huart1,"ADC20次获取的平均值值为:%drn",AD_Value);Temperature = ((int16_t)(AD_Value-*TEMP30_CAL_ADDR)*1.0/(int16_t)(*TEMP130_CAL_ADDR-*TEMP30_CAL_ADDR))+30;UsartPrintf(&huart1,"Temperature is %.2f °rn",Temperature); ////UsartPrintf(&huart1,"%drn",*TEMP130_CAL_ADDR);//UsartPrintf(&huart1,"%drn",*TEMP30_CAL_ADDR);}

代码很简单,但是如果我们需要获取更精确的值,可以加入各种滤波算法。然后根据实验值,判断土壤湿润程度。

我通过实验发现,在空气中获取的值为1300左右,包上湿润的餐巾纸后,值为两位数以下。因此我们可以粗略判断,土壤越湿度,值越小;相反,土壤越干,值越大。

四、编译+下载

点击编译后,0 error,0 warning

eda7fd3d731f0cbd0785c74006d3377d.png

小熊派连接在电脑上,代码下载到开发板

2cb1853e255eab9b749776785ecf6b99.png

64654b64b41af25d48e33a45efdafac8.png

五、效果

1.将小熊派串口1和电脑相连,即拨到 AT-MUC,按下复位键

6f28a9999f6a4d1ce401079fb3cf8326.png

2.打开串口调试助手

连接端口,设置波特率为115200

1c7a8584a73117293e63330a09857e4f.png

可以看到,在空气中获取的值为1200-1300;此时,我们不仅掌握了ADC的使用,还掌握了土壤湿度传感器的使用

附件中包含本文工程文件(cubemx + keilMDK)

附件:BearPiToSoil.zip

点击关注,第一时间了解华为云新鲜技术~

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mac 爱普生打印机驱动_高效打印企业首选 爱普生M2178黑白多功能一体机评测

提到打印机相信每一个公司都配备了一台&#xff0c;因为它是日常办公中不可缺少。尽管现在很多的工作流程都已经可以在线上执行&#xff0c;且提倡无纸化办公&#xff0c;但很多重要的材料还是需要打印出来存档、签字。因此打印机还是一个非常必要的配置。对于一个企业来讲&…

php ajax 加载列表,Ajax点击不断加载数据列表(图文教程)

这篇文章主要介绍了Ajax点击不断加载数据列表的相关资料,需要的朋友可以参考下Ajax简介AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML)&#xff0c;是指一种创建交互式网页应用的网页开发技术。AJAX 异步 JavaScript和XML(标准通用标记语言的子集)。AJAX 是…

linux版_微软爱 Linux:安全杀毒软件 Defender ATP 要出 Linux 版了! | Linux 中国

微软宣布将于 2020 年将其企业安全产品 Defender 高级威胁防护(ATP)引入 Linux。-- Abhishek Prakash微软的年度开发者大会 Microsoft Ignite 刚刚结束&#xff0c;会上发布了一些与 Linux 有关的重要公告。你可能已经知道微软将 Edge Web 浏览器引入 Linux&#xff0c;而下一个…

msp430中如何连续对位进行取反_四元数数控:如何保养视觉对位平台?

视觉对位平台由于人工衍生出来的各种问题应运而生,诸如高度要求的良率,生产速度的大幅提升,人员无法达成的精准度等等,对于未来这种高度自动化程度的产业更是不可或缺的产品。视觉对位平台就是一种利用XY向的移动单元加上θ角的微量转向,达到两个工作物体的组合。而且对位平台是…

ic启动器怎么导入模组_5G手机主板专题报告:高阶产能紧俏,5G手机主板升级蛋糕怎么分...

(获取报告请登陆未来智库www.vzkoo.com)一、智能机进入 5G 时代&#xff0c;主板方案望迎阶数跃迁5G 手机主板需求升级或将带来行业高端产能供给偏紧&#xff0c;A 股高端 HDI 供应商望受益。 当前时点手机各个维度的创新升级都对主板技术路线产生影响&#xff0c;芯片 I/O 数增…

element tree不刷新视图_Vue项目布署后,刷新页面404的真正原因找到了

从一篇日记说起我是一个小前端&#xff0c;我有写日记的习惯2020年10月17 天气 晴今天天气不错&#xff0c;心情也跟着好起来了辛辛苦苦加班两个星期终于完成了产品需求&#xff0c;到了要上线的时候了&#xff0c;嘴里也不知不觉哼起了“劳资今晚不加班”的小曲一顿操作猛如虎…

编程加速服务器_FPGA加速驱动新时代的数据洪流,下篇

目 录人工智能计算加速器产品系列的相关布局FPGA开发的痛点与潜在方案结语在《FPGA加速驱动新时代的数据洪流&#xff0c;上篇》中&#xff0c;老石介绍了英特尔应对大数据时代的整体战略布局&#xff0c;特别是基于FPGA的各类智能网卡和网络解决方案。在本篇中&#xff0c;老石…

respond with a status of 40_高中英语作文高分秘籍!50组高级替换词+40个高级句型+88个高级词组,还不快记下!...

很多同学都发现&#xff0c;高中阶段对于写作的考查要求更高&#xff0c;一篇没有错误但平淡无奇的文章是拿不到高分的&#xff0c;保证正确性的前提下&#xff0c;写作必须要有出彩之处才能得到阅卷老师的青睐&#xff0c;今天就为大家分享高中写作50组高级替换词40个高级句型…

iphone分屏功能怎么用_iPhone上10个隐藏小技巧,怎么用怎么爽

离上一期iPhone技巧已经过了四个多月时间了&#xff0c;不少朋友在后台一直催小雷赶紧出下一期。为了不让你等太久&#xff0c;所以今天小雷就奉上新的一期(也是防止你们等得不耐烦了以至于想捶我)。这期干货实在太多&#xff0c;如果其中有一些你们之前get过的话&#xff0c;就…

太阳能板如何串联_太阳能光伏系统单晶和多晶模组的差异?农村家庭自用如何科学选择...

太阳能光伏想必大家都耳熟能详&#xff0c;因其环保且属于可再生能源&#xff0c;目前在农村很多居民屋顶都已经铺设了光伏发电系统&#xff0c;即节省了电费开支又能并入国家电网&#xff0c;所以近些年来我国的光伏产业得到了很好的发展&#xff0c;是目前发展最快的清洁能源…

数据查询和业务流分开_TiDB HTAP 助力小红书业务升级

作者介绍&#xff1a;张亿皓&#xff0c;小红书基础技术部资深开发工程师&#xff0c;负责数据库相关的研发和落地工作。TiDB 在小红书业务场景的应用简介2017 年&#xff0c;小红书已经开始在生产业务中使用 TiDB &#xff0c;真正成体系的去做 TiDB 的落地是在 2018 年&#…

php server自定义函数,php:SQL Server用户自定义的函数种类详解

关于SQL Server用户自定义的函数&#xff0c;有标量函数、表值函数(内联表值函数、多语句表值函数)两种。题外话&#xff0c;可能有部分朋友不知道SQL Serve用户自定义的函数应该是写在哪里&#xff0c;这里简单提示一下&#xff0c;在Microsoft SQL Server Managerment Studio…

vlan为什么能隔离广播域_路由交换技术-VLAN原理及配置

VLAN原理及配置1. 背景网络中计算机的数量越来越多&#xff0c;传统的以太网开到面临冲突严重&#xff0c;广播泛滥及安全性无法保障等问题VLAN(virtual local area network)即虚拟局域网&#xff0c;是将一个物理的局域网在逻辑上划分为多个广播域的技术&#xff0c;通过在交换…

刀片 显卡 排行_AMD发布RadeonRX6000系列游戏显卡 4599元起

10月30日消息&#xff0c;据国外媒体报道&#xff0c;AMD日前发布了Radeon RX 6000系列游戏显卡&#xff0c;该系列显卡包括AMD Radeon(镭龙) RX 6800显卡和RX 6800 XT显卡&#xff0c;以及新旗舰RX 6900 XT显卡。AMD Radeon RX 6000系列显卡(图片来自AMD官网)AMD Radeon RX 68…

等保2.0安全管理制度对比_一手资料!等保2.0云计算安全与风险评估

一、等保2.0对云计算发展提出“新要求”与等保1.0的标准体系相比&#xff0c;等保2.0在适用性、时效性、易用性、可操作性上得到进一步扩充和完善&#xff0c;以适应云计算、物联网、工业控制系统等新技术的发展。如下表给出了等保2.0发生的重要变化。针对等保2.0标准提出的新要…

mt4 指标 涨跌幅 颜色k线_通达信精选指标——彩色K线指标

通达信精选指标——彩色K线指标VAR1:LLV(L,10); VAR2:HHV(H,25); 趋势:EMA((C-VAR1)/(VAR2-VAR1),10); AA:趋势>REF(趋势,1); BB:趋势<REF(趋势,1); 买入:DRAWICON(CROSS(AA,BB),L-0.1,23); 卖出:DRAWICON(CROSS(BB,AA),H0.1,15); {红} STICKLINE(AA,C,OPEN,3.5,0),COLOR…

matlab如何建立时间温度曲线,matlab如何绘时间曲线?

2007-02-12针对春夏秋冬四季的气候特点&#xff0c;应该如何进补四季的饮食宜忌中国古代医学家在漫长的生活实践中&#xff0c;逐步体会到人与自然界存在着非常密切的关系。自然界一年四季的变化&#xff0c;直接影响着人体的生理功能和病理变化&#xff0c;这就是“天人相应”…

erp系统原理和实施第五版pdf_【图片】生产制造企业ERP系统选型及实施“避坑”指南!【企业管理软件吧】...

随着企业经营环境的变化、信息技术的不断发展&#xff0c;基于ERP系统的信息化管理模式必将朝着更加科学化、集成化、智能化、网络化的方向发展。实施ERP是一场“变革”&#xff0c;那也就必然存在着失败的可能。对于众多制造企业而言&#xff0c;在ERP系统应用方面需要进一步加…

检测电脑硬件的软件_【软件分享】PowerDVD | PotPlayer | AIDA64

PowerDVD软件介绍&#xff1a;PowerDVD是一款知名的蓝光影音播放软件&#xff0c;支持8K超清、4K蓝光与HDR影像及VR360影片播放。全方位支持播放多种热门影音格式&#xff0c;包括影片、光碟、ISO 档案以及相片&#xff0c;无论是在 PC 或 TV 设备播放都没问题。搭载独家TrueTh…

sqlserver如何从周一计算周_纯零基础,花10周时间,完全搞定Python,有没有可能?...

最简单适合小白练手的 10 个Python小项目&#xff0c;十天就能搞定Python。今天我推荐大家一本书&#xff1a;《面向零基础的Python小项目》&#xff0c;如果你集中精力&#xff0c;花10周&#xff0c;也就是两个半月时间&#xff0c;搞定Python&#xff0c;真的不再是一句空谈…