STM32外设ADC的使用(单通道模式读取土壤湿度传感器)(标准库开发)
现象:用沾水的纸巾已经擦过土壤传感器的表面了
ADC单通道的配置,里面有各种注释,这里就不多废话了
主函数:
#include "stm32f10x.h"
#include "oled.h"
#include "ADC.h" uint16_t ADValue=0,V=0;int main()
{OLED_Init();MADC_Init();OLED_ShowString(1,1,"ADValue:");OLED_ShowString(3,1,"V:");while(1){ADValue=ADC_GetValue();V=ADValue/4095.0*3.3*100;OLED_ShowNum(1,9,ADValue,4);OLED_ShowNum(3,3,V/100,1);OLED_ShowString(3,4,".");OLED_ShowNum(3,5,V%100,2);}
}
ADC.c
#include "ADC.h"
#include "Delay.h" // Device headervoid MADC_Init(void)
{GPIO_InitTypeDef GPIO_InitStruct; //定义GPIO初始化结构体变量 ADC_InitTypeDef ADC_InitStruct;//定义ADC初始化结构体变量 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_ADC1,ENABLE);//开启GPIO和ADC的时钟RCC_ADCCLKConfig(RCC_PCLK2_Div6);//设置ADC分频因子时钟,6分频 72M/6=12,ADC最大时间不能超过14MGPIO_InitStruct.GPIO_Pin=GPIO_Pin_6;//ADC通道6GPIO_InitStruct.GPIO_Mode=GPIO_Mode_AIN; //模拟输入GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOA,&GPIO_InitStruct);/* 选择ADC,通道数,规则组(通道放到一组的哪里),转换周期 */
// ADC_RegularChannelConfig(ADC1,ADC_Channel_6,1,ADC_SampleTime_55Cycles5);//选择输入通道ADC_RegularChannelConfig(ADC1,ADC_Channel_7,1,ADC_SampleTime_55Cycles5);ADC_InitStruct.ADC_Mode = ADC_Mode_Independent;//ADC工作模式。独立工作模式ADC_InitStruct.ADC_ScanConvMode = DISABLE; //非扫描模式 ADC_InitStruct.ADC_ContinuousConvMode = DISABLE;//单次转换ADC_InitStruct.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;//不使用外部触发,使用内部软件触发ADC_InitStruct.ADC_DataAlign = ADC_DataAlign_Right;//右对齐 ADC_InitStruct.ADC_NbrOfChannel = 2;//需要扫描的通道数ADC_Init(ADC1, &ADC_InitStruct);//ADC初始化ADC_Cmd(ADC1, ENABLE);//开启AD转换器ADC_ResetCalibration(ADC1);//开始复位校准while(ADC_GetResetCalibrationStatus(ADC1));//获取ADC重置校准寄存器的状态ADC_StartCalibration(ADC1);//开始指定ADC的校准状态while(ADC_GetCalibrationStatus(ADC1));//获取指定ADC的校准状态
}/*******************************************************************************
* 函 数 名 : ADC_GetValue
* 函数功能 : 获取ADC的转换值
*******************************************************************************/
u16 ADC_GetValue()
{ADC_SoftwareStartConvCmd(ADC1, ENABLE);//使能指定的ADC1的软件转换启动功能 while(ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC ) == RESET);//等待转换结束标志位return ADC_GetConversionValue(ADC1);//读取ADC转换函数并返回a
}
ADC.h
#ifndef __ADC_H_
#define __ADC_H_#include "stm32f10x.h" // Device headervoid MADC_Init(void);
u16 ADC_GetValue();#endif
STM32外设ADC的使用(单通道模式读取土壤湿度传感器)(标准库开发)相关推荐
- 了解库开发,我们从STM32标准库开发学起
摘要:从STM32新建工程.编译下载程序出发,让新手由浅入深,尽享STM32标准库开发的乐趣. 自从CubeMX等图像配置软件的出现,同学们往往点几下鼠标就解决了单片机的配置问题.对于追求开发速度的业 ...
- STM32+RS485+Modbus-RTU(主机模式+从机模式)-标准库/HAL库开发
modbus协议 完成modbus协议的编程之后,设备可以分别作为modbus协议的主机或者从机进行测试,使用模拟软件测试完毕后,完整代码以三个版本的形式进行介绍 1.版本一:使用串口接收数据超时完成 ...
- STM32实现六轴姿态测量陀螺仪模块JY61P(标准库与HAL库实现)
本模块支持串口采用串口实现数据采集和处理 设备型号选择 目录 设备型号选择 六轴姿态测量陀螺仪模块简介 产品概述 产品特点 引脚说明 模块UART与MCU连接 应用领域 模块与单片机的接线表设计 标准 ...
- STM32F103标准库开发:Keil5新建STM32工程
STM32标准库版工程模板链接 STM32F103标准库开发-目录 首先需要搭建Keil5编译环境,才可以新建STM32工程. Keil5编译环境搭建流程----STM32和GD32 新建STM32工 ...
- Arduino ESP8266读取土壤湿度传感器 ADC
土壤传感器实物图 它总共有四个引脚: VCC引脚:接电源正极 GND引脚:接电源负极 A0引脚:输出土壤湿度传感器的模拟电压值,输出范围为0-1023 D0引脚:输出土壤湿度传感器的开关量值,值为0, ...
- STM-32:ADC模数转换器—ADC单通道转换/ADC多通道转换
目录 一.ADC 模数转换器 1.1ADC简介 1.2 逐次逼近型ADC工作原理 1.3STM32中的ADC基本结构 1.4STM32中ADC的输入通道 1.5STM32中的ADC的四种转换模式 1. ...
- 使用STM32内部ADC资源读取环境光传感器
目录 前言 一.TEMT6000环境光传感器 二.ADC 1.什么是ADC 2.环境光传感器TEMT6000与ADC的关系 三.单片机选型 四.代码 1.sensor_AD.c 2.sensor_AD ...
- STM32——ADC读取光敏传感器控制LED灯,看门狗中断
本文介绍两种使用方法 一.编写读取AD值的函数,之后判断AD值,进行相应操作,比如点灯. 二.用ADC读取光敏传感器AO口输出,并配置ADC通道看门狗监控这条通道,当光线太暗时打开LED灯. 之后会再 ...
- STM32之ADC模数转换器单通道。
ADC模数转换器 ADC(Analog-Digital Converter)模拟-数字转换器 ADC可以将引脚上连续变化的模拟电压转换为内存中存储的数字变量,建立模拟电路到数字电路的桥梁. 12位逐次 ...
最新文章
- centos --- phpunit 安装过程
- Ubuntu上安装nginx步骤及问题记录
- 平安容器云平台 Padis--传统金融企业的 Docker 实践
- 成功解决:连接sql server时插入数据库内容为乱码,并且输出也为乱码
- springboot基本属性注入
- mysql断电同步不起作用_mysql主从同步因断电产生的不能同步问题
- javascript 事件委派
- 互联网日报 | 7月31日 星期六 | 小米手机销量晋升全球第二;苏宁易购上半年亏损31.9亿元;亚马逊被欧盟罚款8.88亿美元...
- 2014蓝桥杯C++A:猜年龄;扑克序列(全排列)
- Java加密压缩文件
- 小程序图片上传formdata boundary + base64
- mysql 占比函数_MySQL通过分组计算百分比
- 计算机控制面板空白,win7控制面板打开是空白的怎么办-解决控制面板打开之后空白的方法 - 河东软件园...
- 业务流程图有哪些?一篇文章带你了解和绘制业务流程图
- 习题5.4 找出4*5矩阵中值最小和最大元素,并分别输出其值及所在的行号和列号。
- es 精确查找思路以及实现过程
- FPGA学习日志——分频与降频divider
- vmware安装openEuler+基本环境部署
- 机器学习分类模型评价指标之ROC 曲线、 ROC 的 AUC 、 ROI 和 KS
- dbeaver的安装和使用