ASCII字符“ NUL”的值为0。是否可以通过串行线路发送此字符而不将其解释为未发送数据?
是的当然。字符的框架与其内容分开。没有理由将八位零从本质上解释为“没有数据发送”,这比充满零的磁盘扇区要多。
详细说明:在典型的异步串行中,您有一个起始位,然后是八个数据位,然后是一个停止位。您仍然会有八个数据位-它们恰好全为零。起始位和停止位告诉接收者“这是一个字符”。字符中的位恰好无关紧要。
如果接收程序碰巧将NUL解释为“无数据”,那是其业务,但这是应用程序层的问题。
例如,如果接收程序是终端仿真器,则它在收到NUL时可能什么也不做(因为这是大多数实际终端所做的)。串行端口API仍将注册NUL字符的接收并将其交给程序。终端仿真器决定了“哦,我就忽略它”。
有很多应用程序通过异步串行线路发送“二进制”数据,如果根本不发送或接收NUL,这些应用程序将失败。
有关更多信息,请参见https://en.wikipedia.org/wiki/Asynchronous_serial_communication
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句