如何连续读取串口的信息
如何实现连续的读取串口数据,然后根据收到的数据来进行处理。比如程序一执行就开始接受串口数据,当有串口接到数据后就执行一段代码实现功能,当程序关闭就退出,这样只要程序开着就一直接收串口数据,然后作出处理,谢谢
[解决办法]
UnitMain.h
//---------------------------------------#ifndef UnitMainH#define UnitMainH//---------------------------------------#include <Classes.hpp>#include <Controls.hpp>#include <StdCtrls.hpp>#include <Forms.hpp>#include <Dialogs.hpp>#include <ComCtrls.hpp>#include "MSCommLib_OCX.h"#include <OleCtrls.hpp>//---------------------------------------class TFormMain : public TForm{__published: // IDE-managed Components TGroupBox *GroupBox1; TGroupBox *GroupBox2; TRichEdit *RichEdit1; TRichEdit *RichEdit2; TMSComm *MSComm1; void __fastcall FormCreate(TObject *Sender); void __fastcall MSComm1Comm(TObject *Sender); void __fastcall RichEdit1KeyPress(TObject *Sender, char &Key);private: // User declarations AnsiString MyInput;public: // User declarations __fastcall TFormMain(TComponent* Owner);protected:};//---------------------------------------extern PACKAGE TFormMain *FormMain;//---------------------------------------#endif
[解决办法]
HAIQIAN 我想你咯
呵呵
给楼主个思路
用BCB 的多线程模块 创建一个到N个线程 每个线程负责处理不同串口返回的数据
接受后 将数据在对应的线程中处理好 ,然后提交给主线程(也就是窗口啦)
然后显示出来 就可以啦 线程开启后 是一直FOR(;;)的哦 一直等待串口数据发送来就行了
一直让串口ReadFile 取到了 就处理 呵呵 当然如果串口返回数据太快 有没办法处理的情况
你就要采取丢包的方法咯 祝你好运气哈