我正在使用STM32f401 Nucleo板和ESP8266 wifi模块。我正在使用Eclipse gcc-arm工具链和cubeMx来生成代码。我可以使用USART / UART DMA完美地传输和接收数据。
现在我被ESP8266困住了。我无法将数据从MCU发送到ESP,而且我没有得到ESP对MCU的响应。我已经测试了ESP模块的通信,我可以通过USB连接到带有AT命令的wifi,也可以通过socket连接在web上接收数据。
我将USART1_TX / USART1_RX配置为PA9 / PA10
提前致谢。
答案 0 :(得分:0)
我不是专家,但我会尽力帮助你。
您使用的是哪种波特率?它与ESP8266文档一致吗?
检查电源和连接。
因此,请记住AT命令区分大小写(它们必须只用大写字母书写)并且必须以回车符和换行符结束,所以" / r / n"。
答案 1 :(得分:0)
首先检查波特率是否匹配
那么你是否将dma用于tx / rx方向? 对于dma rx,请注意只有在填充完整缓冲区时才会调用“完成”回调。 如果您在结束“\ n”“\ n”时需要“中断”接收,那么您可以一次使用中断rx方法,并在它到达回调时检查它,继续询问一个字节,直到没有完成。 或者使用dma继续轮询dma计数并分析当前rx缓冲区的某些\ r \ n。完成后中止/停止dma。