如题,正式写代码之前测试过ESP8266模块,可以通过串口调试软件进行正常的双向通信,基本可以证明模块能正常运作、硬件连接无误。
但是!!问题来了!!写代码的时候发现串口接收不到数据。
调试后有两个发现:
- 串口发送数据send函数均可以正常运行(表现为,在串口发送数据函数代码最后加led1=~led1,运行起来led1会闪烁,证明发送函数运行成功)
- C语言编程实现的ESP8266发送AT指令,可以在串口调试助手上观察到,但不会引起串口中断(不会进入中断服务函数,证明没有接收到数据,可能没有发送成功?)【用串口调试助手发送的AT指令,就会引起串口中断,区别如下图】
另外一个问题:中断服务函数里,当RI为1时,将SBUF里的数据显示到LCD上,按理来说向ESP8266发送‘AT’,ESP8266会返回‘OK’,也就是LCD上应该显示‘OK’。但是,用串口调试助手向ESP8266发送AT ,串口调试助手上显示收到OK,LCD上显示的却是“AT”
|