完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
如何更改esp_iot_rtos_sdk中闭源部件使用的 UART 以获取错误消息?我正在将 UART 连接到其他设备,但看不到输出,我只能看到通过 uart1(到 gpio2)打印的内容。例如,在 uart1 上,我看到一个问题:
致命异常 (20): EPC1=0x00000000 EPC2=0x00000000 EPC3=0x40242f90 epcvaddr=0x00000000 DEPC=0x00000000 "@▒rjrA(!▒S▒u▒К▒X%(▒▒y▒eh)"8▒t▒ͪN 但是接下来的事情发生在 UART0 上: ets Jan 8 2013,rst cause:4, boot mode:(1,7) WDT 复位 os_install_putc1(uart1_write_char); 但它似乎并不影响一切? |
|
相关推荐
1个回答
|
|
要更改ESP8266 RTOS SDK中闭源部件使用的UART以获取错误消息,您可以按照以下步骤操作:
1. 首先,找到SDK中的`user_interface.c`文件。这个文件通常位于`include`目录下。 2. 打开`user_interface.c`文件,找到`os_install_putc1`函数。这个函数是用于向UART发送错误消息的函数。 3. 在`os_install_putc1`函数中,您会看到以下代码: ```c LOCAL void ICACHE_FLASH_ATTR os_install_putc1(void (*p)(unsigned char)) { uart_div_modify(0, UART_CLK_FREQ / 115200); WRITE_PERI_REG(UART_CONF0(0), (READ_PERI_REG(UART_CONF0(0)) & ~(UART_TXD_INV | UART_RXD_INV)) | p); } ``` 4. 要更改使用的UART,您需要修改`UART0`为`UART1`。将上述代码中的`0`更改为`1`: ```c LOCAL void ICACHE_FLASH_ATTR os_install_putc1(void (*p)(unsigned char)) { uart_div_modify(1, UART_CLK_FREQ / 115200); WRITE_PERI_REG(UART_CONF0(1), (READ_PERI_REG(UART_CONF0(1)) & ~(UART_TXD_INV | UART_RXD_INV)) | p); } ``` 5. 接下来,找到`user_interface.h`文件,通常位于`include`目录下。 6. 打开`user_interface.h`文件,找到`os_install_putc1`函数的声明。将声明中的`UART0`更改为`UART1`: ```c void os_install_putc1(void (*p)(unsigned char)); ``` 7. 现在,您需要确保您的应用程序使用UART1进行通信。在您的应用程序代码中,找到所有使用UART0的地方,并将它们更改为UART1。 8. 重新编译并烧录您的应用程序到ESP8266模块。 完成以上步骤后,您的应用程序应该使用UART1来发送错误消息。请注意,这可能会影响您的应用程序在UART1上的其他通信功能,因此请确保在更改后测试所有功能。 |
|
|
|
只有小组成员才能发言,加入小组>>
321 浏览 0 评论
1178 浏览 1 评论
586浏览 6评论
483浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
468浏览 5评论
467浏览 4评论
442浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-27 08:12 , Processed in 0.952213 second(s), Total 82, Slave 65 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号