当前位置:首页 > 单片机 > 单片机
[导读]最近用到的温湿度传感器,AM2305驱动,单总线,上电后至少要延时2S才能读取温湿度,温度精度很高,跟DS18B20一样,数据带校验,不会出现DS18B20那样,并且时序要求不高/***************************************************

最近用到的温湿度传感器,AM2305驱动,单总线,上电后至少要延时2S才能读取温湿度,温度精度很高,跟DS18B20一样,数据带校验,不会出现DS18B20那样,并且时序要求不高


/*************************************************************************************************************

*文件名:AM2305.c

*功能:STM32AM2305高精度温湿度传感器驱动

*作者:cp1300@139.com

*创建时间:2014-09-20

*最后修改时间:2014-09-20

*详细:需要延时函数支持

*注意延时精度尽可能的高

*读取的时候不要长时间的被中断,因为1wire对时间要求很严格

*************************************************************************************************************/

#include"system.h"

#include"delay.h"

#include"AM2305.h"

//DS18B20使用的是GPIOE0

#defineAM2305_CLK_INIT()DeviceClockEnable(AM2305_DEV,ENABLE);//时钟使能

#defineAM2305_IO_OUT()GPIOx_Init(AM2305_GPIOx,AM2305_BITx,OUT_PP,SPEED_10M);//设置AM2305IO为输出,

#defineAM2305_IO_IN()GPIOx_Init(AM2305_GPIOx,AM2305_BITx,IN_IPU,0);//设置AM2305IO为上拉输入,

#defineAM2305_DQ_IN()((AM2305_IN)?1:0)//读取AM2305IO

#defineAM2305_DQ_OUT(x)(AM2305_OUT=x)//写AM2305IO

#defineAM2305_IODown()GPIOx_Init(AM2305_GPIOx,AM2305_BITx,IN_IPT,0);//掉电,下拉输入

//精确us延时

#defineAM2305_Delay_US(x)delay_us(x)

//AM2305掉电

voidAM2305_PowerDown(void)

{

AM2305_IODown();

}

/*************************************************************************************************************************

*函数:voidAM2305_Reset(void)

*功能:AM2305复位

*参数:无

*返回:无

*依赖:底层宏定义

*作者:cp1300@139.com

*时间:2014-09-20

*最后修改时间:2014-09-20

*说明:无

*************************************************************************************************************************/

voidAM2305_Reset(void)

{

AM2305_IO_OUT();//SETOUTPUT

AM2305_DQ_OUT(0);//拉低DQ

AM2305_Delay_US(1000);//拉低至少800uS

AM2305_DQ_OUT(1);//DQ=1

AM2305_Delay_US(30);//主机拉高20~40us

}

/*************************************************************************************************************************

*函数:boolAM2305_Check(void)

*功能:等待AM2305的回应

*参数:无

*返回:FALSE:检测失败;TRUE:检测成功

*依赖:底层宏定义

*作者:cp1300@139.com

*时间:2014-09-20

*最后修改时间:2014-09-20

*说明:检测AM2305的存在

*************************************************************************************************************************/

boolAM2305_Check(void)

{

u32retry=0;

AM2305_IO_IN();//SETINPUT

while(AM2305_DQ_IN()&&retry<100)//AM2305会拉低75~85us

{

retry++;

AM2305_Delay_US(1);

}

if(retry>=100)

{

uart_printf("AM2305:retry1:%drn",retry);

returnFALSE;

}

retry=0;

while(!AM2305_DQ_IN()&&retry<100)//AM2305拉低后会再次拉高75~85us

{

retry++;

AM2305_Delay_US(1);

}

if(retry>=100)

{

uart_printf("AM2305:retry2:%drn",retry);

returnFALSE;

}

returnTRUE;

}

/*************************************************************************************************************************

*函数:u8AM2305_ReadBit(void)

*功能:读取AM23051bit数据

*参数:无

*返回:数据

*依赖:底层宏定义

*作者:cp1300@139.com

*时间:2014-09-20

*最后修改时间:2014-09-20

*说明:

*************************************************************************************************************************/

u8AM2305_ReadBit(void)

{

u8retry=0;

while(AM2305_DQ_IN()&&retry<80)//等待变为低电平

{

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

智能合灯控制系统由环境光照检测、人体接近检测、语音识别、按键控制、合灯控制、数据显示、蓝牙通信、报警提示功能模块组成。

关键字: STM32 智能台灯

捡球机的移动装置以直流电机驱动,寻球装置以摄像头图像传感器模块构成,并搭配以图像检测算法。避障装置以红外检测和报警模块为主,以防在行动过程中触碰障碍物。

关键字: STM32 捡球机

ST于近期发布了“STM32WBA”无线MCU、“STM32U0”超低功耗入门级MCU、“STM32H7R/S”高性能MCU和“STM32MP2”四大重磅新品,还透露将会在今年推出18nm的STM32新品。

关键字: STM32 MCU NPU AI 超低功耗

上海2024年5月8日 /美通社/ -- 近年来,随着国家医疗政策改革的红利释放以及企业在研发投入方面不断加码,中国医疗器械产业步入黄金发展期,国内医疗器械企业攻坚关键核心技术,在高端领域不断突破,"出海&qu...

关键字: 显微镜 光学 高精度 质量检测

在微控制器领域,MSP430与STM32无疑是两颗璀璨的明星。它们各自凭借其独特的技术特点和广泛的应用领域,在市场上占据了重要的位置。本文将深入解析MSP430与STM32之间的区别,探讨它们在不同应用场景下的优势和局限...

关键字: MSP430 STM32 单片机

隔膜计量泵,作为一种精确控制液体输送的设备,广泛应用于化工、医药、食品等行业。它通过内部的隔膜进行往复运动,从而实现液体的吸入和排出,具有高精度、高可靠性以及耐腐蚀等特点。本文将详细阐述隔膜计量泵的工作原理、结构特点、性...

关键字: 隔膜计量泵 精确控制 高精度

STM32是由意法半导体公司(STMicroelectronics)推出的基于ARM Cortex-M内核的32位微控制器系列,以其高性能、低功耗、丰富的外设接口和强大的生态系统深受广大嵌入式开发者喜爱。本文将详细介绍S...

关键字: STM32 单片机

STM32与51单片机之间有什么差异呢?两者可以说是一场科技与性能的较量了。在科技飞速发展的今天,微控制器(MCU)已广泛应用于各类电子设备和系统中,发挥着举足轻重的作用。其中,STM32和51单片机作为两种常见的微控制...

关键字: STM32 51单片机 MCU

随着科技的飞速发展和电子设备的普及,高精度直流电源的应用领域日益广泛。无论是在科学研究、工业生产还是日常生活中,高精度直流电源都发挥着不可或缺的作用。本文将对高精度直流电源的应用领域进行深入探讨,旨在揭示其在各个领域中的...

关键字: 直流电源 高精度 电源设备

电磁铁是一种利用电流产生磁场的装置,具有快速响应、易于控制等特点,在工业自动化、电子设备、科学实验等领域有着广泛的应用。STM32是一款功能强大的微控制器,具有高性能、低功耗、易于编程等优点,是控制电磁铁的理想选择。本文...

关键字: 电磁铁 微控制器 STM32
关闭
关闭