完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
|
开发软件:PSOC 5LP
单片机:CY8CKIT-050 外加模块:DHT22 用PSOC写温湿度测量的时候,DHT22可以正常接收主机发送的开始信号,并且发送数据(已经在示波器上捕捉到了正确的数据),但是主机没有办法接收到DHT22的数据,读取数据的引脚始终为高电平,是设定GPIO的时候出现了问题吗?还是其他说明原因,有什么办法解决吗?/(ㄒoㄒ)/~~ 附代码:(接收pin名称叫Data,设定为同时勾选input和output) #include #include int main() { LCD_Start(); LCD_Position(0,0); LCD_PrintString("Ready") ; uint8 t; uint8 num[5] = {0}; uint8 sum = 0; uint16 temp = 100; uint16 wet = 200; CyDelay(2000); LCD_Position(0,0); LCD_PrintString(" "); LCD_Position(0,0); LCD_PrintString("Temp"); LCD_Position(0,7); LCD_PrintString("Wet"); //Data_SetDriveMode(PIN_DM_STRONG); Data_Write(1); CyDelayUs(1000); Data_Write(0); CyDelayUs(300); //这里为止都是正常的,示波器可以捕捉到DHT22传输的数据 Data_SetDriveMode(PIN_DM_DIG_HIZ); CyDelayUs(20); t = Data_ReadDataReg();//从这里开始不能正常读数了,始终读到低电平,如果用Data_Read()则始终读到高电平 //while (t) t = Data_Read(); if (t == 0) { while (!t) t = Data_ReadDataReg(); while (t) t = Data_ReadDataReg(); int i,j,temp; for (i = 0; i<5; i++) { for (j = 0; j<8; j++) { while (!t) t = Data_ReadDataReg(); CyDelayUs(30); t = Data_ReadDataReg(); temp = t; num[i]<<=1; num[i] = num[i] | temp; } if (i<4) sum+=num[i]; } Data_SetDriveMode(PIN_DM_STRONG); Data_Write(0); CyDelayUs(50); Data_Write(1); if (sum == num[4]) { wet=num[0]; wet<<=4; wet+=num[1]; temp=num[2]; temp<<=4; temp+=num[3]; LCD_Position(1,0); LCD_PrintString(" "); LCD_Position(1,0); LCD_PrintNumber(temp); LCD_PutChar('C'); LCD_Position(1,7); LCD_PrintString(" "); LCD_Position(1,7); LCD_PrintNumber(wet); LCD_PutChar('%'); } else { LCD_Position(1,0); LCD_PrintString(" "); LCD_Position(1,0); LCD_PrintString("ERROR"); } } else { LCD_Position(1,0); LCD_PrintString(" "); LCD_Position(1,0); LCD_PrintString("Fail"); } } |
|
相关推荐
1个回答
|
|
|
psoc的io口很灵活,基本可以随意功能
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
880 浏览 0 评论
644 浏览 0 评论
667 浏览 0 评论
925 浏览 0 评论
999 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
17102 浏览 31 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-18 14:10 , Processed in 0.649060 second(s), Total 72, Slave 54 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
726