久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標(biāo)題: STM32單片機(jī)驅(qū)動(dòng)AM2301A溫濕度模塊程序 [打印本頁(yè)]

作者: KK123L64654    時(shí)間: 2024-6-5 08:59
標(biāo)題: STM32單片機(jī)驅(qū)動(dòng)AM2301A溫濕度模塊程序
/************************************************************************************
//  功能描述   : AM2301A模塊測(cè)試程序
//  測(cè)試條件   : STM32F103C8T6   晶振8M  系統(tǒng)時(shí)鐘72M
接線
AM2301A -------------------------------STM32F103C8T6
VCC------------------------------------5V
GND------------------------------------GND
SDA------------------------------------PA4

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

以下為.c文件
#include "AM2301A.h"
#include "delay.h"
uint16_t R_Date,T_Date;
uint8_t  Flag;
uint8_t  temp;
uint8_t  T_data_H,T_data_L,RH_data_H,RH_data_L,U8checkdata;
uint8_t  T_data_H_temp,T_data_L_temp,RH_data_H_temp,RH_data_L_temp,checkdata_temp;
uint8_t  comdata;

//AM2301A配置為輸出模式,引腳是GPIOA_4
void AM2301A_OUT_GPIO_Config(void)
{
                        GPIO_InitTypeDef GPIO_InitStructure;
                        RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA, ENABLE);

                        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;
                        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
                        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
                        GPIO_Init(GPIOA, &GPIO_InitStructure);
        
}
//AM2301A配置為上拉輸入模式,引腳是GPIOA_4
void AM2301A_IN_GPIO_Config(void)
{
                        GPIO_InitTypeDef GPIO_InitStructure;
                        RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA, ENABLE);

                        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;
                        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
                        GPIO_Init(GPIOA, &GPIO_InitStructure);
        
}
void AM2301A_COM(void)
{

                uint8_t i;
                AM2301A_IN_GPIO_Config();
                for(i=0;i<8;i++)           
                {

                                Flag=2;        
                                while((!AM2301A_DAT_Read)&&Flag++);
                                delay_us(30);
                                temp=0;
                                if(AM2301A_DAT_Read)
                                {
                                        temp=1;
                                }
                                Flag=2;
                                while((AM2301A_DAT_Read)&&Flag++);
                                //超時(shí)則跳出for循環(huán)                  
                                if(Flag==1)
                                {
                                        break;
                                }
                                //判斷數(shù)據(jù)位是0還是1         

                                // 如果高電平高過(guò)預(yù)定0高電平值則數(shù)據(jù)位為 1

                                comdata<<=1;
                                comdata|=temp; //0
                }//rof
                AM2301A_OUT_GPIO_Config();
}

        //--------------------------------
        //-----濕度讀取子程序 ------------
        //--------------------------------
        //----以下變量均為全局變量--------
        //----溫度高8位== data_H------
        //----溫度低8位== T_data_L------
        //----濕度高8位== RH_data_H-----
        //----濕度低8位== RH_data_L-----
        //----校驗(yàn) 8位 == U8checkdata-----
        //----調(diào)用相關(guān)子程序如下----------
        //---- Delay();, Delay_10us();,COM();
        //--------------------------------

void AM2301A_T_RH(void)
{
                AM2301A_OUT_GPIO_Config();
          //主機(jī)拉低18ms
     AM2301A_DAT_0;
           delay_ms(18);
           AM2301A_DAT_1;
         //總線由上拉電阻拉高 主機(jī)延時(shí)20us
                 delay_us(40);   
         //主機(jī)設(shè)為輸入 判斷從機(jī)響應(yīng)信號(hào)
           AM2301A_DAT_1;
         //判斷從機(jī)是否有低電平響應(yīng)信號(hào) 如不響應(yīng)則跳出,響應(yīng)則向下運(yùn)行         
                AM2301A_IN_GPIO_Config();
           if(!AM2301A_DAT_Read)                 //T !         
           {
                                 Flag=2;
                         //判斷從機(jī)是否發(fā)出 80us 的低電平響應(yīng)信號(hào)是否結(jié)束         
                                 while((!AM2301A_DAT_Read)&&Flag++);
                                 Flag=2;
                         //判斷從機(jī)是否發(fā)出 80us 的高電平,如發(fā)出則進(jìn)入數(shù)據(jù)接收狀態(tài)
                                 while((AM2301A_DAT_Read)&&Flag++);
                         //數(shù)據(jù)接收狀態(tài)                 
                                 AM2301A_COM();
                                 RH_data_H_temp=comdata;
                                 AM2301A_COM();
                                 RH_data_L_temp=comdata;
                                 AM2301A_COM();
                                 T_data_H_temp=comdata;
                                 AM2301A_COM();
                                 T_data_L_temp=comdata;
                                 AM2301A_COM();
                                 checkdata_temp=comdata;
                                 AM2301A_DAT_1;
                         //數(shù)據(jù)校驗(yàn)
                        
                                 temp=(T_data_H_temp+T_data_L_temp+RH_data_H_temp+RH_data_L_temp);
                                 if(temp==checkdata_temp)
                                 {
                                                        RH_data_H=RH_data_H_temp;
                                                        RH_data_L=RH_data_L_temp;
                                                        T_data_H=T_data_H_temp;
                                                        T_data_L=T_data_L_temp;
                                                        U8checkdata=checkdata_temp;
                                                        R_Date=RH_data_H_temp*256+RH_data_L_temp;
                                                        T_Date=T_data_H_temp*256+T_data_L_temp;
                                 }//fi
           }//fi
                AM2301A_OUT_GPIO_Config();
        }

具體整個(gè)驅(qū)動(dòng)文件在附件,工程模塊采用正點(diǎn)原子的就可以。

原理圖: 無(wú)
仿真: 無(wú)
代碼(.c文件和.h文件  2個(gè)): AM2301A.zip (1.74 KB, 下載次數(shù): 4)





歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 欧美一区二区三区在线视频 | 国产一级网站 | 日韩精品视频在线免费观看 | 一区二区三区视频 | 成人视屏在线观看 | 国产成人+综合亚洲+天堂 | 三级理论片 | 日韩欧美在线播放 | 久久精品在线观看 | 国产成人午夜 | 免费一级黄色录像 | 午夜88| 91久久久久久久久 | 国产精品一二三四 | 亚洲精品日韩丝袜精品 | 在线视频日韩 | 一级黄色免费看 | 美国一级大黄一片免费中文 | 免费性视频 | 国产精品欧美精品 | 午夜国产视频 | 国产精品视频一区二区三区 | 一级黄色性生活片 | 玖玖视频| 性生活视频网站 | 黄色片免费| 久久机热这里只有精品 | 黄色在线播放 | 国产精品第二页 | av免费在线观看网站 | 国产成人97精品免费看片 | 欧美高清在线 | 国产一区二区网站 | 国产成人在线免费视频 | a级片免费 | 欧美亚洲国产精品 | 国产一级黄色大片 | 精品久久国产 | 国产精品视频久久 | 最新国产精品 | 激情综合色 |