Xilinx uartps库传入位掩码使能UART流控的内置函数选择问题
Xilinx UartPs 流控配置方法
别用XUartPs_SetOptions,这个函数只操作控制寄存器低16位的配置项,入参是u16,根本放不下你那个u20宽度的流控位掩码。
流控相关位在Modem控制寄存器域,直接调用XUartPs_SetModemControl传位掩码就能实现流控使能,注意点如下:
- 函数原型:
void XUartPs_SetModemControl(XUartPs *InstancePtr, u32 ModemCtrlMask) - 第二个入参是u32类型,完整容纳u20位掩码绰绰有余,不用做位截断处理。
- 禁用流控的时候别直接写固定值,先调
XUartPs_GetModemControl读出当前寄存器配置,清掉对应流控位之后再写回,避免冲掉其他Modem控制位的配置。 - 要是开启RTS/CTS自动硬件流控,置位自动流控使能位的时候记得同步配置RTS输出对应位,不然流控逻辑无法正常工作。
参考截图:
内容的提问来源于stack exchange,提问作者29belgrade29
相关产品推荐
相关产品推荐



