UART_RXFIFO_FULL_INT: 接收获得的数据多于 (rx_flow_thrhd_h3, rx_flow_thrhd) 指定的数据时触发。 (2)启用和禁用中断函数 调用uart_enable_intr_mask() 或 uart_disable_intr_mask() 能够分别启用或禁用特定中断。 (3)安装中断 uart_driver_install() 函数可以安装驱动程序的内部中断处理程序,用以管理 ...
SET_PERI_REG_MASK(UART_INT_ENA(uart_no), UART_RXFIFO_TOUT_INT_ENA);// UART_RXFIFO_FULL_...
接下来为串口中断设置中断处理函数,通过XScuGic_Connect函数进行设置,这里设置的串口中断处理函数为uart_intr_handler。XUartPs_SetInterruptMask函数用于设置UART的中断触发方式,函数输入的参数为XUARTPS_IXR_RXOVR,表示达到RxFIFO的触发等级时,开始触发中断,当然也可以设置成RxFIFO为满时触发中断或者为空时触发中断等。
同时 TxFIFO 使用 TFULL(满中断状态)用于表示当前 TxFIFO 已经写满,并且会阻止数据继续写入。如果此时继续执行写操作,那么会触发溢出,数据不会加载到 TxFIFO 中。RxFIFO 存储器接收来自接收移位寄存器的数据,当接收完数据后,RxFIFO 空标志信号同样变成无效的状态,直到所有的数据通过 APB 总线发送出去。RxFIFO 的满标...
清除中断寄存器的 接收 FULL 位system_os_post(uart_recvTaskPrio,0,0);// 3.向任务函数发送消息}// 接收超时中断 TOUTelseif(UART_RXFIFO_TOUT_INT_ST==(READ_PERI_REG(UART_INT_ST(uart_no))&UART_RXFIFO_TOUT_INT_ST)){uart_rx_intr_disable(UART0);// 1. 接收中断禁用,用于不再接受数据,因为...
LOCAL 无效 uart0_rx_intr_handler(void *para);/*** * FunctionName : uart_config...
从RxFIFO中读取数据; 重复步骤2直到FIFO空; 发生Rx超时中断时将其重置。 采用中断方法接收数据的顺序如下: 使能中断; 等待,直到RxFIFO中的数据数量达到触发等级或者发生超时; 从RxFIFO中读取数据; 重复步骤2和3,直到RxFIFO为空; ...
1、等待,直到RxFIFO中的数据数量达到触发等级;2、从RxFIFO中读取数据;3、重复步骤2直到FIFO空;4、...
UART_RXFIFO_FULL_INT: 接收获得的数据多于 (rx_flow_thrhd_h3, rx_flow_thrhd) 指定的数据时触发。 (2)启用和禁用中断函数 调用uart_enable_intr_mask() 或 uart_disable_intr_mask() 能够分别启用或禁用特定中断。 (3)安装中断 uart_driver_install() 函数可以安装驱动程序的内部中断处理程序,用以管理 ...
1、等待,直到RxFIFO中的数据数量达到触发等级;2、从RxFIFO中读取数据;3、重复步骤2直到FIFO空;4、...