temp_humi\temp_humi.axf: Error: L6218E: Undefined symbol save_data (referred from dht11.o).
时间: 2023-11-12 09:54:29 浏览: 37
这个错误提示说明在编译链接 `temp_humi.axf` 的过程中,找不到 `save_data` 这个符号的定义。可能的原因是在 `dht11.o` 对 `save_data` 进行了引用,但是在链接时没有找到它的定义。
你需要检查一下代码中是否有 `save_data` 这个函数或变量的定义,如果没有,需要添加对应的定义。如果已经有了定义,那可能是链接时出现了问题,需要检查链接设置和库文件是否正确。
相关问题
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`类型的值,可能用于表示读取数据的状态或错误码。
ESP8266_Init(); delay_ms(800); ESP8266_StaTcpClient_UnvarnishTest(); /*初始化DTT11的引脚*/// MQ2_DO_GPIO_Init(); // MQ2_DO数字接口输入 DHT11_GPIO_Config(); //DHT11温湿度传感器接口初始化 ADCx_Init(); //MQ2 adc通道初始化 /*调用Read_DHT11读取温湿度,若成功则输出该信息*/ if( Read_DHT11(&DHT11_Data)==SUCCESS) { printf("\r\n读取DHT11成功!\r\n\r\n湿度为%d.%d %RH ,温度为 %d.%d℃ \r\n",\ DHT11_Data.humi_int,DHT11_Data.humi_deci,DHT11_Data.temp_int,DHT11_Data.temp_deci); //printf("\r\n 湿度:%d,温度:%d \r\n" ,DHT11_Data.humi_int,DHT11_Data.temp_int); } else { printf("Read DHT11 ERROR!\r\n"); } // LED_Init(); // LED初始化 // Beek_Init(); // OLED while(1) { /*调用Read_DHT11读取温湿度,若成功则输出该信息*/ if( Read_DHT11(&DHT11_Data)==SUCCESS) { printf("湿度为%d.%d %RH ,温度为 %d.%d℃ \r\n",\ DHT11_Data.humi_int,DHT11_Data.humi_deci,DHT11_Data.temp_int,DHT11_Data.temp_deci); //printf("\r\n 湿度:%d,温度:%d \r\n" ,DHT11_Data.humi_int,DHT11_Data.temp_int); ADC_ConvertedValueLocal =(float) ADC_ConvertedValue/4096*3.3; //读取MQ2的adc电压 } else { printf("Read DHT11 ERROR!\r\n"); } printf(" The AD value = %f V \r\n", ADC_ConvertedValueLocal); //显示电压解释代码
这段代码主要是对ESP8266、DHT11、MQ2和ADC进行初始化,并调用Read_DHT11函数读取温湿度数据和ADC的电压值。具体分析如下:
1. ESP8266_Init()函数用于初始化ESP8266模块,包括串口和Wi-Fi连接等。
2. delay_ms(800)函数用于延时800毫秒,等待ESP8266模块初始化完成。
3. ESP8266_StaTcpClient_UnvarnishTest()函数用于检测ESP8266模块的TCP客户端连接状态。
4. MQ2_DO_GPIO_Init()函数用于初始化MQ2传感器的数字信号输入端口。
5. DHT11_GPIO_Config()函数用于初始化DHT11温湿度传感器的引脚。
6. ADCx_Init()函数用于初始化ADC通道。
7. Read_DHT11(&DHT11_Data)函数用于读取DHT11传感器采集的温湿度数据,并将结果存储在DHT11_Data结构体中。
8. ADC_ConvertedValueLocal =(float) ADC_ConvertedValue/4096*3.3;语句用于读取MQ2传感器采集的模拟电压值,并将结果存储在ADC_ConvertedValueLocal变量中。
9. printf语句用于输出读取到的温湿度数据和MQ2传感器采集的电压值。