cancel
Showing results for 
Search instead for 
Did you mean: 

UART1 RAK3172 (STM32WLE5CCU6)

samuelbs
Associate II

 

Hello, I’m facing an issue using the RAK3172. In my project, UART1 is configured for debugging and LoRaWAN logs, while UART1 (PB6/PB7) is reserved for communication with the LC76G GPS module.

However, I'm unable to print any data from the GPS module to the monitor. So, I performed two steps to verify whether the module is actually working:

  1. I checked the current consumption using a multimeter;

  2. I soldered a wire directly to the module's TX pin and used a TTL converter to confirm that NMEA data is indeed being sent.

Based on that, I searched the forum and saw that others have experienced issues with UART1 on this module, but I couldn’t find a clear solution.

These are the two functions I’ve implemented so far, and I’m calling them during the LoRa initialization. I’d like to point out that they were used successfully in a previous project with an STM32L4, and everything worked fine there.

void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size)
{
if (huart == &huart1)
{
printf(gpsData.rxDataBuffer);
}
}

void GPS_reset(GPIO_TypeDef *GPIOx, uint16_t pin)
{
HAL_GPIO_WritePin(GPIOx, pin, RESET);
HAL_Delay(500); // datasheet = 100ms, but this seemed too short
HAL_GPIO_WritePin(GPIOx, pin, SET);
printf("RESET DONE\n");
}

 

1 REPLY 1
Karl Yamashita
Principal

Test the UART1 in loopback. Short the Tx to the Rx pins and send some data. You should be able to get calls to  HAL_UARTEx_RxEventCallback. If not, then you have some configurations to look at. Worse case, damaged peripheral.

I was told that if a devices starts to smoke, put the smoke back in. I guess I never got all the smoke because the device never worked afterwards.
Don't worry, I won't byte.
TimerCallback tutorial! | UART and DMA Idle tutorial!

If you find my solution useful, please click the Accept as Solution so others see the solution.