vc++串行(用CSerial类编写上位机)单片机通信问题 求助

我用VC6.0的CSerial类编写了一个上位机,里面是调用汉字库HZK16的。下位机的通信协议已经写好了。现在上位机的应该如何调用了?上位机是调用汉字库,定义发送的数据... 我用VC6.0 的CSerial类编写了一个上位机,里面是调用汉字库HZK16的。 下位机 的通信协议已经写好了。现在上位机的应该如何调用了?上位机是调用汉字库,定义发送的数据类型还是用CString data []来定义吗??还是说汉字是用其他的类定义? 以下是我的下位机的程序。麻烦帮我帮帮我看下如何编写上位机的通信协议好吗?? 我想把收集到的汉字字模 的变量用VARIANT 来定义。整体应该如何了?

void UART()interrupt 4
{
uchar buffer,r; //缓存
EA=0;
if(RI)
{
RI=0; //清除中断标志
buffer=SBUF; //读取串口数据
switch (x)
{
case 0: //第一次数据
if(buffer=='S') //收到握手信号
{
x=1;
SBUF_byte('s');
//j=0;
//SBUF_byte(j);
}
break;
case 1:
if(buffer=='y') //判断第二个字节,为Y时亮LED,为C时写RAM
{ P1=!P1;
x=0;
SBUF_byte('y');}
if(buffer=='C')
{ a=0;
j=0;
x=2;}
if(buffer=='q')
{ x=3;}
break;
case 2:
if(buffer=='K'&&r<3) //为断开信号
r++;
else
r=0; //清除断开标志
wzimo[a]=buffer;
a++;
if(r>=3) //连续收到三个S标志说明发送完断开信号了
{
x=0;
zmdx=a-3; //保存收到的字节数
SBUF_byte(a);
wzimo[a+1]=0;
wzimo[a+2]=0;
wzimo[a+3]=0;
SBUF_byte('g'); //发送一个完成标志给上位机
j=1;
}
break;
case 3:
if(buffer=='A') //读出RAM的字节数,发送给上位机
SBUF_byte(zmdx);
x=0;
}
}
EA=1;
}
展开
 我来答
做而论道
高能答主

2009-11-30 · 把复杂的事情简单说给你听
知道大有可为答主
回答量:3.1万
采纳率:82%
帮助的人:8422万
展开全部
这个设计的思路是这样:

PC机,可以自发自收,在COM1、COM2之间,连接线路,可以使用“串口调试助手”软件。保证单个字节、多个字节连续、单向、互相、都能畅通无阻。
串口调试助手的作者,写了一本书,你试试看,通信的方法,写得很好的。

当PC机发、收成功之后,再和单片机进行互相通信的调试。

最后,再研究制定自己的通信协议。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式