51与PC串口通讯时,readfile()不能读取,用ClearCommError()得到的cs.cbInQue老是为0...

wz 2007-05-27 10:27:30

例如要发送“MCS-51”是‘M’、‘C’、...这样一个字符一个字符发呢,还是“MCS-51”一起串出去呢,如果是一起的话,如何得到其字符数

以下是部分测试代码:
//-----------------上位机接收代码--------------------------------
void __fastcall TForm1::Button4Click(TObject *Sender)
{
String Temp;
char inbuff[1024];
DWORD nBytesRead, dwEvent, dwError;
COMSTAT cs;

ClearCommError(hComm,&dwError,&cs); //取得状态

if (cs.cbInQue > sizeof(inbuff)) // 数据是否大于我们所准备的缓冲区
{
PurgeComm(hComm, PURGE_RXCLEAR); // 清除通信端口数据
return;
}
ReadFile(hComm, inbuff,cs.cbInQue,&nBytesRead,NULL); // 接收通信端口的数据
//readfile()不能读取,用ClearCommError()得到的cs.cbInQue老是为0...

inbuff[cs.cbInQue]= '\0';//数组中的字符串结尾处补上零字符

mReceive->Text = inbuff;// 将数据显示于Memo1 上

}
//------------------------------------------------------------------

//-----------------下位机发送代码--------------------------------

trdata[7]={‘M’、‘C’、...、0x00}
main()
{
while(1)
{
if(trdata[i]!=0x00)
{
SBUF=trdata[i];
while(TI==0);
delay(12500); //此处是否需要延时?
TI=0;
}

}

//---------------------------------------------------------------
另:单片机发送后是否需要延时等待?
...全文
966 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
wz 2007-07-09
  • 打赏
  • 举报
回复
揭贴
cqllzp 2007-06-14
  • 打赏
  • 举报
回复
你跳到中断里面去了。。。
wz 2007-06-08
  • 打赏
  • 举报
回复
哦,我漏了,源程序里有的...
进行下位机程序断点跟踪:
while(TI==0);//此处无法跳出TI不置位!
上面SBUF内容为0xFF(255);

什么原因啊 ,xdjm?555
captive007 2007-06-01
  • 打赏
  • 举报
回复
怎么你下位机一直只发送字符M哦 i没有增加!“MCS-51”一起串出去 也是一个字符一个字符的发送的,

trdata[7]={‘M’、‘C’、...、0x00}
main()
{ i=0;

while(1)
{
if(trdata[i]==0x00)
{ delay(12500); //发送完一组数据后延时
i=0;
}
SBUF=trdata[i];
while(TI==0);
TI=0;
i++;
}
captive007 2007-06-01
  • 打赏
  • 举报
回复
不用延时!!
wz 2007-05-31
  • 打赏
  • 举报
回复
非常感谢楼上两位的回复!

可是现在主要是上机PC如何确定其接收字符数,难道设定为1,每次只接收一个字符?
但是即使这样也不能象想象的'M'

在下位机发送端 发送后加入延时?!(不知道MAX232转换时间得多久)

总之,用示波器可以在DB9_2PIN看到波形,但就是电脑接收不到!...
lbing7 2007-05-30
  • 打赏
  • 举报
回复
从上层一点讲,一般是一帧一个字节

从底层一点讲,一次传一位

...................................
基本上可以说是:一次发一个字符

这么理解也没有大问题
i_love_pc 2007-05-27
  • 打赏
  • 举报
回复
不懂单片机。
用串口工具测试一下

27,375

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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