使用轮询方式发送:
1、检查TxFIFO是否为空。等待直到TxFIFO为空。
2、向TxFIFO写数据。如果要发送的数据大于64字节,则先将64字节写入。
3、写入剩下的字节。有两种方法:a.检查TxFIFO是否为非满,如果为非满,则写入一个字节,直到写完要发送的数据。b.检查TxFIFO是否为空,如果为空,则跳到2,直到写完要发送的数据。
使用中断方式发送:
1、禁用TxFIFO空中断。
2、向TxFIFO写数据。如果要发送的数据大于64字节,则先将64字节写入。
3、检查TxFIFO是否为非满,如果为非满,则写入一个字节,继续检查,如果非满则继续写入,否则进行下一步。
4、允许TxFIFO空中断。
5、等待空中断。中断产生后跳到1。
使用轮询方式接收:
1、等待直到RxFIFO填充到某个程度,即trigger level,或者TIMEOUT。(TIMEOUT用于在一定时间内RxFIFO内数据少于trigger level时也能将数据读出)
2、从RxFIFO中读数据,直到RxFIFO空。
3、如果TIMEOUT中断状态置位,则清除该置位。
使用中断方式接收:
1、允许中断。
2、RxFIFO填充到trigger level或者TIMEOUT时触发中断。
3、从RxFIFO中读数据。
4、重复2、3直到RxFIFO空。
5、如果中断状态置位,则清除该置位。trigger level中断和TIMEOUT中断。
u32 XUartPs_Send(XUartPs *InstancePtr, u8 *Buff