这是我2019年写的学习笔记,首发我的博客:MCU起航,现在转载到贴吧,大家感兴趣的看看就行。
问题:ESP8266有几个串口?
答:一个半。
先说一个完整的,这个比较常用。
以第三节生成的工程为例。咱们做一些修改。在软件左侧的Project Explorer打开app->user,除了user_main.c和Makefile,其它C文件都删掉。打开user_main.c文件,去掉文件头多余的头文件,添加如下两个和串口相关的头文件:
函数user_init(void)内,除了初始化相关的函数,其余都去掉。添加串口初始化函数,设置波特率为115200,同时打印输出“Hello world!”
保存、清理、编译一条龙,生成bin文件。
注意事项:user_main.c里面和系统初始化、系统配置相关的函数或定义不要动,如user_pre_init(void)、at_partition_table[]。如果是SDK2.2的话,你把这些删掉是没影响的,但是3.0不可以。
接下来说那半个UART,为什么说它是半个? 因为它只有一个发送管脚,TXD。其实从串口的初始化函数可以看出来,模块上面不止一个UART口:
uart_init(BIT_RATE_115200, BIT_RATE_115200);
咱们通常用来下载程序,或者输出调试信息的那个端口就是UART0,那么另一个自然就是UART1。对应的IO管脚在哪里? 打开uart.c文件,找到uart_init(void) 函数。可以发现:
它的UART1的输出管脚是GPIO2,如果要使用这个功能的话,把第340行的注释取消就可以,此时UART0只能做为程序下载接口,无法再输出调试信息。
问题:ESP8266有几个串口?
答:一个半。
先说一个完整的,这个比较常用。
以第三节生成的工程为例。咱们做一些修改。在软件左侧的Project Explorer打开app->user,除了user_main.c和Makefile,其它C文件都删掉。打开user_main.c文件,去掉文件头多余的头文件,添加如下两个和串口相关的头文件:
函数user_init(void)内,除了初始化相关的函数,其余都去掉。添加串口初始化函数,设置波特率为115200,同时打印输出“Hello world!”
保存、清理、编译一条龙,生成bin文件。
注意事项:user_main.c里面和系统初始化、系统配置相关的函数或定义不要动,如user_pre_init(void)、at_partition_table[]。如果是SDK2.2的话,你把这些删掉是没影响的,但是3.0不可以。
接下来说那半个UART,为什么说它是半个? 因为它只有一个发送管脚,TXD。其实从串口的初始化函数可以看出来,模块上面不止一个UART口:
uart_init(BIT_RATE_115200, BIT_RATE_115200);
咱们通常用来下载程序,或者输出调试信息的那个端口就是UART0,那么另一个自然就是UART1。对应的IO管脚在哪里? 打开uart.c文件,找到uart_init(void) 函数。可以发现:
它的UART1的输出管脚是GPIO2,如果要使用这个功能的话,把第340行的注释取消就可以,此时UART0只能做为程序下载接口,无法再输出调试信息。