ESP32_02串口打印hello_world信息

很久没研究ESP32了,这里简单更新一下ESP32的学习笔记,这一节研究下ESP32的串口打印输出的功能!

对串口比较熟悉的朋友应该知道,串口是一个常用的接口。在ESP8266中,就有两个串口,一个用来打印工作状态,另一个的RXD管脚和外部的SPI复用了,所以只能用TXD,也就是ESP8266只有一个半串口能用。

相比ESP8266,ESP32的串口终于变成了两个完整的,分别是UART0和UART1。其中,UART0用来打印log信息,UART1用来处理AT指令。所以使用时千万要注意,经常有人在UART0上测试AT指令没反应,因为你找错了串口。

接下来开始演示例程,因为官方的SDK里面已经包含了大量现成的例子,我们直接使用就行。

复制工程ESP32_LED,粘贴时修改工程名称为ESP32_HELLO_WORLD。因为我们要使用的是SDK目录下的例程:

examples\get-started\hello_world

所以要修改下面的信息:

然后,打开工程,如果你觉得blink例程碍事的话,可以把它删除。

打开hello_world_main.c文件,内容如下:

官方提供了一个完整的串口打印例程,可以打印CPU的相关信息。

不需要做修改,clean、build一下,生成.bin文件。

使用ESPFlashDownloadTool_v3.6.4工具进行下载,注意地址和路径,如下:

下载成功后,重新上电,可以看到串口打印信息。如下图所示:

前面是上电的时候,系统打印的启动信息。从“hello world”开始,是例程里写到的信息。具体内容如下:

ets Jun  8 2016 00:22:57

rst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0018,len:4
load:0x3fff001c,len:6924
load:0x40078000,len:14680
load:0x40080400,len:4312
entry 0x400806e8
I (72) boot: Chip Revision: 1
I (72) boot_comm: mismatch chip revision, expect 1, found 0
I (39) boot: ESP-IDF v4.1-dev-437-gd2ad0f077-dirty 2nd stage bootloader
I (39) boot: compile time 22:39:49
I (40) boot: Enabling RNG early entropy source...
I (45) boot: SPI Speed      : 40MHz
I (50) boot: SPI Mode       : DIO
I (54) boot: SPI Flash Size : 4MB
I (58) boot: Partition Table:
I (61) boot: ## Label            Usage          Type ST Offset   Length
I (69) boot:  0 nvs              WiFi data        01 02 00009000 00006000
I (76) boot:  1 phy_init         RF data          01 01 0000f000 00001000
I (83) boot:  2 factory          factory app      00 00 00010000 00100000
I (91) boot: End of partition table
I (95) boot_comm: mismatch chip revision, expect 1, found 0
I (101) esp_image: segment 0: paddr=0x00010020 vaddr=0x3f400020 size=0x08c90 ( 35984) map
I (123) esp_image: segment 1: paddr=0x00018cb8 vaddr=0x3ffb0000 size=0x02188 (  8584) load
I (127) esp_image: segment 2: paddr=0x0001ae48 vaddr=0x40080000 size=0x00400 (  1024) load
I (131) esp_image: segment 3: paddr=0x0001b250 vaddr=0x40080400 size=0x04dc0 ( 19904) load
I (148) esp_image: segment 4: paddr=0x00020018 vaddr=0x400d0018 size=0x12eb4 ( 77492) map
I (175) esp_image: segment 5: paddr=0x00032ed4 vaddr=0x400851c0 size=0x044b0 ( 17584) load
I (189) boot: Loaded app from partition at offset 0x10000
I (189) boot: Disabling RNG early entropy source...
I (189) cpu_start: Pro cpu up.
I (193) cpu_start: Application information:
I (198) cpu_start: Project name:     hello-world
I (203) cpu_start: App version:      v4.1-dev-437-gd2ad0f077-dirty
I (210) cpu_start: Compile time:     Apr  6 2020 22:40:08
I (216) cpu_start: ELF file SHA256:  44b2fd949d57ea5c...
I (222) cpu_start: ESP-IDF:          v4.1-dev-437-gd2ad0f077-dirty
I (229) cpu_start: Starting app cpu, entry point is 0x40080fb8
I (216) cpu_start: App cpu up.
I (240) heap_init: Initializing. RAM available for dynamic allocation:
I (246) heap_init: At 3FFAE6E0 len 00001920 (6 KiB): DRAM
I (252) heap_init: At 3FFB3170 len 0002CE90 (179 KiB): DRAM
I (259) heap_init: At 3FFE0440 len 00003AE0 (14 KiB): D/IRAM
I (265) heap_init: At 3FFE4350 len 0001BCB0 (111 KiB): D/IRAM
I (271) heap_init: At 40089670 len 00016990 (90 KiB): IRAM
I (278) cpu_start: Pro cpu start user code
I (296) spi_flash: detected chip: generic
I (296) spi_flash: flash io: dio
I (297) cpu_start: Starting scheduler on PRO CPU.
I (0) cpu_start: Starting scheduler on APP CPU.
Hello world!
This is ESP32 chip with 2 CPU cores, WiFi/BT/BLE, silicon revision 1, 4MB external flash
Restarting in 10 seconds...
Restarting in 9 seconds...
Restarting in 8 seconds...
Restarting in 7 seconds...
Restarting in 6 seconds...
Restarting in 5 seconds...
Restarting in 4 seconds...
Restarting in 3 seconds...
Restarting in 2 seconds...
Restarting in 1 seconds...
Restarting in 0 seconds...

串口的例程总体来说比较简单,官方已经帮我们写好了。如果没有特殊需求的话,不做修改,直接就能使用,波特率默认115200.

需要例程的话,公众号(单片机爱好者)后台回复关键词:ESP32_HELLO_WORLD,即可获得下载链接。不过,这么简单的例程,应该自己能搞定吧!

留下评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据