#|【ESP8266之SDK开发】番外篇1(原生SDK v1.2.0 修改方法)

对于像我一样的新手而言,SDK的入门。简直就是云里雾里,啥也不能去理解,只能跟着照做,但是照做又很容易被简单的问题绊倒,然后也太打击人了,尤其编译SDK就是一个。
下面我以原生SDK V1.2为例,做一个模板。
原生SDK,连接:https://pan.baidu.com/s/1o8R46SU 密码:i4z0
改良后SDK,链接:https://pan.baidu.com/s/1jJBgfcU 密码:o4x7
步步为营,看图。
1、
#|【ESP8266之SDK开发】番外篇1(原生SDK v1.2.0 修改方法)
文章图片

2、
#|【ESP8266之SDK开发】番外篇1(原生SDK v1.2.0 修改方法)
文章图片

3、
#|【ESP8266之SDK开发】番外篇1(原生SDK v1.2.0 修改方法)
文章图片

4、在自己的工程里,分别再建三个文件
#|【ESP8266之SDK开发】番外篇1(原生SDK v1.2.0 修改方法)
文章图片

5、user里面放任意examples里面的user的makefile和user_main.c
#|【ESP8266之SDK开发】番外篇1(原生SDK v1.2.0 修改方法)
文章图片

6、dirver里面放对应的.c文件,这里我想打印串口。所以对应放了uart.c文件
和makefile…(刚刚那个IOT_DEMO似乎没有这个文件,我在examples\driver_lib\driver 里面找到的!)
#|【ESP8266之SDK开发】番外篇1(原生SDK v1.2.0 修改方法)
文章图片

7、include 根目录下放置user_config.h 然后再建一个 driver文件夹放置 uart.h和uart_register.h
#|【ESP8266之SDK开发】番外篇1(原生SDK v1.2.0 修改方法)
文章图片

#|【ESP8266之SDK开发】番外篇1(原生SDK v1.2.0 修改方法)
文章图片

然后利用eclipse 编译,具体烧录方法,戳这里。
注意最后生成的bin对应位置也许不太一样。。注意一下。。
#|【ESP8266之SDK开发】番外篇1(原生SDK v1.2.0 修改方法)
文章图片

上面这个user_main.c 里面我是这样写的。。

#include "driver/uart.h"void user_init() { uart_init(115200, 115200); uart0_sendStr("\r\nHello World\r\n"); } void user_rf_pre_init(){}

然后对应的串口
如果对应115200波特率,内容是这样的。。。
#|【ESP8266之SDK开发】番外篇1(原生SDK v1.2.0 修改方法)
文章图片

如果对于76800,内容是这样的。
#|【ESP8266之SDK开发】番外篇1(原生SDK v1.2.0 修改方法)
文章图片

乱码的位置刚好相反,,原因呢。。。其实以前也有说过。就是人家出厂时候的一些东西,在这个波特率上显示。。 传送门
#|【ESP8266之SDK开发】番外篇1(原生SDK v1.2.0 修改方法)
文章图片

哦对了,上面115200的时候。
我没让打印wifi相关,怎么打印出来了呢?如何关闭呢?
#|【ESP8266之SDK开发】番外篇1(原生SDK v1.2.0 修改方法)
文章图片

对应332行的注释取消掉就行了。
原因:
通过注释,我们可以了解到,串口打印有三种选项。
1、默认 – 利用串口0进行打印,有一个缺陷就是当FIFO缓冲区满的时候,需要等待。此时os_printf利用串口0。
2、取消注释332行,就是利用UART1打印。UART1在GPIO2,GPIO2相当于TXD1!不够UART1通常用于debug信息的打印。此时os_printf利用串口1。
3、取消337行注释,就是利用OPTION3。是一种无需等待的串口0打印。当然无需等待也就意味着会丢字节!此时os_printf利用串口0。
【#|【ESP8266之SDK开发】番外篇1(原生SDK v1.2.0 修改方法)】关于串口1,串口0更多相关信息,可以戳这里!

    推荐阅读