VS2017-MFC基于CSerialPort类串口通信

VS2017-MFC基于CSerialPort类串口通信

仅供自己学习
因为不满我发的第一篇博客里的Mscomm控件导入的MFC串口通信只能在X86下运行,于是我又捯饬了一下,弄了一个新的通信方法

1.在VS2017环境下创建基于对话框的MFC应用程序

在这里插入图片描述

这是最终的MFC界面,编辑过程如下:

1. 1设置控件属性

最上面的ComboBox的ID设为IDC_COMBO_PORT_Nr
下面的ComboBox的ID设为IDC_COMBO_BAUDRATE
中间Button1的Caption为打开串口、ID为IDC_BUTTON_OPEN_CLOSE
下面Button2的Caption为发送、ID为IDC_BUTTON_SEND
接收区的编辑框的ID为IDC_ReceiveEdit
发送区的编辑框的ID为IDC_SendEdit

1.2为控件添加变量

  1. 给最上面ComboBox控件添加变量,右击添加变量,名称为m_PortNr
    在这里插入图片描述
  2. 给下面ComboBox控件添加变量,右击添加变量,名称为m_BaudRate,图片类似同上
  3. 给“打开串口”这个控件添加变量,右击添加变量,名称为m_OpenCloseCtrl
    在这里插入图片描述
  4. 给发送区的编辑框添加变量,右击添加变量,名称为m_Send
    在这里插入图片描述
  5. 同理给接收区的编辑框添加变量,右击添加变量,名称为m_ReceiveCtrl

1.3为控件添加消息处理函数

  1. 给控件“打开串口”添加消息处理函数,右击添加函数:
    在这里插入图片描述
    点击编辑代码, 在CserialcommunicationDlg::OnBnClickedButtonOpenClose()中添加如下代码
void CserialcommunicationDlg::OnBnClickedButtonOpenClose()
{
   
	// TODO: 在此添加控件通知处理程序代码
	//GetDlgItem(IDC_SendEdit)->SetFocus();
	CString temp;
	m_OpenCloseCtrl.GetWindowText(temp);///获取按钮的文本
	UpdateData(true);
	if (temp == _T("关闭串口"))///表示点击后是"关闭串口",也就是已经关闭了串口
	{
   
		m_SerialPort.ClosePort();
		m_OpenCloseCtrl.SetWindowText(_T("打开串口"));///设置按钮文字为"打开串口"
	}
	///打开串口操作
	else if (m_PortNr.GetCount() > 0)///当前列表的内容个数
	{
   

		int SelPortNO, SelBaudRate;
		UpdateData(true);
		m_PortNr.GetWindowText(temp);///CString temp
		temp.Delete(0, 3);
		SelPortNO = _tstoi(temp);

		m_BaudRate.GetWindowText(temp);
		S
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值