FreeRTOS waiting flag in task
Hi, i have uart comm. task. Its priority is osPriorityRealtime(+3) in task i send datas with interrupt method and in txcallback i change the flag. in data_send im waiting for flag with while. But my program hanging on while. In debug it enteres
HAL_UART_TxCpltCallback function and sets flag to TRUE but data_send function still wait in while. When i changed
while(
flag_u8
== FALSE);
with osDelay(10); it works. Is it about rtos , task priorty or something like that?UINT8
flag_u8
= FALSE;void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart)
{ if(huart == &huart1) { flag_u8= TRUE; }}void data_send(uint8_t*
main_buffer
, test_t* test, uint16_t size){flag_u8
= FALSE; MX_USART1_UART_Init2(); //change baudrate to 90 HAL_UART_Transmit_IT(&huart1,test->test_buffer,1); while(flag_u8
== FALSE);
flag_u8
= FALSE; MX_USART1_UART_Init();//change baudrate to 250
HAL_UART_Transmit_IT(&huart1, main_buffer,size+1); while(flag_u8
== FALSE);}
#freertos #stm32-uart-interrupts #uart-callback