2025-02-10 01:35 PM
Hi,
I have connected a MAX-M10M module to an STM32H7 MCU ( it's custom board) by UART port. I am able to send data to GPS module and also receive config data of it but not able to receive NMEA packets. I only receive the first byte and then the HAL_STATUS of my HAL_UART_RECEIVE function switches to TIMEOUT.( I am using MX CUBE for pin initialization). I have tried blocking mode, IT and DMA, no luck.
Any help would be highly appreciated.
2025-02-10 03:07 PM
While waiting for more useful responses, you can search here for help with your project:
https://www.upwork.com/services/search?q=stm32
2025-02-10 03:21 PM
Which H7?
What UART? What PINS?
What timeout are you setting? You can get noise, or overrun errors. You can lose data if inattentive as it keeps flowing.
Would be best to use the IT function, filling a buffer, or parsing lines of NMEA data
Here I used HAL to initialize, and then went more register level for interrupts and data handling
https://github.com/cturvey/RandomNinjaChef/blob/main/f746g_disco_gps.c
2025-02-10 03:43 PM
Let's check the GPS module to be sure it's sending NMEA packets.
Have you checked with oscilloscope to see if you are getting full NMEA packets?
Or try connecting a USB<>UART adapter to view what the GPS is sending.
If it is sending full packets, then start showing your code.
2025-02-10 05:03 PM
Forwarding the data stream can help for quick diagnostics as to what's happening.
https://github.com/cturvey/RandomNinjaChef/blob/main/f746g_disco_fwd.c
https://github.com/cturvey/RandomNinjaChef/blob/main/f411_usart_fwd.c
As I recollect the MAX-M10M outputs at 9600 8N1, other M10 devices are 38400 8N1