新手 要写一个PC控制LED显示数字和"FULL'的毕业程序

liyi1982 2005-04-26 12:34:01
各位高手,我需要大家的帮忙,



我写好的了LED的代码,但是我不知道怎么让我的电脑用RS232连到LED?意识就是说我不知道RS232的协议,听朋友说要用协议来送DATA



还有就是用WINSOCK来和我导师软件里的SOCKET里受到DATA,大家可以帮我一下吗?



S8 charindex[32] = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','P','H','L','U',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '};




struct packet_struct
{
U8 did,sid;
U8 data[4];
U8 chsh, chsl;
U8 rfu[10];
U8 chs;
U16 tlen;
U8 state;
}__attribute__((packed));



S8 getcharindex(S8 ch)
{
S16 i;
for(i=0;i<32;i++)
{
if(charindex==ch)
{
return(0x20+i);
};
}
return(0x3f);
};



S16 term_sendpacket(S8 *s)
{
struct packet_struct psr;
U8 * ptr, ch;
U16 i;
qtimer qt1;
//qprintf(send packet \n");
memset(&psr,0,sizeof(psr));
psr.did=0x80;
psr.sid=0x80;
memcpy(psr.data,s,4);
psr.chs=0;
for(i=0;i<4;i++)
psr.chs^=psr.data;
psr.chsh=0x30+((psr.chs>>4)&0x0f);
psr.chsl=0x30+((psr.chs)&0x0f);
psr.tlen=8;
ptr=(U8*)&psr;
qs485.send1ch(0x02);
qs485.send1ch(0x02);
qs485.send1ch(0x02);
for(i=0;i<(psr.tlen);i++)
{
ch=ptr;
qs485.send1ch(ch);
}
qs485.send1ch(0x02);
qs485.send1ch(0x02);
qt1.qdelay=(0.1);
// qt1.set(0.1);
// while(!qt1.timeout()) term_procpiob();
};



S16 term_sendlots(S16 lots)
{
S16 len1,i;
S8 s1[100],s2[100];
if(lots<=0)
memcpy(s2,"\x2f\x33\x32\x32",4);
else
{
memcpy(s2,"\x3f\x3f\x3f\x3f",4);



sprintf(s1,"%d",lots);
len1=strlen(s1);
for(i=0;i<len1;i++)
{
s2[3-i]=getcharindex(s1[len1-i-1]);
};
};
term_sendpacket(s2);
};


...全文
131 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
wosirius 2005-05-30
  • 打赏
  • 举报
回复
mark
xysl 2005-05-10
  • 打赏
  • 举报
回复
你找本,计算机接口的书来看就知道了。VC用MMcom控件是最好用的。
xift_2008 2005-05-04
  • 打赏
  • 举报
回复
我看你已经定义好了发送包packet_struct,然后加上包头包尾和
CRC校验码,发送给接收方,在接收方根据包头包尾截取一个完整
的数据包把数据部分提取出来处理就行了。
最好采用发送-应答方式,即等待接收发发送确认包后再发下一个
数据包。
oyljerry 2005-05-04
  • 打赏
  • 举报
回复
rs232中有个数据段用来发送和接收数据

2,643

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 硬件/系统
社区管理员
  • 硬件/系统社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧