2016-03-15 121 views
0

我正在使用STM32f401 Nucleo板和ESP8266 wifi模塊。我使用Eclipse gcc-arm工具鏈和cubeMx生成代碼。我可以使用USART/UART DMA完美地傳輸和接收數據。將數據從STM32F401 MCU發送到ESP8266,並獲得ESP8266對MCU的響應

現在我被困在ESP8266。我無法將數據從MCU發送到ESP,也沒有從ESP到MCU的響應。我已經測試了ESP模塊的通訊,我可以通過USB連接到AT命令的WiFi,也可以通過套接字連接在網絡上接收數據。

我預先配置USART1_TX/USART1_RX與PA9/PA10

感謝。

回答

0

我不是專家,但我會盡力幫助你。

您使用哪種波特率?它是否與ESP8266文檔一致?

檢查電源和連接。因此,請記住AT命令區分大小寫(它們必須用大寫字母來寫),並且它們必須以回車符和換行符結束,所以「/ r/n」。

+0

波特率是#115200。我的問題是我可以發送AT命令並獲取響應,但無法清除緩衝區 – sukanta

0

這是正確的,在第一次檢查波特率是匹配的

然後你使用DMA,用於TX/RX方向? 對於dma rx請注意,只有在完整緩衝區將被填充時纔會調用「完成」回調。 如果你需要結束「\ n」「\ n」來斷開接收,那麼你可以一次使用中斷rx方法,並在它回到回調中時檢查它,繼續詢問一個字節,直到不再完成。 或者,使用dma繼續輪詢dma計數並分析當前rx緩衝區的某些\ r \ n。中止/完成後停止dma。