单片机通信

来源:百度知道 编辑:UC知道 时间:2024/05/10 11:14:58
两台单片机单工通信,主机发送,从机接收并显示。因为主机每次发送一帧的数据,最大只能到0XFF。而我需要发送的数据是5位的。如何编程?思路。
串口通信的协议已经定了,一帧数据位数也是定的。
三楼四楼,你们想的都用过了,三楼的直接是对数理不通,我们所说的一位十进制数字,划为二进制,对应8位(bit)。那么五位数对应应是40bit。
四楼的实验过了,只是因为不准用握手信号,还有校验。因为通信并不一定正好同步。所以出错。

应该可以先把五位的变成8位的不就一样了吗..
好像是你没说清楚吧...
你说的是,5位...
并非是,5字节...
你说是,40BIT的话,那就是,40位了..
这样应该也是可以做的..
将它分按从高到低分为,5个字节,分别发送出去..
到时接收的时候,再组合起来...
这样应该就可以了.....

用2字节(也叫1字)的数据呗,能到65535呢,再不够就用4字节数据

reer

其实就用5个数分开发,然后再在接收端组合成相关的数字.

可以将五位数分成五份,每次传一份,占用一个字节数据的低四位,高四位作为地址码.
如果要发送24890
可发送0x02,0x14,0x28,0x39,0x40
这样可以解决同步问题.
如果要确保数据传送,应加校验码,因为只是做显示仪表,对控制过程影响不大,用一位累加和校验就可以了,如果校验结果不正确,就不去刷新显示,等下一次正确的结果送过来了再显示.
如果要发送24890,2+4+8+9+0=23,取个位数字3做校验.
可发送0x02,0x14,0x28,0x39,0x40,0x53,这就可以了.