⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 d060.bmp.txt

📁 Visual C++通信编程实例
💻 TXT
字号:
OPEN_EXISTING,
FILE_FLAG_OVERLAPPED,
0);
// comm devices must use OPEN_EXISTING
// Async I/O
// template must be o for comm devices
    因为串口在打开句柄时,设置了异步(重叠)I/O操作方式,因此,必须对串口的超时
做出说明,定义超时的结构:
COMMTIMEOUTS m_CommTimeouts
再对超时变量进行设置:
    //set the timeout values
    m_CommTimeouts.ReadIntervalTimeout= 1000;
    m_CommTimeouts.ReadTotalTimeoutMultiplier= 1000;
    m_CommTimeouts.ReadTotalTimeoutConstant= 1000;
    m_CommTimeouts.WriteTotalTimeoutMultiplier= 1000;
    m_CommTimeouts.WriteTotalTimeoutConstant= 1000;
    2)建立串口通信事件。用异步方式操作串口必须定义OVERLAPPED结构,其中hEvent
必须自己建立.要定义两个OVERLAPPED结构,分别用于读和写,同时也必须建立两个
Event,把它们放入OVERLAPPED.hEvent,代码如下:
// create events
if (m_ov.hEvent != NULL)
ResetEvent(m_ov.hEvent);
           m_ov.hEvent = CreateEvent(NULL, TRUE, FALSE, NULL);
if (m_hWnteEvent != NULL)
ResetEvent(m_hWnteEvent);
m_hWnteEvent = CreateEvent(NULL, TRUE, FALSE, NULL);
if (m_hShutdownEvent != NULL)
ResetEvent(m_hShutdownEvent);
m_hShutdownEvent = CreateEvent(NULL, TRUE, FALSE, NULL);
3)初始化串口,设置串口参数,代码如下:
if (SetCommTimeouts(m_hComm, &m_CommTimeouts》
{
          if (SetCommMask(m_hComm, dwCommEvents》
          {
                    if (GetCommState(m_hComm, &m_dcb》
                    {
                                 m_dcb.fRtsControl = RTS_CONTROL_ENABLE;              // set RTS bit high
                              if (BuildCommDCB(szBaud, &m_dcb》
                              {
                                        if (SetCommState(m_hComm, &m_dcb》

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -