注:本程序已验证可用,但只对本店模块做过适配测试,其他模块我们没法保证一定能用
实物参考链接 直戳跳转
一、资源说明
二、基本参数
1.参数
2.引脚说明
三、驱动说明
时序
对应程序:
以51为例
void AM2301A_T_RH(void)
{
//主机拉低18ms
AM2301A_DAT=0;
DelayMs(18);
AM2301A_DAT=1;
//总线由上拉电阻拉高 主机延时20us
Delay_10us();
Delay_10us();
Delay_10us();
Delay_10us();
//主机设为输入 判断从机响应信号
AM2301A_DAT=1;
//判断从机是否有低电平响应信号 如不响应则跳出,响应则向下运行
if(!AM2301A_DAT) //T !
{
Flag=2;
//判断从机是否发出 80us 的低电平响应信号是否结束
while((!AM2301A_DAT)&&Flag++);
Flag=2;
//判断从机是否发出 80us 的高电平,如发出则进入数据接收状态
while((AM2301A_DAT)&&Flag++);
//数据接收状态
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;
//数据校验
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;
}
}
}
四、部分代码说明
1、接线引脚定义
需要自定义引脚可在此处更改,STM32要自定义引脚的话也要注意引脚时钟使能的更改
1.1、STC89C52RC+AM2301A模块
//AM2301A模块引脚定义
sbit AM2301A_DAT=P1^0;
//OLED0.96模块引脚定义
sbit SCL=P1^3; //串行时钟
sbit SDA=P1^2; //串行数据
1.2、STM32F103C8T6+AM2301A模块
//AM2301A模块引脚定义 GPIOB_5
#define AM2301A_DAT_1 GPIO_SetBits(GPIOB,GPIO_Pin_5)
#define AM2301A_DAT_0 GPIO_ResetBits(GPIOB,GPIO_Pin_5)
//OLED0.96模块引脚定义
/*STM32F103C8T6芯片的硬件I2C: PB6 -- SCL; PB7 -- SDA */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_OD;//I2C必须开漏输出
GPIO_Init(GPIOB, &GPIO_InitStructure);
五、基础知识学习
STC89C52RC程序下载 直戳跳转
STM32F103C8T6程序下载
1、串口下载 直戳跳转
2、ST-LINK下载 直戳跳转
3、J-LINK下载 直戳跳转
4、DAP-LINK下载 直戳跳转
OLED0.96程序说明 直戳跳转
串口助手下载与使用
1、安信可调试助手使用 直戳跳转
2、 sscom33串口调试助手使用 直戳跳转
3、STC-ISP串口调试助手使用 直戳跳转
六、视频效果展示与程序资料获取
实物参考链接 直戳跳转
七、注意事项
1、VCC GND请勿接反,接反易烧
2、OLED显示异常时,排除接线接触不良
八、接线说明
可参考程序main.c最上面接线说明