硬件是jb35G,用的是mscomm32.ocx.
出现的问题是除了来电号码意外,其他都是乱码。如:"#13800138000#&%%"(从#之后就是乱码了)
平台是vs2005+mfc,代码如下:
OnInitDialog()
m_mscomm.put_CommPort(1);// 选择串口号
m_mscomm.put_InBufferSize(1024);//接收缓冲区
m_mscomm.put_OutBufferSize(1024);//发送缓冲区
m_mscomm.put_InputLen(0);//设置当前接收区数据长度为0,表示全部读取
m_mscomm.put_InputMode(1);//0表示文本方式,1表示二进制方式
m_mscomm.put_RThreshold(1);//接收缓冲区有大于等于1个字符时,将引发接收数据的OnCommMscomm事件
m_mscomm.put_Settings(_T("9600,n,8,1"));//设置波特率等参数
if (!m_mscomm.get_PortOpen())
{
m_mscomm.put_PortOpen(TRUE);//打开串口
}
else
{
m_mscomm.put_OutBufferCount(0);
}
return TRUE; // 除非将焦点设置到控件,否则返回 TRUE
}
#######
OnCommMscomm()
{
VARIANT m_input;
char *str;
int k,nEvent;
nEvent=m_mscomm.get_CommEvent();
switch(nEvent)
{
case 2:
k=m_mscomm.get_InBufferCount(); //接收缓冲区的字符数目
if(k>0)
{
m_input=m_mscomm.get_Input();
str=(char*)(unsigned char*)m_input.parray->pvData;
m_receive.Format(_T("%d"),str);
} }
m_datashow.SetWindowText(m_receive);
}
出现的问题是除了来电号码意外,其他都是乱码。如:"#13800138000#&%%"(从#之后就是乱码了)
平台是vs2005+mfc,代码如下:
OnInitDialog()
m_mscomm.put_CommPort(1);// 选择串口号
m_mscomm.put_InBufferSize(1024);//接收缓冲区
m_mscomm.put_OutBufferSize(1024);//发送缓冲区
m_mscomm.put_InputLen(0);//设置当前接收区数据长度为0,表示全部读取
m_mscomm.put_InputMode(1);//0表示文本方式,1表示二进制方式
m_mscomm.put_RThreshold(1);//接收缓冲区有大于等于1个字符时,将引发接收数据的OnCommMscomm事件
m_mscomm.put_Settings(_T("9600,n,8,1"));//设置波特率等参数
if (!m_mscomm.get_PortOpen())
{
m_mscomm.put_PortOpen(TRUE);//打开串口
}
else
{
m_mscomm.put_OutBufferCount(0);
}
return TRUE; // 除非将焦点设置到控件,否则返回 TRUE
}
#######
OnCommMscomm()
{
VARIANT m_input;
char *str;
int k,nEvent;
nEvent=m_mscomm.get_CommEvent();
switch(nEvent)
{
case 2:
k=m_mscomm.get_InBufferCount(); //接收缓冲区的字符数目
if(k>0)
{
m_input=m_mscomm.get_Input();
str=(char*)(unsigned char*)m_input.parray->pvData;
m_receive.Format(_T("%d"),str);
} }
m_datashow.SetWindowText(m_receive);
}
解决方案 »
- 求教Ribbon界面编程
- 鼠标形状改变
- 关于exe应用程序和所调用的dll之间指针操作的问题
- 在网格中点击交叉点时,怎样实现"最近捕捉"?
- 恳请各位高手指教!进来有分!
- 怎样获取IE内所有文本呢。只是要得到ie内能看到的文本。并不是html.
- 邓学彬版主,有研究过duilib吗?
- (急)Excel表格中,如果存在这样一列数据该如何用VC读出来,1,1.1,1.1.1,1.1.2,
- 我刚学VC请问一下TEXT ("3STATE")是什么含义啊?
- 我下了一个程序源码,build时提示:fatal error RC1015: cannot open include file 'res\FreeSender.rc2',请问如何解决以使它运行?
- 窗口重绘,打开图片时能重绘,变换后不能
- opencv 一点轮廓的问题 求解答
OnInitDialog()
m_mscomm.put_CommPort(1);// 选择串口号
m_mscomm.put_InBufferSize(1024);//接收缓冲区
m_mscomm.put_OutBufferSize(1024);//发送缓冲区
m_mscomm.put_InputLen(0);//设置当前接收区数据长度为0,表示全部读取
m_mscomm.put_InputMode(1);//0表示文本方式,1表示二进制方式
m_mscomm.put_RThreshold(1);//接收缓冲区有大于等于1个字符时,将引发接收数据的OnCommMscomm事件
m_mscomm.put_Settings(_T("9600,n,8,1"));//设置波特率等参数
if (!m_mscomm.get_PortOpen())
{
m_mscomm.put_PortOpen(TRUE);//打开串口
}
else
{
m_mscomm.put_OutBufferCount(0);
}
return TRUE; // 除非将焦点设置到控件,否则返回 TRUE
}
#######
OnCommMscomm()
{
VARIANT m_input;
char *str;
int k,nEvent;
nEvent=m_mscomm.get_CommEvent();
switch(nEvent)
{
case 2:
k=m_mscomm.get_InBufferCount(); //接收缓冲区的字符数目
if(k>0)
{
m_input=m_mscomm.get_Input();
str=(char*)(unsigned char*)m_input.parray->pvData;
m_receive.Format(_T("%d"),str);
} }
m_datashow.SetWindowText(m_receive);
}