我用vb做了一个串口通讯程序,接受到一个“E233”如何换算成温度23.3

来源:百度知道 编辑:UC知道 时间:2024/05/10 22:47:26
就是3999如何换算成199.9谢谢
上位机发指令1200CR
下位机回送所有温度值。每个四位BCD码,高位在先,第一位为标志B,CR(#0DH)结束。
例:发1200CR
送B0200032100543CR
表示:1# 20.0℃
2# 32.1℃
3# 54.3℃
我也是初次接触望多多指教!拜托,谢谢!!!

根据通信协议来确定数据处理.
补充:
按你说的BCD码接收不应出现E233数据,BCD码是一种8421编码,它将一个字节分两部分,高4位代表一个数字,低4位代表一个数字。每2个BCD码构成一字节,接收到每字节二进制数据需处理成16进制的字符形式。仅是由00-99的范围。而非00-FF范围。所以不应出现非0-9的BDC码.
请检查串口的SETTINGS设置是否与下位机一致.不一致会使接收出现乱码.
关于BCD码,请参阅:http://iask.sina.com.cn/b/8576002.html
如果接收数据正确,可用MID函数切割分别获得四位BCD码
直接转成数字除以10就得到3数据.

要转换,必须要弄清楚对照关系。
根据你上面说的:
E233=23.3
3999=199.9

我确实发现不了什么规律,程序也没法写。

如果你知道对照关系请在补充里说一下,如果没有,则多给一些对照好找到规律。