本文目录一览:
急!龚建伟关于串口通信的程序有问题的,期望高手解决!
粗略的看了一下,你的代码没有问题,我怀疑是其他的地方出现了问题。
给你一个我以前写的,模仿串口调试助手用串口控件的方法写的程序,你参考一下吧。
代码已发到你的邮箱。
补充:
接收就是在OnComm() 函数里啊,你的这段代码没有什么问题。
有没有做串口控件的事件映射啊:
BEGIN_EVENTSINK_MAP(CCuteComDlg, CDialog)
ON_EVENT(CCuteComDlg, IDC_MSCOMM1, 1 /* OnComm */, OnComm, VTS_NONE)
END_EVENTSINK_MAP()
如果有的话,那接收应该没有问题的。况且即使只有发没有收,那也不会点发送就会出错的。
我发给你的代码你看到了吗,那是标准串口控件的用法,里面收发演示都有的,你详细看一下吧,应该是对你有所帮助的。
有人说是因为龚建伟的串口初始化部分代码有问题,才导致了后面的安全数组出现错误。
我一直是使用如下代码进行串口控件的初始化的,已经应用到过很多程序中没有出现过问题,你可以试试:
if(m_ctrlComm.get_PortOpen())
m_ctrlComm.put_PortOpen(FALSE);
m_ctrlComm.put_CommPort(1); //选择com1
//输出方式为二进制方式
m_ctrlComm.put_InputMode(1);//text,binary
//m_ctrlComm.put_InBufferSize(64);
//m_ctrlComm.put_OutBufferSize(512);
m_ctrlComm.put_Settings("9600,n,8,1"); //波特率9600,无校验ndo,8个数据位,1个停止位
if( !m_ctrlComm.get_PortOpen())
m_ctrlComm.put_PortOpen(TRUE);//打开串口
m_ctrlComm.put_RThreshold(1);
//参数1表示每当串口接收缓冲区中有多于或等于1个字符时将引发一个接收数据的OnComm事件
m_ctrlComm.put_InputLen(0); //设置当前接收区数据长度为0
//0---读接收缓冲区的所有内容
//n---读接收缓冲区的 n 个字符(或二进制码)
m_ctrlComm.get_Input();//先预读缓冲区以清除残留数据
这是VS2008中的代码,在VC6.0中请把函数前缀get_替换为Get、put_替换为Set
VC++ 6.0串口编程 接收数据程序错误
我对比查看了龚建伟的串口编程例子接收数据部分,没有发现不对。你是用虚拟串口吗?
void CSCommTestDlg::OnComm1()
{
// TODO: Add your control notification handler code here
VARIANT variant_inp;
COleSafeArray safearray_inp;
LONG len,k;
BYTE rxdata[2048]; //设置BYTE数组 An 8-bit integerthat is not signed.
CString strtemp;
if(m_ctrlComm.GetCommEvent()==2) //事件值为2表示接收缓冲区内有字符
{
variant_inp=m_ctrlComm.GetInput(); //读缓冲区
safearray_inp=variant_inp; //VARIANT型变量转换为ColeSafeArray型变量
len=safearray_inp.GetOneDimSize(); //得到有效数据长度
for(k=0;klen;k++)
safearray_inp.GetElement(k,rxdata+k);//转换为BYTE型数组
for(k=0;klen;k++) //将数组转换为Cstring型变量
{
BYTE bt=*(char*)(rxdata+k); //字符型
if(m_ctrlHexDisplay.GetCheck())
strtemp.Format("%02X ",bt); //将字符以十六进制方式送入临时变量strtemp存放,注意这里加入一个空隔
else
strtemp.Format("%c",bt); //将字符送入临时变量strtemp存放
m_strRXData+=strtemp; //加入接收编辑框对应字符串
}
}
UpdateData(FALSE); //更新编辑框内容
}
生活万般皆苦唯有自渡是什么歌名
生活万般皆苦唯有自渡的歌名是渡,歌曲是由任和作词作曲并演唱的。歌词如下:
关关雎鸠 在河之洲
世间窈窕淑女 君子好逑
对酒当歌 人生几何
奈何譬如朝露 去日苦多
贪得一场水月镜花般相逢
终得一场曲终人散别离
愿所有后会无期 他日别来无恙
万般皆命 半点不由自己
贪得一场风花雪夜般纵情
终得一场浮生若梦往昔
愿所有念念不忘 都随年华淡去
万般皆苦 众生唯有自渡
你见花非花 雾非雾 轮回往复
纵然相思入骨 待你眉眼如初
我愿翻千山 渡万水 不惧险阻
纵然万劫不复 甘愿义无反顾
贪得一场水月镜花般相逢
终得一场曲终人散别离
愿所有后会无期 他日别来无恙
万般皆命 半点不由自己
贪得一场风花雪夜般纵情
终得一场浮生若梦往昔
愿所有念念不忘 都随年华淡去
万般皆苦 众生唯有自渡