串口网口16进制发送的和ASCII发送的区别
来源:互联网 发布:sql安装没反应 编辑:程序博客网 时间:2024/06/08 06:13
我们在工控软件中,会经常使用到网口和串口,去接受和发送数据。通常我们发送数据的模式有两种,一种16进制,一种是ASCII码。16进制的的经常会用来和仪器PLC等设备通讯。ACSII码是一种文本模式。当我们不点选16进制时,按文本模式发送。这是我们输入的文本区的内容是一个个字符。比如输入50 ,这时50为‘5’和‘0’两个字符。发送的时候会将字符‘5’的ASCII码和字符‘0’的ASCII码发送出去,即是0x35,0x30 。当我们按16进制发送50 时,这时50位一个数即0x50。这就是为什么按16进制发送的效率要高于ASCII码的效率。从中我们也可以看出计算机底层发送数据是一个个数。
当我们接受的时候,我们同样也是接受到一个的数。当我们接受到0x35,0x30.如果我们按ASCII接收的话,就会变成50 。如果我们按16进制接收的话就是0x35,0x30.得到两个数。
注意:串口和网口接收回来,当你用char 类型的buf去接收的时候,其实已经进行一次转换了。这是它的十进制范围是-128~127。如果我们要将其变成无符号的数就要用byte类型的buf去接收,或者用char接收,强制转化为unsigned char类型。这样的它的十进制范围就变成了0~255。这样你就可以用多个buf 组成16,32位等数据了。
最后 总结
计算机底层发送数据是一个个数。接收来之后,要我们自己按照自己的方式转换。
常见的转换的函数用 itoa strtoul strtol atoi atof。多个字节转化要使用移位,取反等操作。
- 串口网口16进制发送的和ASCII发送的区别
- 串口通信数据发送--字符发送和16进制发送--发送字节的间隔时间
- stm32串口发送16进制字符和16进制数的区别和具体实现方法
- 串口的Hex/AscII发送与显示
- 串口的Hex/AscII发送与显示
- 串口的Hex/AscII发送与显示
- 串口的Hex/AscII发送与显示
- 【串口通信】字符串发送与十六进制发送的区别
- 串口的发送
- MFC单文档之串口通讯实现16进制数据的发送和接收
- 串口发送数据——字符串发送与十六进制发送的区别
- 举例说明串口发送数据——字符串发送与十六进制发送的区别
- 举例说明串口发送数据——字符串发送与十六进制发送的区别
- 串口发送数据——字符串发送与十六进制发送的区别
- 串口(调试助手)发送数据——字符串发送与十六进制发送的区别
- 串口发送数据——字符串发送与十六进制发送的区别
- 串口发送数据——字符串发送与十六进制发送的区别
- 串口发送数据——字符串发送与十六进制发送的区别
- 安卓笔记6
- linux opencv2.4.13安装
- UVa 11300
- 安卓笔记7
- Splay tree
- 串口网口16进制发送的和ASCII发送的区别
- 生命倒计时-倒数9107日
- 重拾java基础(二十):网络通信总结
- javascript判断连续相同的字符
- UVa 11729
- UVa 11292
- CCF认证历年试题集
- shiro整合springmvc
- 学期复习1——DES与RSA的思考