GPS NMEA Library for stm32 LL
nmea_t
.nmea_callback()
in usart interrupt.nmea_config.h
.nmea_init()
.nmea_loop()
in infinit loop.#include "nmea.h"
nmea_t gps;
int main()
{
...
}
void task_nmea(void const * argument)
{
nmea_init(&gps, USART1, 1024);
while (1)
{
nmea_loop(&gps);
osDelay(1);
}
}
void task_other(void const * argument)
{
uint8_t time_h;
for(;;)
{
if (nmea_available(&gps))
{
nmea_gnss_time_h(&gps, &time_h);
nmea_available_reset(&gps);
}
osDelay(1);
}
}
in interrupt file
#include "nmea.h"
extern nmea_t gps;
void USART1_IRQHandler(void)
{
/* USER CODE BEGIN USART1_IRQn 0 */
nmea_callback(&gps);
/* USER CODE END USART1_IRQn 0 */
/* USER CODE BEGIN USART1_IRQn 1 */
/* USER CODE END USART1_IRQn 1 */
}