-
大小: 5.57MB文件类型: .rar金币: 1下载: 0 次发布日期: 2023-09-17
- 语言: 其他
- 标签: stm32f103c8t 甲醛 pm2.5 温湿度
资源简介
一个完整的KEIL5项目包,核心是stm32f103c8t6,通信模块是lora,采集有温湿度、甲醛、pm2.5,气压,海拔,可以直接下载,连线在代码中有说明,可以直接用。如果有意见可以向我提出,相互学习,共同进步。
代码片段和文件信息
#include “adc.h“
#include “delay.h“
#include “usart.h“
//初始化ADC
//这里我们仅以规则通道为例
//我们默认将开启通道0~3
void Adc_Init(void)
{
ADC_InitTypeDef ADC_InitStructure;
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA |RCC_APB2Periph_ADC1 ENABLE ); //使能ADC1通道时钟
RCC_ADCCLKConfig(RCC_PCLK2_Div6); //设置ADC分频因子6 72M/6=12ADC最大时间不能超过14M
//PA0 作为模拟通道输入引脚
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN; //模拟输入引脚
GPIO_Init(GPIOA &GPIO_InitStructure);
//PB1 作为脉冲输出引脚
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOB &GPIO_InitStructure);
GP2Y_High;
ADC_DeInit(ADC1); //复位ADC1将外设 ADC1 的全部寄存器重设为缺省值
ADC_InitStructure.ADC_Mode = ADC_Mode_Independent; //ADC工作模式:ADC1和ADC2工作在独立模式
ADC_InitStructure.ADC_ScanConvMode = DISABLE; //模数转换工作在单通道模式
ADC_InitStructure.ADC_ContinuousConvMode = DISABLE; //模数转换工作在单次转换模式
ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None; //转换由软件而不是外部触发启动
ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right; //ADC数据右对齐
ADC_InitStructure.ADC_NbrOfChannel = 1; //顺序进行规则转换的ADC通道的数目
ADC_Init(ADC1 &ADC_InitStructure); //根据ADC_InitStruct中指定的参数初始化外设ADCx的寄存器
ADC_Cmd(ADC1 ENABLE); //使能指定的ADC1
ADC_ResetCalibration(ADC1); //使能复位校准
while(ADC_GetResetCalibrationStatus(ADC1)); //等待复位校准结束
ADC_StartCalibration(ADC1); //开启AD校准
while(ADC_GetCalibrationStatus(ADC1)); //等待校准结束
// ADC_SoftwareStartConvCmd(ADC1 ENABLE); //使能指定的ADC1的软件转换启动功能
}
//获得ADC值
//ch:通道值 0~3
u16 Get_Adc(u8 ch)
{
//设置指定ADC的规则组通道,一个序列,采样时间
ADC_RegularChannelConfig(ADC1 ch 0 ADC_SampleTime_239Cycles5 ); //ADC1ADC通道采样时间为239.5周期
ADC_SoftwareStartConvCmd(ADC1 ENABLE); //使能指定的ADC1的软件转换启动功能
while(!ADC_GetFlagStatus(ADC1 ADC_FLAG_EOC ));//等待转换结束
return ADC_GetConversionValue(ADC1); //返回最近一次ADC1规则组的转换结果
}
float GetGP2Y(void)
{
u32 AD_PM;
double pm;
GP2Y_Low;
delay_us(280);
AD_PM = Get_Adc(ADC_Channel_0); //PA0
delay_us(40);
GP2Y_High;
delay_us(9680);
pm = 0.17*AD_PM-0.1; //转换公式
// printf(“%f\n“pm);
return pm;
}
u16 Get_GP2Y_Average(u8 times)
{
u32 pm_val=0;
u8 t;
for(t=0;t {
pm_val+=GetGP2Y();
delay_ms(5);
}
return pm_val/times;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2893 2018-10-04 00:34 空气节点V1.1\BSP\adc.c
文件 273 2018-10-03 23:38 空气节点V1.1\BSP\adc.h
文件 3038 2018-12-17 17:22 空气节点V1.1\BSP\adc_dma.c
文件 1832 2018-12-17 17:22 空气节点V1.1\BSP\adc_dma.h
文件 3552 2017-09-08 08:06 空气节点V1.1\BSP\BMP180.c
文件 768 2017-09-07 18:41 空气节点V1.1\BSP\BMP180.h
文件 7930 2015-05-19 13:20 空气节点V1.1\BSP\delay.c
文件 1991 2015-05-19 13:20 空气节点V1.1\BSP\delay.h
文件 1874 2018-10-03 22:43 空气节点V1.1\BSP\dht11.c
文件 619 2018-10-03 22:43 空气节点V1.1\BSP\dht11.h
文件 1180 2013-10-09 00:16 空气节点V1.1\BSP\led.c
文件 572 2013-10-09 00:16 空气节点V1.1\BSP\led.h
文件 3070 2017-09-07 19:25 空气节点V1.1\BSP\myiic.c
文件 1354 2015-04-29 11:46 空气节点V1.1\BSP\myiic.h
文件 14618 2017-03-22 15:56 空气节点V1.1\BSP\RTC_Time.c
文件 1750 2010-11-01 12:39 空气节点V1.1\BSP\RTC_Time.h
文件 876 2015-03-12 20:20 空气节点V1.1\BSP\sys.c
文件 2781 2018-12-28 16:08 空气节点V1.1\BSP\sys.h
文件 3903 2018-10-03 22:29 空气节点V1.1\BSP\usart.c
文件 238 2013-09-14 00:32 空气节点V1.1\BSP\usart.h
文件 1354 2013-09-14 00:32 空气节点V1.1\config\stm32f10x_flash.icf
文件 1422 2013-09-14 00:32 空气节点V1.1\config\stm32f10x_flash_extsram.icf
文件 1355 2013-09-14 00:32 空气节点V1.1\config\stm32f10x_nor.icf
文件 1354 2013-09-14 00:32 空气节点V1.1\config\stm32f10x_ram.icf
文件 245 2013-10-09 00:33 空气节点V1.1\doc\readme.txt
文件 17273 2013-09-14 00:32 空气节点V1.1\Libraries\CMSIS\CM3\CoreSupport\core_cm3.c
文件 85714 2013-09-14 00:32 空气节点V1.1\Libraries\CMSIS\CM3\CoreSupport\core_cm3.h
文件 26297 2015-04-03 10:52 空气节点V1.1\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\Release_Notes.html
文件 15766 2013-09-14 00:32 空气节点V1.1\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm\startup_stm32f10x_cl.s
文件 15503 2013-09-14 00:32 空气节点V1.1\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm\startup_stm32f10x_hd.s
............此处省略243个文件信息
- 上一篇:机器学习—吴恩达中文版pdf
- 下一篇:易通电脑锁 v7.8.3.6727.zip
相关资源
- STM32F103C8T6电路原理图及PCB图
- STM32F103C8T6下位机PCB设计-基于惯性测量
- 基于STM32F103C8T6的电机控制程序
- STM32F103C8T6外部中断.rar
- STM32F103C8T6每隔20s驱动DS18B20测温_OLED
- STM32F103C8T6 NRF24L01 无线收发程序
- 基于stm32f103c8t6温湿度显示屏.rar
- STM32F103C8T6 stm32CubeMx HAL程序
- STM32F103C8T6开发板原理图&源程序&资料
- STM32F103C8T6串口打印
- STM32F103c8t6核心板资料很全的就能用
- STM32F103C8T6控制86步进电机
- STM32F103C8T6定时器TIM4双通道PWM输出
- stm32f103c8t6最小系统版PWM程序
- stm32f103c8t6的四轮小车驱动,内部含有
- 这是用stm32F103C8T6操作oled的程序
- STM32F103C8T6+OLED+BS18B20温度显示
- STM32F103C8T6-LED例程
- STM32F103C8T6定时器秒表TM1650显示.rar
- 基于MQ135+STM32的环境空气质量检测
- stm32f103c8t6原理图及PCB
- stm32f103c8t6工程模板
- 基于 STM32F103C8T6 的测心跳血氧例程
- stm32f103c8t6最小系统板驱动MPU6050模块
- stm32f103C8T6 MCP3204程序代码
- STM32F103C8T6 IAP-串口在线升级
- 基于STM32F103C8T6的NRF24L01无线通讯模块
- stm32f103c8t6模数转换AD例程
- STM32F103C8T6库函数工程
- 基于单片机的空气质量检测系统设计
评论
共有 条评论