概述
陈拓 2021/05/06-2021/05/06
1. 概述
在《ESP8266_RTOS_SDK v3.x 读DS18B20温度数据》
https://zhuanlan.zhihu.com/p/370007889
https://blog.csdn.net/chentuo2000/article/details/116448392
一文中由于ESP8266 RTOS SDK 3.4之前版本的printf函数不支持浮点,输出部分采用了以前单片机的方法。
ESP8266 RTOS SDK 3.4现在支持浮点输出了。
之前的SDK为了节省RAM和Flash占用,采用gcc小型化C库 NewLib nano,不支持浮点数。
2. 更新ESP8266 RTOS SDK
git pull
ESP8266 RTOS SDK已经更新到v3.4。
3. 修改配置
- 项目配置
make menuconfig
make menuconfig > Component config > Newlib > [ ] Enable 'nano' formatting options for printf/scanf family 取消此项选择
保存Save,退出Exit。
4. 修改程序
主程序:
/* user_main.c */
#include <stdio.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "esp_spi_flash.h"
#include "driver/gpio.h"
#include "esp_system.h"
#include "ds18b20.h"
#define DQ GPIO_NUM_13 // GPIO13
/* 温度检测任务函数 */
uint8_t temp_s[8] = {' ','9','9','9','9','9','9','