资源简介
STM31F103 例程 包括 基本功能 温湿度传感器AM2302驱动例程 作为用户开发温湿度传感器的参考
软件开发工具 KEIL4
软件开发工具 KEIL4
代码片段和文件信息
//================================================================================
//STM32F103 多功能通讯控制演示模块
//================================================================================
//am2302_S.C/H AM2302温湿度传感器驱动库函数 BY SAGAHDS 20170807 20170823 20180410
//================================================================================
#include “stm32f10x.h“
#include “am2302_S.h“
#include “tim_S.h“
#include “usart_S.h“
#include “pio_S.h“
//================================================================================
//BY SAGAHDS 20180410
unsigned int AM_TIMER; //定时器读取AM2302用的定时为3000毫秒
//BY SAGAHDS 20170823 20180410
unsigned char AM_BUFF01[33]; //从机温湿度数据缓存
unsigned int AM_Humi_S; //Humidity; //湿度
unsigned int AM_Temp_S; //Temperature; //温度
unsigned char AM_FLAG; //AM2302开关信号
#define AM_FLAG_ENABLE 0x01 //置1安装了AM2302
//================================================================================
u8 U8FLAG=0U8temp=0;
u8 U8T_data_H=0U8T_data_L=0U8RH_data_H=0U8RH_data_L=0U8checkdata=0;
u8 U8T_data_H_temp=0U8T_data_L_temp=0U8RH_data_H_temp=0U8RH_data_L_temp=0U8checkdata_temp=0;
u8 U8comdata=0;
int humi=0temper=0; //湿度和温度暂存数据
//================================================================================
//BY SAGAHDS 20170823
void AM2302_Configuration(unsigned char Enable)
{
GPIO_InitTypeDef GPIO_InitStructure;
if(!Enable)
{
AM_FLAG = 0;
USART_Put_String(“AM2302 No Installation.\r\n“);
return;
}
AM_FLAG |= AM_FLAG_ENABLE;
AM_TIMER = 0;
RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOB ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD; //设置管脚为模式初始化为输出开漏
GPIO_Init(GPIOB &GPIO_InitStructure);
AM_BUFF01[16]=‘0‘;
AM_BUFF01[17]=‘0‘;
AM_BUFF01[19]=‘0‘;
AM_BUFF01[24]=‘0‘;
AM_BUFF01[25]=‘0‘;
AM_BUFF01[27]=‘0‘;
USART_Put_String(“AM2302 Installation.\r\n“);
}
void COM(void) //从AM2302中读取一个字节
{
u8 i;
for(i=0;i<8;i++)
{
U8FLAG=2;
while((!(DAT_R))&&U8FLAG++);
if(U8FLAG==1)break;
//TIM_Delay_us_S(30);
Delay_us_S(30);
U8temp=0;
if(DAT_R)U8temp=1;
U8FLAG=2;
while((DAT_R)&&U8FLAG++);
//超时则跳出for循环
if(U8FLAG==1)break;
//判断数据位是0还是1
// 如果高电平高过预定0高电平值则数据位为 1
U8comdata<<=1;
U8comdata|=U8temp; //0
}
}
//--------------------------------
//-----湿度读取子程序 ------------
//--------------------------------
//----以下变量均为全局变量--------
//----温度高8位== U8T_data_H------
//----温度低8位== U8T_data_L------
//----湿度高8位== U8RH_data_H-----
//----湿度低8位== U8RH_data_L-----
//----校验 8位 == U8checkdata-----
//--------------------------------
void RH(void)
{
//主机拉低18ms
DAT_L;
//TIM_Delay_us_S(18000);
Delay_us_S(18000);
DAT_H;
//总线由上拉电阻拉高 主机延时20us
//TIM_Delay_us_S(30);
Delay_us_S(30);
//
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 26180 2018-11-30 15:21 Sagahds_20181210_STM32_AM2302_V0.1\cortexm3_macro.lst
文件 5942 2018-11-01 09:31 Sagahds_20181210_STM32_AM2302_V0.1\device\am2302_S.c
文件 1575 2018-11-01 09:34 Sagahds_20181210_STM32_AM2302_V0.1\device\am2302_S.h
文件 51343 2018-12-10 15:11 Sagahds_20181210_STM32_AM2302_V0.1\output\Sagahds.hex
文件 107769 2018-12-10 15:11 Sagahds_20181210_STM32_AM2302_V0.1\Sagahds.map
文件 51744 2018-07-31 17:59 Sagahds_20181210_STM32_AM2302_V0.1\Sagahds.plg
文件 479 2018-07-31 17:53 Sagahds_20181210_STM32_AM2302_V0.1\Sagahds.sct
....... 71798 2018-12-10 15:14 Sagahds_20181210_STM32_AM2302_V0.1\Sagahds.uvgui.Administrator
文件 71194 2018-12-03 13:51 Sagahds_20181210_STM32_AM2302_V0.1\Sagahds.uvguix.Administrator
....... 71790 2018-12-10 15:10 Sagahds_20181210_STM32_AM2302_V0.1\Sagahds.uvgui_Administrator.bak
....... 21339 2018-12-10 15:14 Sagahds_20181210_STM32_AM2302_V0.1\Sagahds.uvopt
文件 21881 2018-12-03 13:51 Sagahds_20181210_STM32_AM2302_V0.1\Sagahds.uvoptx
....... 21328 2018-12-10 15:03 Sagahds_20181210_STM32_AM2302_V0.1\Sagahds.uvproj
文件 22004 2018-12-03 13:48 Sagahds_20181210_STM32_AM2302_V0.1\Sagahds.uvproj.saved_uv4
文件 67955 2018-12-10 15:11 Sagahds_20181210_STM32_AM2302_V0.1\Sagahds_Target 1.dep
....... 21338 2018-12-10 15:10 Sagahds_20181210_STM32_AM2302_V0.1\Sagahds_uvopt.bak
....... 26700 2018-12-05 17:19 Sagahds_20181210_STM32_AM2302_V0.1\Sagahds_uvproj.bak
文件 40529 2018-12-10 15:11 Sagahds_20181210_STM32_AM2302_V0.1\startup_stm32f10x_md.lst
文件 12895 2017-05-12 23:41 Sagahds_20181210_STM32_AM2302_V0.1\startup_stm32f10x_md.s
文件 7181 2012-03-19 17:29 Sagahds_20181210_STM32_AM2302_V0.1\stm32f10x\misc.c
文件 9117 2012-03-19 17:29 Sagahds_20181210_STM32_AM2302_V0.1\stm32f10x\misc.h
文件 47336 2012-03-19 17:29 Sagahds_20181210_STM32_AM2302_V0.1\stm32f10x\stm32f10x_adc.c
文件 21825 2012-03-19 17:29 Sagahds_20181210_STM32_AM2302_V0.1\stm32f10x\stm32f10x_adc.h
文件 8598 2012-03-19 17:29 Sagahds_20181210_STM32_AM2302_V0.1\stm32f10x\stm32f10x_bkp.c
文件 7690 2012-03-19 17:29 Sagahds_20181210_STM32_AM2302_V0.1\stm32f10x\stm32f10x_bkp.h
文件 45238 2012-03-19 17:29 Sagahds_20181210_STM32_AM2302_V0.1\stm32f10x\stm32f10x_can.c
文件 27694 2012-03-19 17:29 Sagahds_20181210_STM32_AM2302_V0.1\stm32f10x\stm32f10x_can.h
文件 11791 2012-03-19 17:29 Sagahds_20181210_STM32_AM2302_V0.1\stm32f10x\stm32f10x_cec.c
文件 6708 2012-03-19 17:29 Sagahds_20181210_STM32_AM2302_V0.1\stm32f10x\stm32f10x_cec.h
文件 3482 2012-03-19 17:29 Sagahds_20181210_STM32_AM2302_V0.1\stm32f10x\stm32f10x_crc.c
............此处省略66个文件信息
相关资源
- STM32F103 NRF24L01无线通讯模块驱动例程
- DHT11与STM32F103ZET6
- stm32f103的PCF8563驱动代码
- STM32并口、串口驱动12864
- STM32F1+PS2+Serial+PWM (KEIL5)
- STM32f103zet6.Schlib 器件原理图 封装 Al
- 基于stm32的血压算法
- STM32F103串口DMA接收
- STM32 DMA中断模式下ADC多通道数据采集
- 通过PID算法控制STM32的PWM输出
- 1602液晶可靠的4位数据线方式驱动_基
- 嵌入式平台 STM32 libqrencode 移植二维码
- STM32Pack支持包
- 战舰stm32蓝牙开发代码
- 基于STM32的VL53L0X程序源码
- STM32F103C8T6核心板之配套程序源码 -
- TensorFlow安装错误解决:ImportError: DL
- 基于SVM电力系统短期负荷预测的其中
- C8051F35X例程
- 4*4矩阵键盘(方法2) STM32F103
- stm32f105双CAN协议盒PCB板适用于车载
- STM32_DS1302
- STM32HAL库使用NTC热敏电阻读取温度代码
- 实验5 外部中断实验.zip
- DSP 2808 I2C 例程
- stm32f103+Vs1003b例程
- AD Altium Designer STM8 STM32 库
- STM32 两轮平衡车 程序 获取姿态传感器
- STM32F103使用定时器的捕获方式测量车
- STM32F407 步进电机含角度输出Keil代码
评论
共有 条评论