STM32U5A9J-DK / en.x-cube-gnss1
Hello dear community,
I'm interested in the en.x-cube-gnss1 middleware package as I'm developping a solution based on a custom GPS module.
For me, this ST package is a good starting point to write my own package. More over, I would want to use it with Azure RTOS.
So,
In a first attempt, I configured a sort of "generic" project around the STM32U5A9J-DK / en.x-cube-gnss1 and generate the code to see how it works. In my case, the GPS module is wired to STM32 thought LPUART1
As I understood, when starting the app creates 3 threads:
190: ret = tx_thread_create(&teseoConsumerTaskHandle, "TeseoConsumerTask", TeseoConsumerTask, 0,
211: ret = tx_thread_create(&backgroundTaskHandle, "BackgroundTask", BackgroundTask, 0,
231: ret = tx_thread_create(&consoleParseTaskHandle, "ConsoleParseTask", ConsoleParseTask, 0,
In a trial purpose, I just added one extra menu in the CLI (located in /GNSS/App/app_gnss.c)
static void AppCmdProcess(char *com) to have the hability to send one command manually to the GPS. So on the terminal it looks like:
Extra menu option is "20", which permits to type manually the command to be sent to the GPS through LPUART1
Basically, it just uses this function:
GNSS_DATA_SendCommand((uint8_t *)com);where the *com is the entered string that comes from the CLI. Then, datas are placed by Azure in a queue to be
finally sent by BSP_LPUART1_Send_IT :
int32_t BSP_LPUART1_Send_IT(uint16_t DevAddr, uint8_t *pData, uint16_t Length)
{
int32_t ret = BSP_ERROR_BUS_FAILURE;
UNUSED(DevAddr);
if(HAL_UART_Transmit_IT(&hlpuart1, (uint8_t *)pData, Length) == HAL_OK)
{
ret = BSP_ERROR_NONE;
}
else
{
ret = BSP_ERROR_PERIPH_FAILURE;
}
return ret;
}
But unfortunately, nothing happens physically, PG7 output (LPUART1_TX) stays always high.
However,
if I send datas with "BSP_LPUART1_Send" function soon after choosing the right option in the menu, instead of using the intented function "GNSS_DATA_SendCommand" it works as I would espect. But this isn't very clean in the whole Azure system.
Can you help me please ?
Thanks a lot in advance.
