ESP8266 NONOS_SDK-3.0 开发中官方例程 UART0串口进入不了中断问题

入手两周ESP8266模块,他提供的exemple都跑了一遍,发现没啥问题,后来准备自己开发,先写个串口程序跑跑吧,就是将UART0作为输入输出口,UART1作为debug调试口打印信息,代码很简单,就是在user_main()中添加了
uart_init(BIT_RATE_115200,BIT_RATE_115200);
UART_SetPrintPort(UART1);
但是运行后,却发现UART0输入什么就返回什么,UART1根本不输出,检查后,在uart0_rx_intr_handler()函数中添加
os_printf(“enter uart0 interupt\r\n”);
发现UART0输入的数据根本没触发UART0中断。
于是上网搜索各路大神的方法,找了一圈,没有大神明确给出答案,根据蛛丝马迹,我知道原因了,肯定是工程编译路径有问题,导致UART.C根本没编译进来。

1错误来源

我运行时将官方exemple中的peripheral_test文件夹直接拷贝到F:\esp8266\share\ESP8266_NONOS_SDK-3.0文件夹下。
然后就在Share/ESP8266_NONOS_SDK-3.0/peripheral_test下运行了编译命令./gen_misc.sh编译通过,烧录程序,上电运行,发现根本不进UART0中断。
然后看网上也有很多人遇到这个问题,根据线索怀疑是编译路径有问题,果然,查看了别人搭建的工程,发现自己工程都没建对,不出错才怪,后来潜心学习了搭建工程。

2重新搭建工程

1、在ESP8266_NONOS_SDK-3.0路径下新建文件夹app,拷贝eample/perpheral_test下的Makefile include user gen_misc.bat gen_misc.bat至app文件夹下。
2、拷贝driver_lib文件夹下的driver至app文件夹下,拷贝driver_lib下的include/driver文件夹至app文件夹下的include文件夹
3、修改app文件夹下的Makefile,
添加源driver
SUBDIRS=
user driver
添加driver/libdriver.a
user/libuser.a driver/libdriver.a
4、uart_recvTask 中修改uart_tx_one_char(UART1,d_tmp),打印到uart1.

3大功告成

重新编译,下载,运行。发现从UART0串口输入的数据从uart1打印出来了,并提示进入中断了

展开阅读全文

没有更多推荐了,返回首页