Chr*_*ris 8 c embedded serial-port communication control-characters
我正在开发一个嵌入式系统,而且我正在通过串口让它发送一定数量的数据.我缩小了它,发现如果消息中存在0x9B,它会破坏消息.
所以我在http://www.asciitable.com/上查找0x9b(155),它就丢失了!这不是一个奇怪的巧合!
任何想法,这是一个特殊的角色还是什么?
-edit-好的抱歉,伙计们,这不是造成这个的0x9b,它是一个0x11字符.哪个... drumroll ...是一个XON/XOFF角色.我在计算机上错误地将流控制作为xon/xoff,并且设备上没有流量控制!无论如何,谢谢你的帮助.
我猜这是一个 0x1B,即 ASCII 转义字符,在第 8 位位置有一个奇偶校验位(它来自串行通信等)。
从技术上讲,ASCII 集中的字符都小于或等于 0x7F , 0x80 到 0xFF 之间的字符是扩展ASCII的一部分。0x7F 以上代码的含义通常有所不同,允许使用大小恰好为一个字节的代码来处理多个字符集之一。不幸的是,此功能引入了歧义,因为人们需要知道正在使用的特定额外字符集(如果愿意,可以称为“代码页”)。
例如,问题中引用的“ASCII”表似乎没有任何与 0x9B 关联的字符,而许多其他扩展 ASCII 集将其用作“普通”/可显示字符(例如:>ISO-8859- 中的外观字符) 1、分号(类似于 c 的字符)与另一组等。
因此,0x9B 字符的可能含义可能取决于底层应用程序使用的[隐含]字符集。但正如之前所说,字符看起来更像是用 7 位(因此很可能是“纯”ASCII 字符)和一个奇偶校验位进行编码的。
| 归档时间: |
|
| 查看次数: |
2741 次 |
| 最近记录: |