入手两周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.