从STM32F401 MCU向ESP8266发送数据,并从ESP8266向MCU获取响应

从STM32F401 MCU向ESP8266发送数据,并从ESP8266向MCU获取响应,stm32,iot,esp8266,cortex-m,Stm32,Iot,Esp8266,Cortex M,我正在研制STM32f401核子板和ESP8266无线模块。我正在使用EclipseGCCARM工具链和cubeMx生成代码。我可以通过USART/UART DMA完美地传输和接收数据 现在我被ESP8266困住了。我无法将数据从MCU发送到ESP,也无法从ESP接收到MCU的响应。我已经测试了ESP模块通信,我可以通过USB通过AT命令连接到wifi,也可以通过插座连接在web上接收数据 我用PA9/PA10配置了USART1\U TX/USART1\U RX 提前谢谢。我不是专家,但我会尽力

我正在研制STM32f401核子板和ESP8266无线模块。我正在使用EclipseGCCARM工具链和cubeMx生成代码。我可以通过USART/UART DMA完美地传输和接收数据

现在我被ESP8266困住了。我无法将数据从MCU发送到ESP,也无法从ESP接收到MCU的响应。我已经测试了ESP模块通信,我可以通过USB通过AT命令连接到wifi,也可以通过插座连接在web上接收数据

我用PA9/PA10配置了USART1\U TX/USART1\U RX


提前谢谢。

我不是专家,但我会尽力帮助你

您使用的波特率是多少?它是否与ESP8266文档一致

检查电源和连接


因此,请记住AT命令区分大小写(它们必须仅用大写字母书写),并且必须以回车符和换行符终止,因此“/r/n”。

第一次检查时正确的波特率是匹配的

那么您是否在发送/接收方向上都使用dma? 对于dma rx,请注意,“完成”回调仅在缓冲区已满时调用。 如果您需要在结束“\n”“\n”时“中断”接收,那么您可以一次使用中断接收方法oen hatr,并在它到达回调时检查它,该回调会继续请求更多字节,直到没有完成为止。 或者,对于dma,继续轮询dma计数并分析当前rx缓冲区\r\n一些时间。完成后中止/停止dma

波特率为115200。我的问题是我可以发送AT命令并获得响应,但无法清除缓冲区