/****************************************************************************/ /** * * This functions sets the receive FIFO trigger level. The receive trigger * level specifies the number of bytes in the receive FIFO that cause a receive * data event (interrupt) to be generated. * * @param InstancePtr is a pointer to the XUartPs instance. * @param TriggerLevel contains the trigger level to set. * * @return None * * @note None. * *****************************************************************************/ void XUartPs_SetFifoThreshold(XUartPs *InstancePtr, u8 TriggerLevel) { u32 RtrigRegister; /* Assert validates the input arguments */ Xil_AssertVoid(InstancePtr != NULL); Xil_AssertVoid(TriggerLevel <= (u8)XUARTPS_RXWM_MASK); Xil_AssertVoid(InstancePtr->IsReady == XIL_COMPONENT_IS_READY); RtrigRegister = ((u32)TriggerLevel) & (u32)XUARTPS_RXWM_MASK; /* * Write the new value for the FIFO control register to it such that the * threshold is changed */ XUartPs_WriteReg(InstancePtr->Config.BaseAddress, XUARTPS_RXWM_OFFSET, RtrigRegister); }
这里 调用 XUartPs_SetFifoThreshold 函数 设置 寄存器 XUARTPS_RXWM_MASK , 根据 UG585 手册
这里设置 接收 FIFO,接收到 多少字节,触发 中断 ,我 默认设置为 0和设置1 ,效果一样 。
------------恢复内容结束------------