C++串口通讯解决方案
这篇文章只是笔记性质,没有实际的原创内容,主要是做一下方案的备份。
串口通讯使用开源的 CSerialPort 类,我使用的是Windows版本分支:
//1.串口开启
if (m_SerialPort.InitPort(this->GetSafeHwnd(), SelPortNO)//串口号
{
m_SerialPort.StartMonitoring();//启动监听
}
//2.绑定消息响应函数
ON_MESSAGE(WM_COMM_RXSTR, &CtkrrfaceDlg::OnReceiveString)
//3.消息响应函数
LRESULT CtkrrfaceDlg::OnReceiveString(WPARAM str, LPARAM port)///接收消息响应函数
{
char dest[13];
//char des[13];
memcpy(dest,(char*)str,13*sizeof(char));//13为字符长度,需要修改
...
}
//4.如果要转换单字节和多字节接收,可以修改宏定义
#define IsReceiveString 1
ReceiveString 1多字符串接收(对应响应函数为WM_COMM_RXSTR),ReceiveString 0一个字符一个字符接收(对应响应函数为WM_COMM_RXCHAR)
//5.串口关闭函数
void OnClose()
{
// TODO: Add your message handler code here and/or call default
//comQR.StopMonitoring();//这个函数不需添加,会挂起线程(后面已经修复),直接调用ClosePort
if (comQR.IsOpen())
{
comQR.ClosePort();
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
2020-07-31 简单实用算法——字节位序反转