对CH432Q的CTS/RTS线的理解,不知正确与否?

CTS线:MODEM通知CH432Q此时MODEM是否可以接收CH432Q发来的新数据,指示CH432Q此时是否允许发送。

RTS线:CH432Q通知MODEM此时CH432Q是否可以接收MODEM发来的新数据,指示MODEM此时是否允许发送。

程序中:1若检测到CTS无效则不再向发送寄存器(THR)写数据

2若进入接收数据可用中断(接收到的字节数达到FIFO的触发点),此时无效RTS线。直到FIFO为空时,才有效RTS线

不知以上的理解和编程思路正确与否?

理解完全正确,程序上第2点是有硬件自动完成,设置MCR 寄存器的AFE和RTS 都为1就可以了.


好的,谢谢

关于程序中第1点:如果开启AFE时,向CH432Q发送寄存器(THR)写数据时可以只检测LSR的THRE位是否为1,若为1则一次性写入16个字节(开启FIFO),而不用检测此时CTS的状态,这样是否可以呢?


那样也可以,您可以直接在THRE为1的时候就写,那样速度就快点.


另外再问个问题,是关于DCD,DSR和DTR线的,我在阅读DEMO程序时仅在Modem_Ctrl中看到对于DSR和CTR的检测。

我想问下使用全功能Modem接口与Modem通信时,是不是可以忽略对DCD,DSR和DTR线的操作?只管CTS/RTS/TXD/RXD就可以了?


MODEM 输入变化的时候,会产生中断,清除中断的方法是直接读MSR的寄存器就可以了,最好别忽略.


呃,我想再问下,如果加入对DCD,DSR检测和对DTR线的操作,在Modem上电后是不是应该先有效DTR线,然后检测DSR线是否有效,那么对DCD线的检测应该放在什么时候呢?

还有就是DCD信号一般什么情况下会有效?是不是MCU与MODEM开始收发数据后就会产生?


关于UART的Modem信号说明: 输出信号:RTS/DTR 输入信号:CTS/DSR/RI/DCD 你可以控制RTS/DTR拉高拉低,根据双方通讯协议 你也可以检测CTS/DSR/RI/DCD信号状态,根据双方通讯协议


只有登录才能回复,可以选择微信账号登录