纯C语言串口助手,C语言串口通信助手代码.docx

PAGE

PAGE # / 15

该程序全部由C写成没有C++更没用MFC

完全是自娱自乐给需要的人一个参考

#include "stdafx.h"

#include

#include "resource.h"

#include "MainDlg.h"

#include

#include

#include

HANDLE hComm;/用于获取串口打开函数的返回值(句柄或错误值) OVERLAPPED m_ov;

COMSTAT comstat;

DWORD m_dwCommEvents;

TCHAR cRecs[200],cSends[100]; 接//收字符串发送字符串

char j=0,*cCom; //接收用统计数据大小变量端口选择

BOOL WINAPI Main_Proc(HWND hWnd, UINT uMsg, WPARAM wParam,LPARAM lParam)

{

switch(uMsg)

{

HANDLE_MSG(hWnd, WM_INITDIALOG, Main_OnInitDialog);

HANDLE_MSG(hWnd, WM_COMMAND, Main_OnCommand);

HANDLE_MSG(hWnd,WM_CLOSE, Main_OnClose);

}

return FALSE;

}

/* 系统初始化函数 */

BOOL Main_OnInitDialog(HWND hwnd, HWND hwndFocus, LPARAMlParam)

{

HWND hwndCombo1=GetDlgItem(hwnd,IDC_COMBO1);

ComboBox_InsertString(hwndCombo1,-1,TEXT("COM1"));

ComboBox_InsertString(hwndCombo1,-1,TEXT("COM2"));

ComboBox_InsertString(hwndCombo1,-1,TEXT("COM3"));

ComboBox_InsertString(hwndCombo1,-1,TEXT("COM4"));

ComboBox_InsertString(hwndCombo1,-1,TEXT("COM5"));

ComboBox_SetCurSel(hwndCombo1,0);

void CALLBACK TimerProc (HWND hwnd, UINT message, UINT iTimerID,DWORD dwTime);

SetTimer(hwnd,1,1000,TimerProc);

return TRUE;

}

/* 监视串口错误时使用的函数 */

boolProcessErrorMessage(char* ErrorText)

char *Temp = new char[200];

LPVOID lpMsgBuf;

FormatMessage(

FORMAT_MESSAGE_ALLOCATE_BUFFER |

FORMAT_MESSAGE_FROM_SYSTEM,

NULL,

GetLastError(),

MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Defaultlanguage

(LPTSTR) &lpMsgBuf,

0,

NULL

);

sprintf(Temp, "WARNING: %s Failed with the following error:

\n%s\nPort: %d\n", (char*)ErrorText, lpMsgBuf, "com2");

MessageBox(NULL, Temp, "Application Error", MB_ICONSTOP);

LocalFree(lpMsgBuf);

delete[] Temp;

return true;

}

boolopenport(char *portname)// 打开串口

{

hComm = CreateFile(portname, //串 口号 “ comT “ cc调用方法:bool open;open=openport("com2");

GENERIC_READ | GENERIC_WRIT允许读写

0, //通讯设备必须以独占方式打开

0, // 无安全属性

OPEN_EXISTING,通讯设备已存在

FILE_FLAG_OVERLAPPED异步 I/O

0); //通讯设备不能用模板打开

if (hComm == INVALID_HANDLE_VALUE如/果被占用或是没有打开时返回的 是这个错误代码

{

Clo

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值