谁有BCB串口收发编程(异步)的实例?给我一个急用,谢谢!

xjb258 2004-03-16 04:30:28
请发至 xjb258@163.com

并在下面留下你的大名。
...全文
265 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
chetian1999 2004-08-27
  • 打赏
  • 举报
回复
給我一個吧。謝謝。
vimingc@harbourring.com.hk
qqb112 2004-08-27
  • 打赏
  • 举报
回复
如果哪位兄弟想要相应的实现代码,请建个主题,送点分给俺吧:P。
物超所值。机不可失哟
qqb112 2004-08-27
  • 打赏
  • 举报
回复
#ifndef __SERIALPORT_H__
#define __SERIALPORT_H__

#define WM_COMM_BREAK_DETECTED WM_USER+1 // A break was detected on input.
#define WM_COMM_CTS_DETECTED WM_USER+2 // The CTS (clear-to-sennd) signal changed state.
#define WM_COMM_DSR_DETECTED WM_USER+3 // The DSR (data-set-reaady) signal changed state.
#define WM_COMM_ERR_DETECTED WM_USER+4 // A line-status error ooccurred. Line-status errors are CE_FRAME, CE_OVERRUN, and CE_RXPARITY.

#define WM_COMM_RING_DETECTED WM_USER+5 // A ring indicator was etec ted.
#define WM_COMM_RLSD_DETECTED WM_USER+6 // The RLSD (receive-lin-signal-detect) signal changed state.
#define WM_COMM_RXCHAR WM_USER+7 // A character ws received and placed in the input buffer.
#define WM_COMM_RXFLAG_DETECTED WM_USER+8 // The event character wsreceived and placed in the input buffer.
#define WM_COMM_TXEMPTY_DETECTED WM_USER+9 // The last character inthe output buffer was sent.
#define MAX_NUM 512
#define WM_REFLECT WM_USER+11
class TSerialPort
{
public:
// contruction and destruction
TSerialPort();
virtual ~TSerialPort();

// port initialisation
BOOL InitPort(TForm* pPortOwner, UINT portnr = 1, UINT baud = 9600,
char parity = 'N', UINT databits = 8, UINT stopsbits = 1, DWORD dwCommEvents = EV_RXCHAR|EV_CTS, UINT nBufferSize = 4096);

// start/stop comm watching
BOOL StartMonitoring();
BOOL RestartMonitoring();
BOOL StopMonitoring();

DWORD GetWriteBufferSize();
DWORD GetCommEvents();
DCB GetDCB();

void WriteToPort(char* string);
void __fastcall ShutDown();
void __fastcall ReInitial(int Port = 0,UINT baud=0,
char parity = 0, UINT databits = 0, UINT stopsbits = 0, DWORD dwCommEvents = 0, UINT nBufferSize = 0);

protected:
// protected memberfunctions
void ProcessErrorMessage(char* ErrorText);
static DWORD _stdcall CommThread(LPVOID pParam);
static void ReceiveChar(TSerialPort* port, COMSTAT comstat);
static void WriteChar(TSerialPort* port);

// thread
HANDLE m_HThread;

// synchronisation objects
CRITICAL_SECTION *m_csCommunicationSync;
BOOL m_bThreadAlive;

// handles
HANDLE m_hShutdownEvent;
HANDLE m_hComm;
HANDLE m_hWriteEvent;

// Event array.
// One element is used for each event. There are two event handles for each port.
// A Write event and a receive character event which is located in the overlapped structure (m_ov.hEvent).
// There is a general shutdown when the port is closed.
HANDLE m_hEventArray[3];

// structures
OVERLAPPED m_ov;
COMMTIMEOUTS m_CommTimeouts;
DCB m_dcb;

// owner window
TForm* m_pOwner;

// misc
UINT m_nPortNr;
char* m_szWriteBuffer;
DWORD m_dwCommEvents;
DWORD m_nWriteBufferSize;
private:
UINT m_nBoud;
char m_cPartity;
UINT m_nDataBits;
UINT m_StopBits;
};

#endif __SERIALPORT_H__


yjy1001 2004-08-27
  • 打赏
  • 举报
回复
串口通讯 其实就相当与文件操作
就几个简单API使用

自己写个TCOMM类封装下这些API就可以了
Summer1314 2004-06-16
  • 打赏
  • 举报
回复
我刚做完一个,用API写的。
hamzsy 2004-06-14
  • 打赏
  • 举报
回复
我是专门做这个的,一般是先用VC写好动态库再用DELPHI等调用
  • 打赏
  • 举报
回复
完全用 C++ Builder 写的,包含所有的源程序 (包括控件和例子)。
含有中文说明,有文本、二进制、文件收发、数据包、MODEM 的例子程序。
http://www.cppfans.com/d_vcl_files/yb_comm_133.asp
tccsdn 2004-05-14
  • 打赏
  • 举报
回复
给我一个啊tc163box@163.net
JedyWoody 2004-05-14
  • 打赏
  • 举报
回复
楼上,发出去了,注意查收
h98458 2004-05-13
  • 打赏
  • 举报
回复
可不可以给我一个,hrg520@qq.com
谢谢!
wangxiangsjz 2004-05-13
  • 打赏
  • 举报
回复
我有用SPComm控件作的例子,请与我Email联系。wangxiangsjz@sina.com
JedyWoody 2004-05-13
  • 打赏
  • 举报
回复
我已经发给你了,给分吧
xqueen 2004-05-11
  • 打赏
  • 举报
回复
正在做和工控机的串口通讯
我要二进制的
可不可以给我一个,xqueen_2003.student@sina.com
谢谢!
javagems 2004-05-11
  • 打赏
  • 举报
回复
能不能也给我一个。gaowenren@hotmail.com
谢谢!
rookieme 2004-04-29
  • 打赏
  • 举报
回复
文本还是二进制?
13571863167 2004-04-10
  • 打赏
  • 举报
回复
up

1,317

社区成员

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

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