yangrufeng 发表于 2005-3-31 16:17:43

请教DELPHI中SPCOMM控件串口问题

我现在在用UART作串口通讯的时候发现个问题

我在程序中用单片机向PC机发一串数据,共31字节。

0x02,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x03,0x02,0x08,0x04

我是用字节发送函数发送的,

上位机用DELPHI编了个软件收不到全部数据,只有02 01 01 我想问是不是连续的0导致这样的

我把所以0改为1就收得到全部数据。不知道什么原因?

如何才能收到0?

notomaqi 发表于 2005-3-31 17:33:47

估计是你的Delphi程序的问题

yangrufeng 发表于 2005-3-31 18:23:26

我用的是SPCOMM串口控件,连接收一个0都不可以。

我设置断点,当收完数据后数组变量就是02 01 01 ..然后就乱掉了。

程序应该没问题啊,那0除外的怎么能完整的接收呢?

avrboy 发表于 2005-3-31 18:42:31

停止位, 波特率是否一樣??

你的單位機用什麼的晶振?串口通信最標準是7.3728M 的晶振!

HJJourAVR 发表于 2005-3-31 18:50:53

putchar?

printf?



概念----------C语言的字符串与字符



确保上位机的软件正确? 最好先用SSCOM等串口工具来测试。

dfgeoff 发表于 2005-3-31 19:56:19

你先用常用的串口调试工具测试一下,才好确认原因所在。

flylich 发表于 2005-3-31 21:03:02

兄弟,我和你用的一样,程序也是一会好一会坏。我的上位机程序在51芯片上的程序运行就没问题,可一到MEGA16上就乱。这辆天头都晕啦。

yangrufeng 发表于 2005-3-31 21:14:03

单片机什么的都是好的,我在其它的串口调试软件中试过。收到了数据。

在DELPHI中我用的是SPCOMM控件,我想问它是否把字节0给过滤掉了?

有人遇到过吗?

bucker 发表于 2005-4-1 13:17:55

你需要检查以下单片机的伯特律是否正确,特别是误差不可超过3%,如果其误差大,就可能出现开始通信正常,以后又出现错误的现象。

zjykx 发表于 2005-4-1 21:18:58

从现象看可以肯定是当成0结束字符串使用了,碰到0就结束了。

jackiezeng 发表于 2005-4-1 21:43:43

楼主大哥:

         您好,你可以把你这个程序做一个例子么?我都学delphi许多时候了,还是没有办法做上位机软件, 我现在连spcomm 都安装不了~!不知道怎么回事!

hotpower 发表于 2005-4-1 22:04:38

procedure TForm1.Comm1ReceiveData(Sender: TObject; Buffer: Pointer;

BufferLength: Word);

var

i: integer;

str: array of char;

begin

move(Buffer^, str, BufferLength);

if (BufferLength < 100) and (str = '$') and (str = #13) and(str = #10) then

begin

    GPSBuffers := '';

    for i := 0 to BufferLength - 1 do

    begin

      if str >= ' ' then

      GPSBuffers := GPSBuffers + str;

    end;

end;

end;

simon 发表于 2005-4-2 22:00:26

推荐个网站http://www.delphibbs.com/

或许可以解决问题。

qianwei 发表于 2005-5-9 11:08:14

如果不是程序问题,那你的SPCOMM的设置要处理,回屏闭某些数值等(0也是其中一种)。

knight_avr 发表于 2008-3-31 14:17:29

在 spcomm设置里面加上以下设置
          myComm.Inx_XonXoffFlow:=false;
          myComm.Outx_XonXoffFlow:=false;
          myComm.XonChar:=#0;
          myComm.XoffChar:=#0;

xiaorenren 发表于 2008-7-26 10:06:07

【14楼】 knight_avr
谢谢!你的提示

nico_jj 发表于 2013-4-11 17:59:11

{:sleepy:}
页: [1]
查看完整版本: 请教DELPHI中SPCOMM控件串口问题