⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 subject_14186.htm

📁 一些关于vc的问答
💻 HTM
字号:
<p>
序号:14186 发表者:无花果 发表日期:2002-09-04 16:40:48
<br>主题:请各位大侠指教.我直接向串口写控制码和数据给打印机,如何实现打印缓冲?
<br>内容:请版主和各位指教.我直接向串口写控制和数据给打印机,如何实现打印缓冲?<BR>我向串口写较少的数据时,没问题,但写的数据多时,打印到一半后就不正确了,打印就停止了,是不是没有缓冲的问题? 请帮忙解决.<BR><BR>//打开串口<BR>comm_handle = CreateFile( pcCommPort,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GENERIC_READ | GENERIC_WRITE,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0,&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NULL, <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OPEN_EXISTING, // comm devices must use OPEN_EXISTING<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//FILE_ATTRIBUTE_NORMAL|FILE_FLAG_OVERLAPPED<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NULL&nbsp;&nbsp; // hTemplate must be NULL for comm devices<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; );<BR>fSuccess = GetCommState(hCom, &dcb);<BR>&nbsp;&nbsp;if (!fSuccess) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return UE_ERROR;<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;dcb.BaudRate = CBR_9600;&nbsp;&nbsp;&nbsp;&nbsp; // set the baud rate<BR>&nbsp;&nbsp;dcb.ByteSize = 8;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // data size, xmit, and rcv<BR>&nbsp;&nbsp;dcb.Parity = NOPARITY;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// no parity bit<BR>&nbsp;&nbsp;dcb.StopBits = ONESTOPBIT;&nbsp;&nbsp;&nbsp;&nbsp;// one stop bit<BR><BR>&nbsp;&nbsp;fSuccess = SetCommState(hCom, &dcb);<BR>&nbsp;&nbsp;if (!fSuccess)<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return UE_ERROR;<BR>&nbsp;&nbsp;}<BR>……<BR>向串口写<BR>char prttext[2000];<BR>……;<BR><BR>bresult=WriteFile(comm_handle,prttext,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wrtlen,&wrtlen,0)<BR><BR>
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:无花果 回复日期:2002-09-04 16:47:38
<br>内容:我用微软的MSCOMM控件,设置"握手"为comRTS时,能正常打印.
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:无花果 回复日期:2002-09-05 07:56:26
<br>内容:请各位大侠伸出援手.
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:无花果 回复日期:2002-09-05 10:38:36
<br>内容:我很丑吗?为什么没人理我?
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:zhouyp 回复日期:2002-09-05 10:41:25
<br>内容:向串口发送控制代码和数据与打印机接收数据之间必须要有一个“握手”协议。当检测到打印机处于忙时,则停止发送。<BR><BR>另外,问一下,你的打印机是通过串口打印的还是并口打印的,要是并口打印,那可的要进行串转并才行。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:Frog 回复日期:2002-09-05 10:49:48
<br>内容:是串口的,RS232串口。<BR>是并口时我另做了一个直接写并口的东东。就没有上述问题,当然打印机类型不一样。串口的是针打,并口的热敏的。<BR><BR>zhouyp大侠,你能详细解释一下你的做法吗?<BR>最好给一个例程(C ,C++ ,pb 均可,其它的(请写成文本格式)也行.
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:zhouyp 回复日期:2002-09-05 11:07:15
<br>内容:我们没有做过串口的打印机,但我想原理都是一样的。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:zhouyp 回复日期:2002-09-05 11:11:19
<br>内容:我们没有做过串口的打印机,但我想原理都是一样的。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:Frog 回复日期:2002-09-05 14:13:17
<br>内容:我down下去研究一下。谢谢。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:john 回复日期:2002-09-06 08:35:41
<br>内容:不好意思,问一下“握手”协议是什么东西?
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -