夕阳无限好05年:vb和单片机通讯

来源:百度文库 编辑:高考问答 时间:2024/05/05 22:40:33
1。我在vb和单片机通讯时出现的问题是:单片机显示数据和我发送的数据不同,单片机里的数据格式是 16进制的?我改怎么转换?
2。我一个界面有很多组数据要接受和传送,我vb的程序怎么写啊?
我是单机的,就是vb直接和单片机通讯 9600 n 8 1 的格式
写进去的一个数据后 显示数和我写的数不同,那我怎么用这个数据类型啊 ?
还有就是,温度和重量的 我怎么区分啊 ?

首先看你两方面的格式是不是一样的,就是帧的长度,一般的为11bit

另外看看你的波特率是否一样

如果你单片机的是HEX值,则在VB中应该为bin二进制收发模式
---------------------------------
数据多的话,就应该有个简单的通讯协议,如比如说03的代码是读,06的代码是写就知道是温度的数据了。

又或者a1是温度的,a2是重量的,自己可以随意了,

你的是单机的还是多机的哟
-------------------------------------------
补充如下:
如下格式:前导码(01) 命令码(03) 类别码(A1) 数据 校验码(VC)码 结束码

校验可以用LRC或者是CRC,直接用异或也行。

通过上面的格式,你可以在PC中或者是单片机做一个解码程序。如果识别类别码是A1时间,那就是温度了。其他类似

如果你发的是11bit的话,可以留一位做地址和数据的识别。

或者你看看modbus中的RTU协议。

显示数不同,有两方面
1、你的单片机的LED代码换是否正常。
2、你的PC发送的数据单片机接收不对。

建议你先用仿真器虚拟一下,看看收到是什么

不知道.