串口通讯问题,读串口?(200分)

  • 主题发起人 主题发起人 sunnysheng
  • 开始时间 开始时间
S

sunnysheng

Unregistered / Unconfirmed
GUEST, unregistred user!
我看了网上好多的利用线程通讯的文章,就是看不懂线程是怎样工作的?
用ReadFile()函数读串口是一个字符一个字符的接收的吗? 还是,一次性读设备缓冲区中的内容的.
请教高手!!!
 
根据你调用参数中的长度和缓冲区中的数据多少
 
我编的串口接收程序,总是接收的乱七八糟的字符,只有在打开其它现成的串口调试工具读过
一遍后,才能使用我编的程序读,我想是因为没有清空缓冲区中的内容,或是其它的原因,但我
实在不知道该怎样做.
 
是不是没有设置波特率数据位的缘故呢
 
波特率9600 数据位8 停止位1 校验位none 这些串口初始化我都做了,我在其它程序读过后
就能显示该显示的字符了.
 
除了这些以外还有其他参数,DCB结构要看一下
 
spcomm可以啊,收到的内容需要进行转换后应能看到
 
照一个控件就都解决拉
 
spcomm有原码的,你看看人家是怎么做的。
系统的串口缓冲区只有一个字节的。
 
我也想知道
 
是不是漏了这步?
SetupComm (handleComm, 2048, 1024);
 
波特率、数据位、停止位、校验位上下位机要一样才能准确接收。
 
to Cook :
系统的缓冲区绝对不至一个字节。
to:楼主,
把你读串口的哪几段代码贴出来。
我看看。
 
我一般用MSCOMM控件,对于你的问题或许可以解决.
你可以设置好Settings 好后,用
送出你的字符String
mscomm1.outbufferlength:=0;
Mscomm1.output(string);
Mscomm1.inbufferlength:=0
接受设备应答值
do
memo1.lines.add(mscomm1.input);
until Mscomm1.inbufferlength=0
 
后退
顶部