DHT11_Read_Data(uint8_t* 湿度, uint8_t* 温度) { uint8_t i, 数据[5], 校验和;DHT11_Send_Low();D elay_us(20);GPIO_InitTypeDef GPIO_InitStructure;GPIO_InitStructure.GPIO_Pin = DHT11_PIN;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(DHT11_PORT,&GPIO_InitStructure);// ??DHT11 ??如果(!GPIO_ReadInputDataBit(DHT11_PORT, DHT11_PIN)) { Delay_us(80); // ??DHT11 ????if(GPIO_ReadInputDataBit(DHT11_PORT, DHT11_PIN)) { Delay_us(80); // ???? for(i = 0; i < 5; i++) { data[i] = DHT11_Read_Byte(); } // ????? 校验和 = data[0] + data[1] + data[2] + data[3]; // ???? if(校验和 == data[4]) { *湿度 = 数据[0]; *温度 = 数据[2]; } } }// ???????,????GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;GPIO_Init(DHT11_PORT,&GPIO_InitStructure);GPIO_SetBits(DHT11_PORT、DHT11_PIN);}中出现..\硬件\DHT11\DHT11.c(73):错误:#268:块中的可执行语句后可能不会显示声明
时间: 2023-06-20 08:04:36 浏览: 104
这个错误是因为在函数中有一些变量没有在函数开始处进行声明。具体来说,变量 i、数据和校验和都应该在函数开始前进行声明。
你需要在函数开始处添加以下代码:
```
void DHT11_Read_Data(uint8_t* 湿度, uint8_t* 温度) {
uint8_t i, 数据[5], 校验和;
// ...
}
```
这样就可以解决这个问题了。另外,建议在函数中添加注释,以便更好地理解代码的含义。
相关问题
uint8_t DHT11_Read_Data(uint8_t *temp,uint8_t *humi)该怎么用?
您可以使用函数`DHT11_Read_Data`来读取DHT11传感器的温度和湿度数据。函数需要两个参数:`temp`和`humi`,它们都是指向`uint8_t`类型的指针。
您可以按照以下步骤使用该函数:
1. 在适当的位置定义两个`uint8_t`类型的变量,用于存储温度和湿度数据。例如:`uint8_t temperature, humidity;`
2. 调用`DHT11_Read_Data`函数,将温度和湿度变量的地址作为参数传递给函数。例如:`DHT11_Read_Data(&temperature, &humidity);`
3. 函数将会在读取成功后,将温度和湿度数据存储到相应的变量中。
请注意,具体的实现细节和函数定义可能会因您使用的开发环境或库而略有不同。建议查阅相关文档或参考示例代码以确保正确使用该函数。
uint8_t DHT11_R_Data(uint8_t *temp, uint8_t *humi);怎么用
函数`uint8_t DHT11_R_Data(uint8_t *temp, uint8_t *humi)`是一个用于读取DHT11传感器数据的函数。它接受两个指针参数`temp`和`humi`,用于存储读取到的温度和湿度数据。
使用该函数的步骤如下:
1. 在调用该函数之前,需要先定义两个变量用于存储温度和湿度数据,例如:
```
uint8_t temperature;
uint8_t humidity;
```
2. 调用函数时,将上述定义的变量的地址作为参数传递给函数,例如:
```
DHT11_R_Data(&temperature, &humidity);
```
3. 函数执行后,会将读取到的温度和湿度数据存储到传入的变量中。
请注意,使用该函数前需要确保已经正确初始化了DHT11传感器,并且连接正确。另外,该函数返回一个`uint8_t`类型的值,可能用于表示读取数据的状态或错误码。