弄了一天也没搞定。c++ builder下用pcomm开发遇到的奇怪问题

mansea163 2011-08-24 10:24:10
放置一个按钮,点击按钮就用sio_write写字符串"abcdefghijklmnopqrstuvwxyz"
然后用sio_cnt_irq事件驱动的方式调用一个中断服务函数来读取串口。sio_read放在中断服务函数中。
问题是:整个字符串是分两次或更多次才读取到的。为什么不是一次。没有改变读写超时设置。
什么原因?
...全文
71 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zzbinfo 2011-08-25
  • 打赏
  • 举报
回复
每次发多少个跟波特率是没有关系得,不知道你得需求是什么,你看看这个控件有没有一个属性,是接收到一定长度得数据才触发这个回调函数得,或者你要在接收到数据后判断处理一下[Quote=引用 4 楼 mansea163 的回复:]
还有我发送a到z 26个字符串,波特率设置为50。放置一个定时timer,定时间隔为100mS,。每次发送字符串后,总是分4次读取到26个字符。分别是:
abcdefgh //8个
ijklmnop //8个
qrstuvwx //8个
yz //2个
把波特率改成110,1200,结果也是一样。
如果是因为串口写出需要时间的话,那么波特率50应该是够慢的了。
可是为什么读取到的总是……
[/Quote]
mansea163 2011-08-24
  • 打赏
  • 举报
回复
还有我发送a到z 26个字符串,波特率设置为50。放置一个定时timer,定时间隔为100mS,。每次发送字符串后,总是分4次读取到26个字符。分别是:
abcdefgh //8个
ijklmnop //8个
qrstuvwx //8个
yz //2个
把波特率改成110,1200,结果也是一样。
如果是因为串口写出需要时间的话,那么波特率50应该是够慢的了。
可是为什么读取到的总是每8个一组呢??按说timer的读取时刻是每次不一样的呀
mansea163 2011-08-24
  • 打赏
  • 举报
回复
还有pcomm应该都是异步(重叠)的
mansea163 2011-08-24
  • 打赏
  • 举报
回复
可是我使用的写串口函数sio_write的超时设置里面提到,如果采用默认超时设置的话,则 Block until all data sent out.
这应该就是说write函数会发送完所有数据才返回吧?

zzbinfo 2011-08-24
  • 打赏
  • 举报
回复
这个是很多做串口通讯都遇到过的问题,因为串口发数据也不是一次都发完的呀,你点发送,只是放到了缓冲区,接收的时候,只要有数据就接收,但接收到的数据长度却是不一定等于你发送的长度的。
C++ Builder与RS-232串行通信控制》配书光盘自述文件 1.光盘内容 Readme.txt 光盘说明文件 \EX 《C++ Builder与RS-232串行通信控制》书中各章范例所在的文件 夹,包含完整的工程范例程序代码。 \Other 此文件夹中包含以下内容:骅达科技公司授权提供的产品 PSIS仿真器的相关文件,四零四科技公司授权提供的PComm Lite软件的安 装程序PCOMM.exe,还有7520模块的说明文件等。 2.光盘运行环境 本光盘可以运行在Windows 操作系统下,包括98/2000/NT/XP。 范例程序的软件环境是C++ Builder 5。其中第4章及以后的范例程序的 运行,需要安装TComm组件,其安装过程参考书中4.3.1节的说明;第8章的范 例程序的运行,需要安装“\Other”文件夹下的PCOMM安装程序,安装和使用 方法参见书中附录A.3和第8章的有关说明。 3.光盘使用说明 在使用本光盘的范例文件时,要先把“\EX”文件夹下的内容复制到硬盘, 然后把各章范例文件的只读属性取消。范例文件的具体操作说明参见书中附 录A.1节的有关介绍。有的范例文件可能不能直接打开,需要在C++ Builder 的集成开发环境中利用菜单命令或工具按钮来打开范例文件。 4.其他 因为本书与实验联系紧密,需要一定的实验环境。如果不具备实验环境, 范例程序在单独上机运行时,其结果只能是象征性的,与书中介绍和实际 的实验结果是不一样的。有些章节的范例文件夹中附有本书繁体字版附书 盘所带的演示文档,有进行汉字简化,其中的运行结果应该与实际的实 验结果类似。由于光盘为引进版权产品,其内容与书之间可能存在个别不 一致的地方,敬请读者谅解。
C++ Builder与RS-232串行通信控制》配书光盘自述文件 1.光盘内容 Readme.txt 光盘说明文件 \EX 《C++ Builder与RS-232串行通信控制》书中各章范例所在的文件 夹,包含完整的工程范例程序代码。 \Other 此文件夹中包含以下内容:骅达科技公司授权提供的产品 PSIS仿真器的相关文件,四零四科技公司授权提供的PComm Lite软件的安 装程序PCOMM.exe,还有7520模块的说明文件等。 2.光盘运行环境 本光盘可以运行在Windows 操作系统下,包括98/2000/NT/XP。 范例程序的软件环境是C++ Builder 5。其中第4章及以后的范例程序的 运行,需要安装TComm组件,其安装过程参考书中4.3.1节的说明;第8章的范 例程序的运行,需要安装“\Other”文件夹下的PCOMM安装程序,安装和使用 方法参见书中附录A.3和第8章的有关说明。 3.光盘使用说明 在使用本光盘的范例文件时,要先把“\EX”文件夹下的内容复制到硬盘, 然后把各章范例文件的只读属性取消。范例文件的具体操作说明参见书中附 录A.1节的有关介绍。有的范例文件可能不能直接打开,需要在C++ Builder 的集成开发环境中利用菜单命令或工具按钮来打开范例文件。 4.其他 因为本书与实验联系紧密,需要一定的实验环境。如果不具备实验环境, 范例程序在单独上机运行时,其结果只能是象征性的,与书中介绍和实际 的实验结果是不一样的。有些章节的范例文件夹中附有本书繁体字版附书 盘所带的演示文档,有进行汉字简化,其中的运行结果应该与实际的实 验结果类似。由于光盘为引进版权产品,其内容与书之间可能存在个别不 一致的地方,敬请读者谅解。
C++ Builder与RS-232串行通信控制》配书光盘自述文件

1.光盘内容
Readme.txt 光盘说明文件
\EX 《C++ Builder与RS-232串行通信控制》书中各章范例所在的文件
夹,包含完整的工程范例程序代码。
\Other 此文件夹中包含以下内容:骅达科技公司授权提供的产品
PSIS仿真器的相关文件,四零四科技公司授权提供的PComm Lite软件的安
装程序PCOMM.exe,还有7520模块的说明文件等。

2.光盘运行环境
本光盘可以运行在Windows 操作系统下,包括98/2000/NT/XP。
范例程序的软件环境是C++ Builder 5。其中第4章及以后的范例程序的
运行,需要安装TComm组件,其安装过程参考书中4.3.1节的说明;第8章的范
例程序的运行,需要安装“\Other”文件夹下的PCOMM安装程序,安装和使用
方法参见书中附录A.3和第8章的有关说明。

3.光盘使用说明
在使用本光盘的范例文件时,要先把“\EX”文件夹下的内容复制到硬盘,
然后把各章范例文件的只读属性取消。范例文件的具体操作说明参见书中附
录A.1节的有关介绍。有的范例文件可能不能直接打开,需要在C++ Builder
的集成开发环境中利用菜单命令或工具按钮来打开范例文件。

4.其他
因为本书与实验联系紧密,需要一定的实验环境。如果不具备实验环境,
范例程序在单独上机运行时,其结果只能是象征性的,与书中介绍和实际
的实验结果是不一样的。有些章节的范例文件夹中附有本书繁体字版附书
盘所带的演示文档,有进行汉字简化,其中的运行结果应该与实际的实
验结果类似。由于光盘为引进版权产品,其内容与书之间可能存在个别不
一致的地方,敬请读者谅解。

1,316

社区成员

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

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