
关于51多机通信的问题
请教一下高手,关于51多机通信问题,正常的多机通信要用到sm2位。但是我想自己定义个结构体,比如:typedefstruct{ucharnum;ucharTran_dat...
请教一下高手,关于51多机通信问题,正常的多机通信要用到sm2位。但是我想自己定义个结构体,比如:
typedef struct
{
uchar num;
uchar Tran_data;
}DATA;
单片机每次以此数据结构的大小为单位接收数据然后对num号进行对比来使用数据,请问这样可以实现多机通信么?这样通信有什么缺点么? 展开
typedef struct
{
uchar num;
uchar Tran_data;
}DATA;
单片机每次以此数据结构的大小为单位接收数据然后对num号进行对比来使用数据,请问这样可以实现多机通信么?这样通信有什么缺点么? 展开
1个回答
展开全部
多机通讯,应该有合适的通讯协议及物理端口承载。
数据头,校验不可少,保证数据的稳定可靠。
数据头,校验不可少,保证数据的稳定可靠。
更多追问追答
追问
您要是真懂就说具体点。。。
追答
你首先要告诉是我51单片机和51单片机之间的通讯么?
通讯用的是什么方式? I2C ?SPI ?还是URAT ?
不通的物理接口必然有不同的通讯协议。
就算定义私有协议也要考虑合理性、稳定性。
简单的一个结构体是难以保证数据稳定的。
首先你的数据结构内至少有一个帧格式 内部有帧头,如 55H AAH等,对方读取到该值后便表明有数据传输。 中间应该还有 本帧的长度字节、内部承载的数据部分,还有 CRC校验或者∑校验等等、帧尾(可选)。
你给的数据结构可以使用,但是稳定性欠缺。一旦物理接口出现干扰,便会误收数据。且容易把无用的数据(即使你未在传输数据,物理接口上也有电平状态,你的从机没有帧头检测机制的话,会把无用数据当做正常数据来采集)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询