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_);//关闭

  • 相关阅读:
    Oracle插入特殊字符问题
    Oracle数据库中IN参数个数超过1000的问题
    解决tomcat 内存溢出问题
    IDEA 最新版本 破解教程(windows,mac皆可用)(新版本已失效)
    javascript将字符串中的多个空格替换为一个空格的正则实例
    删除一个表中重复的数据
    mac/linux 解决启动命令行出现declare问题
    iftop 安装以及相关参数及说明(转载自csdn)
    centos安装与卸载postgresql
    jquery实现自动补全邮箱地址
  • 原文地址:https://www.cnblogs.com/ahuo/p/606523.html
Copyright © 2011-2022 走看看