MSComm串行通讯控件设置 串口、波特率等参数方法

 

一.想一进入程序,有默认的串口参数设置:

 

1.把参数值设定死

OnInitDialog()函数里添加:

if (m_ctrlComm.GetPortOpen())

m_ctrlComm.SetPortOpen(FALSE);

m_ctrlComm.SetCommPort(1); // 选择com1

if (!m_ctrlComm.GetPortOpen())

m_ctrlComm.SetPortOpen(TRUE); // 打开串口

else

AfxMessageBox("cannot open serial port");

m_ctrlComm.SetSettings("9600, n, 8, 1"); // 波特率9600,无校验,8个数据位,1个停止位

m_ctrlComm.SetInputMode(1);  // 1表示以二进制方式检取数据

m_ctrlComm.SetRThreshold(1);  // 参数为1,表示每当串口接收缓冲区中有对于或等于一个字符时,将引发一个接收数据的OnComm事件

m_ctrlComm.SetInputLen(0);  // 设置当前接收区数据长度为0

m_ctrlComm.GetInput();  // 先预读缓冲区以清除残留数据

 

2. COMBO BOX下拉框选择串口、波特率

m_cbPortSelect.ResetContent();

m_cbPortSelect.AddString(_T("COM1"));

m_cbPortSelect.AddString(_T("COM2"));

m_cbPortSelect.AddString(_T("COM3"));

m_cbPortSelect.AddString(_T("COM4"));

m_cbPortSelect.AddString(_T("COM5"));

m_cbPortSelect.SetCurSel(3);

 

m_cbPortRate.ResetContent();

m_cbPortRate.AddString(_T("1200"));

m_cbPortRate.AddString(_T("2400"));

m_cbPortRate.AddString(_T("4800"));

m_cbPortRate.AddString(_T("9600"));

m_cbPortRate.SetCurSel(0);

 

 

二.想动态地设置串口相关参数:

CString str_setting;

str_setting.Format(_T("%d, %c, %d, %d"), baud_num, 'n', 8, 1);

m_ctrlComm.SetSettings(str_setting); // 设置波特率,校验位,数据位,停止位;m_ctrlComm是通信控件变量

 

想在Edit Box里显示实时值:

m_strSerialPort.Format("串口%d, 波特率%d, %c, %d个数据位,%d个停止位", port_num, baud_num, 'n', 8, 1);

 

你可能感兴趣的:(c,通讯)