|
| 一般来说,多数不能正确读取数据的原因在于延时的准确性,这个需要先测试验证好,然后程序的控制逻辑方面,严格按照时序要求就行。换了个程序成功了,还是要认真分析下自己所遇问题的根本原因是什么,祝你不断进步。 |
|
滚雪球: 下作一个功能甚至一个I/O,不要直接做个系统。特别是不要从“通讯”开始。 有的专业认识很多年都没搞清楚怎么作通讯。通讯确实很简单,但不适合入手。 |
| 我又新找了一个代码实现了,谢谢大家啦 |
GlenXu 发表于 2025-12-27 18:41 我试试,其实这个也是移植过来的 |
万家灯火51 发表于 2025-12-28 09:39 你指的是哪个引脚哇,PC15吗 |
黄youhui 发表于 2025-12-27 11:16 我不太懂欸,没怎么学明白 |
| 你仿真里,引脚都没有连上它 |
| 简单问题复杂化了,简单抄一个,一定好用,然后移植。 |
|
你怎么判断01数据,你说怎么判断uint8_t DHT11_Read_Byte(void) { uint8_t i, temp = 0; for(i=0; i<8; i++) { while(!DHT11_IN); Delay_us(40); if(DHT11_IN == 1) { while(DHT11_IN); temp |= (1 << (7-i)); } else { temp &= ~(1 << (7-i)); } } return temp; } |
| 本坛内搜索“DHT11 仿真”即可。 |