1 Balabala

我买了一个天猫精灵,感觉好可爱哦~

兴趣在物联网,好好学习,下次换工作的时候,就可以去物联网的公司,智能家居实在是太暖了,可以给人带来快乐,陪伴,让生活更容易。

2 上次…

上次主要是想看一下怎么下载程序,看看焊的板子能不能用,虽然用串口打印了“Hello World”但是完全没看过串口。

3 ESP8266的串口

ESP8266有两个串口,现在只是用串口0的打印信息功能,模块上电后会默认输出一些信息。

3.1 波特率

ESP8266-12F模组的晶振是26MHz,所以串口0的默认波特率是74880.

26MHz,波特率74880
40MHz,波特率115200

打印完默认信息之后的波特率就可以自己设置了,设置波特率找到2个函数。

//串口初始化,可以设置串口0和串口1的波特率
void uart_init(UartBautRate uart0_br, UartBautRate uart1_br);

//设置串口波特率
void UART_SetBaudrate(uint8 uart_no,uint32 baud_rate);
串口的两个头文件和一个源文件要添加到相应目录,“uart_register.h”、“uart.h”、“uart.c”;

esp8266 idf log 波特率 esp8266波特率配置_#include

打开uart.h,找到串口波特率范围在300~3686400。

esp8266 idf log 波特率 esp8266波特率配置_esp8266 idf log 波特率_02

3.2 打印函数

也有两个,可以用串口发送字符串,也可以用系统接口的串口打印os_printf,还是os_printf好用,可以格式化输出。

//串口发送字符
//void uart0_sendStr(const char *str);
uart0_sendStr("Hello World~~~");

//系统的printf
os_printf("Hello World~~~");	
os_printf("system_sdk_version:%s",system_get_sdk_version());

os_printf 的头文件——#include “osapi.h”
system_get_sdk_version()的头文件——#include “user_interface.h”

5 代码、遇到的问题&解决

添加串口头文件的时候要加上drive目录,#include “driver/uart.h”,否则会报错,以前都是直接写头文件,没这样用过,不太明白。 更新两个链接:头文件路径包含问题、C++中当前路径、相对路径、绝对路径的表示方法及如何建立一个文件 其实想想是一直用的,在Keil的Options选项下的"C/C++",里面有个包含头文件的路径,只不过是编译器平时帮我做了这个工作。

#include "ets_sys.h"
#include "osapi.h"				//os_xxx系列接口
#include "user_interface.h"		//含system_xxx系列接口
#include "driver/uart.h"

uint32 ICACHE_FLASH_ATTR user_rf_cal_sector_set(void)	//RF扇区设置初始化
{
	//省略......
}

void ICACHE_FLASH_ATTR user_rf_pre_init(void)			//RF初始化
{
	//空
}

void ICACHE_FLASH_ATTR user_init(void)					//用户初始化函数
{
	uart_init(9600,9600);							//串口0:9600;串口1:9600

	os_printf("\r\nHello World~~~\r\n");				//串口0发送字符串

	os_printf("\r\nsystem_sdk_version:%s\r\n",system_get_sdk_version());
}

下面我试了几个波特率,分别是9600,74880,115200。

在用9600的时候,"Hello World"前面的换行没有显示出来。

在用115200的时候,前面几个数据出错了,"Hello World"没有显示全。

在不改变波特率的情况下是最正常的,换行也显示出来了,既然波特率降低也不正常,那应该就不是由于波特率过高导致的数据错误,而是在切换波特率后波特率不稳定,刚传输的几个字符识别不出来,加延时解决。

esp8266 idf log 波特率 esp8266波特率配置_#include_03


esp8266 idf log 波特率 esp8266波特率配置_#include_04

esp8266 idf log 波特率 esp8266波特率配置_头文件_05