1.修复串口驱动中断源检测错误。

This commit is contained in:
MacRsh
2023-10-15 14:14:52 +08:00
parent 7680356ccc
commit 989993c117
2 changed files with 9 additions and 9 deletions

View File

@@ -74,7 +74,7 @@ static mr_err_t drv_serial_configure(mr_serial_t serial, struct mr_serial_config
{
struct drv_uart_data *uart_data = (struct drv_uart_data *)serial->device.data;
uart_data->handle.Instance = uart_data->Instance;
uart_data->handle.Instance = uart_data->instance;
switch (config->data_bits)
{
@@ -168,7 +168,7 @@ static mr_err_t drv_serial_configure(mr_serial_t serial, struct mr_serial_config
return MR_ERR_GENERIC;
}
HAL_NVIC_SetPriority(uart_data->irq_type, 0, 0);
HAL_NVIC_SetPriority(uart_data->irq_type, 1, 0);
HAL_NVIC_EnableIRQ(uart_data->irq_type);
__HAL_UART_ENABLE_IT(&uart_data->handle, UART_IT_RXNE);
@@ -188,7 +188,7 @@ static void drv_serial_write(mr_serial_t serial, mr_uint8_t data)
return;
}
}
uart_data->Instance->DR = data;
uart_data->instance->DR = data;
}
static mr_uint8_t drv_serial_read(mr_serial_t serial)
@@ -204,7 +204,7 @@ static mr_uint8_t drv_serial_read(mr_serial_t serial)
return 0;
}
}
return uart_data->Instance->DR & 0xff;
return uart_data->instance->DR & 0xff;
}
static void drv_serial_start_tx(mr_serial_t serial)
@@ -225,16 +225,16 @@ static void drv_serial_isr(mr_serial_t serial)
{
struct drv_uart_data *uart_data = (struct drv_uart_data *)serial->device.data;
if (__HAL_UART_GET_IT_SOURCE(&uart_data->handle, UART_IT_RXNE) != RESET)
if (__HAL_UART_GET_FLAG(&uart_data->handle, UART_FLAG_RXNE) != RESET &&
__HAL_UART_GET_IT_SOURCE(&uart_data->handle, UART_IT_RXNE) != RESET)
{
mr_serial_device_isr(serial, MR_SERIAL_EVENT_RX_INT);
__HAL_UART_CLEAR_FLAG(&uart_data->handle, UART_FLAG_RXNE);
}
if (__HAL_UART_GET_IT_SOURCE(&uart_data->handle, UART_IT_TXE) != RESET)
if (__HAL_UART_GET_FLAG(&uart_data->handle, UART_FLAG_TXE) != RESET &&
__HAL_UART_GET_IT_SOURCE(&uart_data->handle, UART_IT_TXE) != RESET)
{
mr_serial_device_isr(serial, MR_SERIAL_EVENT_TX_INT);
__HAL_UART_CLEAR_FLAG(&uart_data->handle, UART_IT_TXE);
}
}

View File

@@ -24,7 +24,7 @@ struct drv_uart_data
const char *name;
UART_HandleTypeDef handle;
USART_TypeDef *Instance;
USART_TypeDef *instance;
IRQn_Type irq_type;
};