从单片机传数据给PC机,只有单字节的数据可以收到,双字节的收不到,求解~

dxqxiaoqiang 2005-08-03 03:02:56
PC机程序:
void __fastcall TForm1::Rparm() //查询参数
{//

int i,j,temp;
for(i=0;i<4;i++) //5-8 4 IRequle[4]
{
IRequle[i]=btFrame[i+5];
}
for(i=0;i<3;i++) //9-14 6 IRzero[3]
{
IRzero[i]=btFrame[2*i+9]*256+btFrame[2*i+10];
}
for(j=0;j<2;j++)
{
for(i=0;i<8;i++)//15-46 32 IRvalue[2][8]
{
IRvalue[j][i]=btFrame[16*j+2*i+15]*256+btFrame[16*j+2*i+16];
}
}
for(j=0;j<2;j++)
{
for(i=0;i<8;i++)//47-78 32 IRspan[2][8]
{
IRspan[j][i]=btFrame[16*j+2*i+47]*256+btFrame[16*j+2*i+48];
}
}
for(j=0;j<2;j++)
{
for(i=0;i<8;i++)//79-110 32 IRvalueC[2][8]
{
IRvalueC[j][i]=btFrame[16*j+2*i+79]*256+btFrame[16*j+2*i+80];
}
}
for(i=0;i<8;i++)//149-164 16 Zerovalue0[8]
{
Zerovalue[i]=btFrame[2*i+149]*256+btFrame[2*i+150];
}
for(i=0;i<5;i++)//165-169 5 Datspan0[5]
{
Datspan[i]=btFrame[i+165];
}
for(i=0;i<6;i++)//179-184 6 ECequle[6]
{
ECequle[i]=btFrame[2*i+179];
}
}
单片机程序:
Mod_32(unsigned char a,unsigned int dTemp)
{
ComSendBuf1[a]=dTemp/256;
ComSendBuf1[a+1]=dTemp%256;
}
void Rparm()//查询参数
{
unsigned char i,j;
for(i=0;i<4;i++) //5-8 4 IRequle[4]
{
ComSendBuf1[i+5]=IRequle[i];
}
for(i=0;i<3;i++) //9-14 6 IRzero[3]
{
Mod_32(2*i+9,IRzero[i]);
}
for(j=0;j<2;j++)
{
for(i=0;i<8;i++)//15-46 32 IRvalue[2][8]
{
Mod_32(16*j+2*i+15,IRvalue[j][i]);
}
}
for(j=0;j<2;j++)
{
for(i=0;i<8;i++)//47-78 32 IRspan[2][8]
{
Mod_32(16*j+2*i+47,IRspan[j][i]);
}
}
for(j=0;j<2;j++)
{
for(i=0;i<8;i++)//79-110 32 IRvalueC[2][8]
{
Mod_32(16*j+2*i+79,IRvalueC[j][i]);
}
}
for(i=0;i<8;i++)//149-164 16 Zerovalue0[8]
{
Mod_32(2*i+149,Zerovalue[i]);
}
for(i=0;i<5;i++)//165-169 5 Datspan0[5]
{
ComSendBuf1[i+165]=Datspan[i];
}
for(i=0;i<6;i++)//179-184 6 ECequle[6]
{
ComSendBuf1[2*i+179]=ECequle[i];
}
}
其中Datspan[5]、ECequle[6]、IRequle[4]三个数组可以正常读出来,而其他的数却读不出来,为什么?
可能是Mod_32(unsigned char a,unsigned int dTemp)函数出的错,但我在PC机上用这个程序模拟了一遍,却一点问题也没有,请高手指教,谢谢~
...全文
103 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
MiniStrong 2005-08-04
  • 打赏
  • 举报
回复
研究一下~
dxqxiaoqiang 2005-08-04
  • 打赏
  • 举报
回复
在线求人解答~~
dxqxiaoqiang 2005-08-04
  • 打赏
  • 举报
回复
是8位的,而且单字节超过128的也可以收到呀。
titan_ysl 2005-08-04
  • 打赏
  • 举报
回复
楼主是用串口通讯的吧,你的数据位如果是设的7位就会出现这个现象。
dxqxiaoqiang 2005-08-03
  • 打赏
  • 举报
回复
另贴见,也可到那里拿分:http://community.csdn.net/Expert/topic/4185/4185935.xml?temp=.4738275

1,317

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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