zoukankan      html  css  js  c++  java
  • 以文件方式操作串口

    /////////////打开
    HANDLE handlePort_ = CreateFile("COM1",  // 端口设备: 默认 "COM1"
    GENERIC_READ | GENERIC_WRITE,       // 设备打开模式: 允许读写
    0,                                  // 不共享
    NULL,                               // 默认安全设置
    OPEN_EXISTING,                      // 打开方式:打开已经存在的端口
    0,                                  // 默认
    NULL);                           // 默认

    DCB config_,d;
    config_.BaudRate = 600;  // 波特率
    config_.StopBits = 1;  // 停止位
    config_.Parity = 0;      // 奇偶校验
    config_.ByteSize = 8;  // 数据位
    SetCommState(handlePort_,&config_);

    COMMTIMEOUTS comTimeOut;
      
    // 接收时,两字符间最大的时延
    comTimeOut.ReadIntervalTimeout = 3;

    // 读取每字节的超时
    comTimeOut.ReadTotalTimeoutMultiplier = 3;

    // 读串口数据的固定超时
    // 总超时 = ReadTotalTimeoutMultiplier * 字节数 + ReadTotalTimeoutConstant
    comTimeOut.ReadTotalTimeoutConstant = 2;

    // 写每字节的超时
    comTimeOut.WriteTotalTimeoutMultiplier = 3;

    // 写串口数据的固定超时
    comTimeOut.WriteTotalTimeoutConstant = 2;

    // 将超时参数写入设备控制

    SetCommTimeouts(handlePort_,&comTimeOut);
    char buf[64];
    LPOVERLAPPED ll;
    unsigned long length;
    if (////////////////////////////////////////////////////////////////发送
     WriteFile(handlePort_,     // 文件句柄
          buf,              // 数据缓冲区指针
          64,              // 字节数
       &length,NULL) == 0)          // 接收成功发送数据长度的指针
    {
          AfxMessageBox("Reading of serial communication has problem.");
        
    }
    CloseHandle(handlePort_);//关闭

  • 相关阅读:
    ThinkPHP5 动态生成图片缩略图
    2020年python学习进阶方向
    2020年一线大厂月薪35K的Python开发要求
    swoole扩展怎么用
    如何在PHP框架里把Traits使用起来
    php与Redis实现一个100万用户的投票项目,如何实现实时查看投票情况?
    PHP高并发和大流量的解决方案
    phper使用MySQL 针对千万级的大表要怎么优化?
    swoole加密可破解吗
    轻松玩转windows之redis实战
  • 原文地址:https://www.cnblogs.com/ahuo/p/606523.html
Copyright © 2011-2022 走看看