栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

c++ builder Api 串口 demo 发送数据

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

c++ builder Api 串口 demo 发送数据

//调试通过

#include
#include
#include
using namespace std;
HANDLE hComm;
bool InitSerialPort()
{
    DCB dcb;
    String ComNo ="COM1"; //串口(COM1) 通信初始化
    hComm =CreateFile (ComNo.c_str(),GENERIC_READ |GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,0);
    if(hComm==INVALID_HANDLE_VALUE)
    //如果通信端口未打开
    {cout<<"打开通信端口错误!!"<         return false;
    }
    //将 dcb 地址传入,以取得通信参数
    GetCommState(hComm,&dcb);
    //将 dcb 地址传入,以取得通信参数
    dcb.BaudRate =CBR_9600; //设置波特率为 9600
    dcb.ByteSize =8; //字节为 8 位
    dcb.Parity =NOPARITY; //校验位为 None
    dcb.StopBits =ONESTOPBIT; //停止们为 1
    //通信端口设置
    if(! SetCommState(hComm,&dcb)) //设置通信端口状态
    {cout<<"通信端口设置错误!!! "<     CloseHandle(hComm);
    return false;
    }
    return true;
}

bool SendData()

{
    char Data[50]={0} ;
    unsigned long lnb ,nBS;
    if (hComm==0) return false; //检查 Handle 值
    Data[0]='h';
    Data[1]='e';
    Data[2]='l';
    Data[3]='l';
    Data[4]='o';
    //cout<     nBS=strlen(Data);
return WriteFile(hComm, Data,nBS,&lnb,NULL);
}

void ReceiveData()

{     char buff[512]={0};
    DWORD nBytesRead,dwEvent,dwError;
    COMSTAT cst;
    ClearCommError(hComm,&dwError,&cst); //读取通信端口状态
    if (cst.cbInQue>sizeof(buff)) //数据长度是否大于缓冲区大小
    {    PurgeComm(hComm,PURGE_RXCLEAR);
        //清除通信端口数据
        return;
    }
    ReadFile(hComm,buff,cst.cbInQue ,&nBytesRead,NULL);
    cout<

}
int _tmain(int argc, _TCHAR* argv[])
{
    if (InitSerialPort())
    {
       std::cout<        //Sleep(5000);//延时,给另一个串口给足时间,手动发数据
       //ReceiveData();//接受数据,并显示到屏幕上
       CloseHandle(hComm);
    }
    system("pause");
    return 0;
}

//参考文章:

//《C++ Builder 中串口通信的实现》-张捍卫, 韦鹏宽 ( 海军蚌埠士官学校, 安徽 蚌埠 233012

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/738443.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号