PC与多单片机通信程序,我自己定的协议 ,现在我的程序测试时 多个从机都返回数据!下面是我的程序,麻烦各位大侠看看,谢谢啦!
/**************************串口中断函数**************************/
/*函数原型:void serial_int() interrupt 4
/*函数功能:发送与接收数据
/******************************************************************/
void serial_int() interrupt 4
{ unsigned char m;
if(RI) //STX..ETX,SUM Rbuf里没有字头
{
RI=0;
m=SBUF;
if(last==STX && m==MyAddr)
{ Rptr=0;
}
if(Rptr<BufMax)
{ Rbuf[Rptr]=m; Rptr++;}//接收了校验位CRC
if(last==ETX)
{ RecvOk=1; }
last=m;
}
else
{
TI=0;
if(Tnum>0)
{
SBUF=Tbuf[Tptr];
if(++Tptr>=BufMax)
Tptr=0;
Tnum--;
}
}
}
主程序的部分:
if(RecvOk==1)
{
RecvOk=0;
if(Rbuf[0]==MyAddr)
{ CheckSUM();
if(sumOK==1)
{
ErrorCode=0;
shuju_chuli();
}
else if(sumOK==0)
{ ErrorCode=1;
Tbuf[0]=STX;
Tbuf[1]=Rbuf[0];
Tbuf[2]=ErrorCode;
Tbuf[3]=ETX;
sum=0;
for(a=0;a<4;a++)
sum+=Tbuf[a];
Tbuf[4]=sum;
Tbuf[5]=sum>>8;
Tptr=0;Tnum=6;
TI=1;
}
}
else
break;
}
共2条
1/1 1 跳转至页
多个单片机与PC机通讯是可以,但是这种方法个人觉得不稳定、不够完善
如果需要远距离传输的话,可以使用RS485
RS-485最大的通信距离约为1219M,最大传输速率为10Mb/S,传输速率与传输距离成反比,在100Kb/S的传输速率下,才可以达到最大的通信距离,如果需传输更长的距离,需要加485中继器。RS-485总线一般最大支持32个节点,如果使用特制的485芯片,可以达到128个或者256个节点,最大的可以支持到400个节点。
因RS-485接口具有良好的抗噪声干扰性,长的传输距离和多站能力等上述优点就使其成为首选的串行接口。 因为RS485接口组成的半双工网络,一般只需二根连线,所以RS485接口均采用屏蔽双绞线传输。 RS485接口连接器采用DB-9的9芯插头座,与智能终端RS485接口采用DB-9(孔),与键盘连接的键盘接口RS485采用DB-9(针)。
以上就是RS485的有点,它的应用也多
希望我的回答能带给楼主一点帮助。
如果需要远距离传输的话,可以使用RS485
RS-485最大的通信距离约为1219M,最大传输速率为10Mb/S,传输速率与传输距离成反比,在100Kb/S的传输速率下,才可以达到最大的通信距离,如果需传输更长的距离,需要加485中继器。RS-485总线一般最大支持32个节点,如果使用特制的485芯片,可以达到128个或者256个节点,最大的可以支持到400个节点。
因RS-485接口具有良好的抗噪声干扰性,长的传输距离和多站能力等上述优点就使其成为首选的串行接口。 因为RS485接口组成的半双工网络,一般只需二根连线,所以RS485接口均采用屏蔽双绞线传输。 RS485接口连接器采用DB-9的9芯插头座,与智能终端RS485接口采用DB-9(孔),与键盘连接的键盘接口RS485采用DB-9(针)。
以上就是RS485的有点,它的应用也多
希望我的回答能带给楼主一点帮助。
共2条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
vscode+cmake搭建雅特力AT32L021开发环境被打赏30分 | |
【换取逻辑分析仪】自制底板并驱动ArduinoNanoRP2040ConnectLCD扩展板被打赏47分 | |
【分享评测,赢取加热台】RISC-V GCC 内嵌汇编使用被打赏38分 | |
【换取逻辑分析仪】-基于ADI单片机MAX78000的简易MP3音乐播放器被打赏48分 | |
我想要一部加热台+树莓派PICO驱动AHT10被打赏38分 | |
【换取逻辑分析仪】-硬件SPI驱动OLED屏幕被打赏36分 | |
换逻辑分析仪+上下拉与多路选择器被打赏29分 | |
Let'sdo第3期任务合集被打赏50分 | |
换逻辑分析仪+Verilog三态门被打赏27分 | |
换逻辑分析仪+Verilog多输出门被打赏24分 |