关于PCOMM的读写串口的操作问题

hitwhzhongqiu 2014-07-22 09:10:33
小弟今天刚上手PCOMM,对于读写串口的时候有些疑问。我想把CString类型的数发出去,或用CString类型的变量保存sio_read的结果,我该怎么做。之前想过用char型指针的方法,但觉得略为繁琐。是不是我想复杂了,求指导
...全文
285 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
hitwhzhongqiu 2014-07-23
  • 打赏
  • 举报
回复
引用 1 楼 l357630798 的回复:
CString转char* eg: CString strTemp; strTemp.Getbuffer(strTemp.GetLength()); 试试看,我没试过。 实在不行就传char型数组吧,这个肯定没问题。
对,网上都是这么讲的,我试试。还有就是,数据发出去好发,直接sio_write就行,但是,数据来了,怎么办呢。像MSCOMM,数据来了触发comm事件,pcomm可以触发中断,但具体怎么用呢,求相关代码看看啊
大飞哥666 2014-07-23
  • 打赏
  • 举报
回复
用char * 和CString转换就可以,应该不算麻烦吧。
yyang0514 2014-07-23
  • 打赏
  • 举报
回复
我用的是mscomm控件来实现的。 http://wenku.baidu.com/link?url=MI_nbx- 20mVqyfynJ86SFXtYP8nzf7VCMtpJlUpd3JPhGCz2WHuq4EjBxFBUWFha7FdU8X8T2A9dGRlYsHTlZH3WhB_vMBKkrM zo_tYHawu 串口发送函数:

CByteArray Array;
	CString str;
	GetCommandFrame('R');
	Array.RemoveAll();
	Array.SetSize(5);//根据实际需要设置大小
	for(int i=0;i<5;i++)
	{
		Array.SetAt(i,command_frame[i]);//command_frame是我的全局变量
	myComm.SetOutput(COleVariant(Array));
	m_info+="握手参数已发送完毕\r\n";
	Sleep(10);
l357630798 2014-07-23
  • 打赏
  • 举报
回复
引用 3 楼 hitwhzhongqiu 的回复:
[quote=引用 1 楼 l357630798 的回复:] CString转char* eg: CString strTemp; strTemp.Getbuffer(strTemp.GetLength()); 试试看,我没试过。 实在不行就传char型数组吧,这个肯定没问题。
对,网上都是这么讲的,我试试。还有就是,数据发出去好发,直接sio_write就行,但是,数据来了,怎么办呢。像MSCOMM,数据来了触发comm事件,pcomm可以触发中断,但具体怎么用呢,求相关代码看看啊[/quote] 我记得PCOMM有一条sio_read函数的呀,你每隔一段时间就读一下并采用循环的方式不就OK啦?或者,我记得有一条sio_peek函数应该是可以监视是否有数据的到来,一旦有数据到来,你就Read一次不就OK了?
l357630798 2014-07-22
  • 打赏
  • 举报
回复
CString转char* eg: CString strTemp; strTemp.Getbuffer(strTemp.GetLength()); 试试看,我没试过。 实在不行就传char型数组吧,这个肯定没问题。

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧