• 售前

  • 售后

热门帖子
入门百科

HT66F2390——AM2320温湿度传感器

[复制链接]
升密示 显示全部楼层 发表于 2022-1-8 17:42:06 |阅读模式 打印 上一主题 下一主题
HT66F2390单片机与AM2320温湿度传感器单总线通讯

AM2320 数字温湿度传感器是一款含有己校准数字信号输出的温湿度复合型传感器,采取单总线、尺度 I²C 两种通讯方式。
本文基于HT66F2390单片机,采取单总线通讯,实现AM2320传感器数据获取,关于AM2320传感器的利用,可参考AM2320产品手册。
AM2320资料链接:https://pan.baidu.com/s/1B5c9MSYykXByCMxZVks2vg
提取码:2320
下面是AM2320传感器相应开发代码:
AM2320.h

  1. #ifndef __AM2320_H
  2. #define __AM2320_H
  3. #include "HT66F2390.h"
  4. //#include "sys.h"
  5. #include "Type.h"
  6. #define GPIO_AM2320         _pdc3
  7. #define PIN_AM2320            _pd3
  8. void AM2320_IO_OUT(void);
  9. void AM2320_IO_IN(void);
  10. void AM2320_DQ_OUT(u8 i);
  11. u8 AM2320_DQ_IN(void);
  12. u8 AM2320_Init(void);
  13. void AM2320_Rst(void);
  14. u8 AM2320_Check(void);
  15. u8 AM2320_Read_Bit(void);
  16. u8 AM2320_Read_Byte(void);
  17. u8 AM2320_Read_Data(float *temperature,float *humidity);
  18. #endif
复制代码
sys.h文件为系统时钟设置头文件,没用到可以不调用。
Type.h

  1. typedef        unsigned char        u8;
  2. typedef        char                        s8;
  3. typedef        unsigned short        u16;
  4. typedef        short                        s16;
  5. typedef        unsigned long        u32;
  6. typedef        long                        s32;
复制代码
AM2320.c

[code]#include"AM2320.h"/* 输出模式 */void AM2320_IO_OUT(void)  {         GPIO_AM2320=0;}/* 输入模式 */void AM2320_IO_IN(void)   {         GPIO_AM2320=1;         _pgpu1=1;  //上拉使能}/* AM2320初始化 */u8 AM2320_Init(void) {                 GPIO_AM2320=0;   //输入模式        PIN_AM2320=1;  //输出        AM2320_Rst();          return AM2320_Check();} void AM2320_Rst(void)           {                     GPIO_AM2320=0;         //输出模式    PIN_AM2320=0;         //拉低    delay_ms(20);            //拉低至少18ms    PIN_AM2320=1;         //拉高         GCC_DELAY(120);             //Pull up 20~40us}u8 AM2320_Check(void)            //检查{           u8 retry=0;        AM2320_IO_IN();      //输入模式   while (PIN_AM2320&&retry=100)        {                return 1;                }        else                 retry=0;  while (!PIN_AM2320&&retry=100)  {                return 1;   //chack error                                          }        return 0;}/* 读1位 */u8 AM2320_Read_Bit()                  {         u8 retry=0;        while(PIN_AM2320&&retry

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作