worked on test board
This commit is contained in:
@ -276,45 +276,82 @@ void TIM2_IRQHandler(void)
|
||||
void USART1_IRQHandler(void)
|
||||
{
|
||||
/* USER CODE BEGIN USART1_IRQn 0 */
|
||||
volatile uint8_t temp;
|
||||
if(LL_USART_IsActiveFlag_RXNE(USART1) && LL_USART_IsEnabledIT_RXNE(USART1))
|
||||
|
||||
//----
|
||||
// volatile uint8_t temp;
|
||||
// if(LL_USART_IsActiveFlag_RXNE(USART1) && LL_USART_IsEnabledIT_RXNE(USART1))
|
||||
// {
|
||||
// UART_RxCpltCallback();
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// if(LL_USART_IsActiveFlag_ORE(USART1))
|
||||
// {
|
||||
// //temp = USART1->RDR;
|
||||
// LL_USART_ClearFlag_ORE(USART1);
|
||||
// temp+= LL_USART_ReceiveData8(USART1);
|
||||
// }
|
||||
// else if(LL_USART_IsActiveFlag_FE(USART1))
|
||||
// {
|
||||
// //(void) USART1->RDR;
|
||||
// //LL_USART_ClearFlag_FE(USART1);
|
||||
// temp+= LL_USART_ReceiveData8(USART1);
|
||||
// }
|
||||
// else if(LL_USART_IsActiveFlag_NE(USART1))
|
||||
// {
|
||||
// //(void) USART1->RDR;
|
||||
// LL_USART_ClearFlag_NE(USART1);
|
||||
// temp+= LL_USART_ReceiveData8(USART1);
|
||||
// }
|
||||
// else if(LL_USART_IsActiveFlag_PE(USART1))
|
||||
// {
|
||||
// //(void) USART1->RDR;
|
||||
// LL_USART_ClearFlag_PE(USART1);
|
||||
// temp+= LL_USART_ReceiveData8(USART1);
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// if(LL_USART_IsActiveFlag_TC(USART6) && LL_USART_IsEnabledIT_TC(USART6))
|
||||
// {
|
||||
// LL_USART_ClearFlag_TC(USART1);
|
||||
// //test_counter += 1;
|
||||
// //if(UART_transmission_busy == 1){
|
||||
// LL_USART_DisableIT_TC(USART1);
|
||||
// //UART_transmission_busy = 0;
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
//----
|
||||
|
||||
/* Любая ошибка приёма: снять ВСЕ флаги, выбросить битый байт, в парсер не пускать */
|
||||
if (LL_USART_IsActiveFlag_ORE(USART1) ||
|
||||
LL_USART_IsActiveFlag_FE(USART1) ||
|
||||
LL_USART_IsActiveFlag_NE(USART1) ||
|
||||
LL_USART_IsActiveFlag_PE(USART1))
|
||||
{
|
||||
UART_RxCpltCallback();
|
||||
LL_USART_ClearFlag_ORE(USART1);
|
||||
LL_USART_ClearFlag_FE(USART1);
|
||||
LL_USART_ClearFlag_NE(USART1);
|
||||
LL_USART_ClearFlag_PE(USART1);
|
||||
LL_USART_RequestRxDataFlush(USART1); // RXFRQ: сбросить RXNE, выкинуть байт из RDR
|
||||
UART_rec_incr = 0; // сбросить недособранную команду от глитча
|
||||
flg_tmt = 0;
|
||||
//temp = temp; // подавить warning
|
||||
return;
|
||||
}
|
||||
else
|
||||
|
||||
/* Нормальный приём — только чистые байты */
|
||||
if (LL_USART_IsActiveFlag_RXNE(USART1) && LL_USART_IsEnabledIT_RXNE(USART1))
|
||||
{
|
||||
if(LL_USART_IsActiveFlag_ORE(USART1))
|
||||
{
|
||||
//temp = USART1->RDR;
|
||||
temp+= LL_USART_ReceiveData8(USART1);
|
||||
}
|
||||
else if(LL_USART_IsActiveFlag_FE(USART1))
|
||||
{
|
||||
//(void) USART1->RDR;
|
||||
temp+= LL_USART_ReceiveData8(USART1);
|
||||
}
|
||||
else if(LL_USART_IsActiveFlag_NE(USART1))
|
||||
{
|
||||
//(void) USART1->RDR;
|
||||
temp+= LL_USART_ReceiveData8(USART1);
|
||||
}
|
||||
else if(LL_USART_IsActiveFlag_PE(USART1))
|
||||
{
|
||||
//(void) USART1->RDR;
|
||||
temp+= LL_USART_ReceiveData8(USART1);
|
||||
}
|
||||
else
|
||||
{
|
||||
if(LL_USART_IsActiveFlag_TC(USART6) && LL_USART_IsEnabledIT_TC(USART6))
|
||||
{
|
||||
LL_USART_ClearFlag_TC(USART1);
|
||||
//test_counter += 1;
|
||||
//if(UART_transmission_busy == 1){
|
||||
LL_USART_DisableIT_TC(USART1);
|
||||
//UART_transmission_busy = 0;
|
||||
}
|
||||
}
|
||||
UART_RxCpltCallback();
|
||||
}
|
||||
else if (LL_USART_IsActiveFlag_TC(USART1) && LL_USART_IsEnabledIT_TC(USART1))
|
||||
{
|
||||
LL_USART_ClearFlag_TC(USART1);
|
||||
LL_USART_DisableIT_TC(USART1);
|
||||
}
|
||||
//---
|
||||
|
||||
/* USER CODE END USART1_IRQn 0 */
|
||||
/* USER CODE BEGIN USART1_IRQn 1 */
|
||||
|
||||
Reference in New Issue
Block a user