UART CTS/RTS用于硬流控
假设两颗芯片A和B,其线路连接如下
A B
TX --> RX
RX <-- TX
RTS ---> CTS
CTS <--- RTS
当A要向B传输数据时,通过其的TX向B的RX进行发送,B将收入的数据先导入缓存,等累计到一定数据LEN_MAX后进行处理。假设此时B由于出现临时事件需要去处理,来不及处理这LEN_MAX个数据时,便希望A暂停发送等其处理完临时事件,再回来处理掉这LEN_MAX个数据再清空缓存,此时B便需将其RTS拉高,待A在其RTS上检测到高电平后,A便会暂停发送数据; B恢复正常后便将RTS重新拉低,待A在其RTS检测到后,便又继续开始的发送数据
反之B向A传输数据,亦然!
如要真实体检到,可以让芯片A通过UART无限发送数据,当芯片B拉高RTS时,A就会暂停发送,当芯片B拉低RTS时,A又会继续发送