首页 » 技术SOS » 嵌入式系统 » MCU和嵌入式微处理器 » 求大神解决51开发am2303温湿度传感器驱动程序问题

求大神解决51开发am2303温湿度传感器驱动程序问题

菜鸟
2013-08-13 22:11:37
这个程序是我参考官方的说明书(官方的使用说明书在百度文库有),根据时序图写的,本来出来那时非常happy!结果放了两天再去单片机运行加载我的主体程序(结合si4432无线报火警项目),发现程序竟然奇葩的在51运行不出来,再次回头单运行温湿度程序结果伤了!!!求大神答疑!!!!!!! 截取am2303.c文件,本来是在12864显示的 #include #include"am2303.h" #include"suidao.h" //extern DataPort; bit Flag_sign = 0; //温度正负符号 unsigned char T_H,T_L,H_H,H_L,Check_data; //温度高8位,温度低8位,湿度高8位,湿度低8位,校验位 unsigned int Temperature,Humidity; //温度,湿度 unsigned char tab[6]={0x00,0x00,0x00,0x00,0x00,0x00};//存储温湿度共6位数据, 显示在12864为 湿度 xx.x% 温度 +xx.xC /*******************初始化******************/ void Am2303_init() { delay_ms(2500); //响应主机起始信号 SDA = 0; delay_ms(1); //拉低延时800us SDA = 1; + delay_us(3); // 释放总线 20us以上 //传感器响应信号,拉低80us,再拉高80us while(!SDA); // if(!SDA){delay();delay();delay();delay();} LED1 =0;程序会卡在这,原因初步分析是与51单总线启动时启动不了,但是不知道为何会 这样,本来就运行出来过,即使有事卡过来了,但是不会出正确数据 while(SDA); } /*********************读8位0/1的位数据***********/ unsigned char Am2303_read() { unsigned char i,dat=0,temp; for(i = 0; i
需求补充: /*********************读8位0/1的位数据***********/
unsigned char Am2303_read()
{
unsigned char i,dat=0,temp;
for(i = 0; i
分享
关键词: am2303温书度传感器, 51单片机