VC++串口数据读取方法
VC++里搞串口通信,用MSComm 控件算是比较省心的一种方式了。拖个控件上对话框,调几个参数,数据的收发基本就能跑起来。像CommPort
、Settings
这些属性,改一下就能切换端口或调整波特率,直观。
MSComm 控件自带事件机制,配合OnComm
事件来监听串口消息,还挺方便。比如接收到数据就会自动触发,你只要在OnComm
里写好逻辑就行。适合想快速上手串口开发的同学。
啦,控件虽然简单,但如果你想要线程控制更强一点的方式,也可以考虑手动用CreateFile
搞定串口。就是代码多点,不过可控性强,适合对串口要求比较高的场景。
比如下面这段自定义方式的串口初始化,能让你对串口属性一清二楚:
HANDLE hComm = CreateFile("COM1", GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, NULL);
if (hComm == INVALID_HANDLE_VALUE) {
// 错误
}
DCB dcb;
GetCommState(hComm, &dcb);
dcb.BaudRate = CBR_4800;
dcb.Parity = NOPARITY;
dcb.DataBits = 8;
dcb.StopBits = ONESTOPBIT;
SetCommState(hComm, &dcb);
如果你只是做个小工具,MSComm 已经够用了,响应也快,代码也简单。如果你项目比较复杂,需要自己控制线程、收发精度啥的,那就推荐自己封装串口类了。
39KB
文件大小:
评论区