Aesthetics 发表于 2024-4-9 13:53:47

关于串口驱动的问题

static SemaphoreHandle_t g_UART2_TX_Semaphore;
static uint8_t g_uart2_rx_buf;
static QueueHandle_t g_xUART2_RX_Queue;

static SemaphoreHandle_t g_UART4_TX_Semaphore;
static uint8_t g_uart4_rx_buf;
static QueueHandle_t g_xUART4_RX_Queue;

void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart)
{
        if (huart == &huart2)
        {
                xSemaphoreGiveFromISR(g_UART2_TX_Semaphore, NULL);
        }
        if (huart == &huart4)
        {
                xSemaphoreGiveFromISR(g_UART4_TX_Semaphore, NULL);
        }
}


最近在参考代码学习rots,这个代码中,有一些回调函数和信号量和消息队列,如果我在bsp_uart_fifo中加入rtos中的消息队列和信号量,该怎么修改,还是说 只能按照官方给demo来做。尝试着改了几次,发现有点捋不清这里边的弯弯绕了。:'(

eric2013 发表于 2024-4-9 15:02:07

我们程序这里是直接在中断里面将数据存储到FIFO里面。

如果你用了RTOS的话,可以将我们这里存到FIFO里面的操作改成使用消息队列发送处理即可。
页: [1]
查看完整版本: 关于串口驱动的问题