﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-    iSabC @ Blog-随笔分类-串口通信</title><link>http://www.cppblog.com/Lee7/category/5411.html</link><description>  当华美的叶片落尽，生命的脉络才历历可见。 －－ 聂鲁达
</description><language>zh-cn</language><lastBuildDate>Tue, 20 May 2008 14:52:36 GMT</lastBuildDate><pubDate>Tue, 20 May 2008 14:52:36 GMT</pubDate><ttl>60</ttl><item><title>基于FAX／MODEM远程通信程序设计</title><link>http://www.cppblog.com/Lee7/archive/2008/01/19/41454.html</link><dc:creator>isabc</dc:creator><author>isabc</author><pubDate>Sat, 19 Jan 2008 03:11:00 GMT</pubDate><guid>http://www.cppblog.com/Lee7/archive/2008/01/19/41454.html</guid><wfw:comment>http://www.cppblog.com/Lee7/comments/41454.html</wfw:comment><comments>http://www.cppblog.com/Lee7/archive/2008/01/19/41454.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Lee7/comments/commentRss/41454.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Lee7/services/trackbacks/41454.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: FAX／MODEM首先用于传真业务，近几年发展极为迅速，取得了极大成功。随着技术的发展和人们认识的提高，人们拓宽了FAX／MODEM的功能，把它用于广域网络通信中，FAX／MODEM能从微机接受串行数据，直接传给另一端的FAX机或另一台FAX／MODEM，所以使用微机通过程控电话网和FAX／MODEM互联起来可以组成一个广域网络系统，当两台微机拨号联上后，它们就独占了一条电话线路，它们之间就像本地通信一样(光电传输速度108米／秒)方便[1]。<br>&nbsp;&nbsp;<a href='http://www.cppblog.com/Lee7/archive/2008/01/19/41454.html'>阅读全文</a><img src ="http://www.cppblog.com/Lee7/aggbug/41454.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Lee7/" target="_blank">isabc</a> 2008-01-19 11:11 <a href="http://www.cppblog.com/Lee7/archive/2008/01/19/41454.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>内置MODEM完全安装手册</title><link>http://www.cppblog.com/Lee7/archive/2008/01/19/41453.html</link><dc:creator>isabc</dc:creator><author>isabc</author><pubDate>Sat, 19 Jan 2008 02:17:00 GMT</pubDate><guid>http://www.cppblog.com/Lee7/archive/2008/01/19/41453.html</guid><wfw:comment>http://www.cppblog.com/Lee7/comments/41453.html</wfw:comment><comments>http://www.cppblog.com/Lee7/archive/2008/01/19/41453.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Lee7/comments/commentRss/41453.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Lee7/services/trackbacks/41453.html</trackback:ping><description><![CDATA[<p>　　MODEM一般有两种形式，即内置MODEM卡和外置MODEM。外置MODEM需专用电源供电，通过电缆与微机串口相连， 安装和使用都比较方便。与外置MODEM相比，内置MODEM也有其优越性。内置MODEM卡插在微机的扩展槽中，不需要另加供电电源和串口连接电缆，不占地方，不易受到物理损坏，价格也便宜得多。但缺点是安装、更换比较麻烦。<br>　　本文以COMSTAR内置 MODEM卡为例介绍MODEM卡在WINDOWS 95中的安装方法。 <br>　　一、设置通讯端口与中断<br>MODEM需要占用一个COM通讯口和一个中断通道。对于即插即用的MODEM卡，由系统自动设置COM口和中断通道，而对于非即插即用的MODEM卡则必须由用户人工设置。目前大多数内置MODEM都支持即插即用和非即插即用两种方式，可由用户通过跳线选择。采用即插即用方式安装硬件和驱动程序都比较方便，如果你是初学者，建议使用这种安装方法。<br>　　对于非即插即用的MODEM卡（或者选用非即插即用方式），安装内置MODEM的第一步就是利用MODEM卡上的跳线设置IRQ中断、通讯端口COM和I/O地址。如设置错误，内置MODEM会与其它硬件设备发生冲突，导致系统工作不正常。<br>　　COMSTAR内置MODEM的设置方法：<br>　　 1.通讯端口的设置<br>　　检查通讯端口COM的占用情况。在&#8220;控制面板/系统/设备管理&#8221;标签的设备列表中双击&#8220;端口(COM ＆ LPT1)&#8221;列表项，查看其下条目，通常有LPT1、COM1和COM2。鼠标通常占用了COM1口， 可以选择使用COM2。注意：将MODEM用跳线设置在COM2、I/O地址为2F8H时，绝大多数主板需在BIOS中关闭COM2。 <br>　　2.COM和I/O地址设置。COMSTAR 内置MODEM 的通讯端口COM和I/O地址设置参见表一。</p>
<p align=center>表一&nbsp;&nbsp; COM与I/O地址设置</p>
<div align=center>
<center>
<table width="80%" border=1>
    <tbody>
        <tr>
            <td width="33%">通讯端口</td>
            <td width="33%">I/O地址</td>
            <td width="34%">短接跳线</td>
        </tr>
        <tr>
            <td width="33%">COM1</td>
            <td width="33%">3F8H</td>
            <td width="34%">5;7</td>
        </tr>
        <tr>
            <td width="33%">COM2</td>
            <td width="33%">2F8H</td>
            <td width="34%">1;7</td>
        </tr>
        <tr>
            <td width="33%">COM3</td>
            <td width="33%">3E8H</td>
            <td width="34%">3;5</td>
        </tr>
        <tr>
            <td width="33%">COM4</td>
            <td width="33%">2E8H</td>
            <td width="34%">1;3</td>
        </tr>
    </tbody>
</table>
</center></div>
<p>　　3.IRQ中断设置<br>　　COMSTAR 内置MODEM 的IRQ中断设置参见表二。<br>　　1)设置IRQ中断应该选择其它硬件设备未占用的中断端口，如果你不知道应选择哪一个中断端口，可选择&#8220;控制面板/系统&#8221;，打开&#8220;系统 属性&#8221;窗口，在&#8220;设备管理&#8221;标签的设备列表中选择&#8220;计算机&#8221;，然后点击&#8220;属性&#8221;按钮，打开&#8220;计算机属性&#8221; 窗口，选择&#8220;查看&#8221;标签中的&#8220;IRQ中断请求&#8221;单选框，然后在IRQ中断列表中找一个未被其它硬件设备占用的&#8220;IRQ中断&#8221;；不能选择非即插即用设备已占用的中断。</p>
<p align=center>表二&nbsp; IRQ终端设置</p>
<div align=center>
<center>
<table width="80%" border=1>
    <tbody>
        <tr>
            <td width="25%">IRQ</td>
            <td width="25%">短接跳线</td>
            <td width="25%">IRQ</td>
            <td width="25%">短接跳线</td>
        </tr>
        <tr>
            <td width="25%">3</td>
            <td width="25%">9</td>
            <td width="25%">10</td>
            <td width="25%">17</td>
        </tr>
        <tr>
            <td width="25%">4</td>
            <td width="25%">11</td>
            <td width="25%">11</td>
            <td width="25%">19</td>
        </tr>
        <tr>
            <td width="25%">5</td>
            <td width="25%">13</td>
            <td width="25%">12</td>
            <td width="25%">21</td>
        </tr>
        <tr>
            <td width="25%">7</td>
            <td width="25%">15</td>
            <td width="25%">　</td>
            <td width="25%">　</td>
        </tr>
    </tbody>
</table>
</center></div>
<p>二、硬件安装<br>　　1.安装内置MODEM卡<br>　　内置MODEM多为ISA插卡，在微机内找一个空闲的ISA槽将其插上。<br>　　2.联接电话输入线<br>　　取下电话机上电话输入线的4芯美式插头，将其插入MODEM卡档板上的&#8220;LINE&#8221;插孔。如果你的电话输入线为二芯接线盒，剪去MODEM联线另一端的插头， 将绿、红两条电线接至两根电话输入线上即可。<br>　　3.联接电话机<br>　　将MODEM配套的联线一端插入电话机，另一端插入MODEM的&#8220;PHONE&#8221;插孔。<br>　　4.连接麦克风和音箱<br>　　有些MODEM具有语音功能，可以使用此功能打电话。这种MODEM后部的档板上有两个&#934;3.5插孔，标识为&#8220;MIC&#8221;的插孔接麦克风；标识为&#8220;SPEAK&#8221; 的插孔接音箱。<br>　　说明：有些具有语音功能的MODEM可以使用声卡的麦克风和音箱。<br>三、驱动程序安装<br>　　1.安装即插即用MODEM<br>　　 1)如果你的MODEM设置即插即用方式，安装完硬件启动电脑WINDOWSn95时，系统会自动检测到MODEM，并给出&#8220;发现新硬件设备&#8221;的提示，随后出现&#8220;更新设备驱动向导&#8221;窗口；<br>　　2)按提示将MODEM的驱动程序盘放入软盘驱动器，按&#8220;下一步&#8221; 按钮，系统会自动找到&#8220;A&#8221;盘上的驱动程序，并给出新的提示窗口；<br>　　3)按&#8220;完成&#8221;按钮后，系统揭示插入&#8220;WINDOWS 95 CD－ROM&#8221; ，按提示将WINDOWS 95 安装光盘放入CD－ROM，按&#8220;确定&#8221;按钮；<br>　　4)系统开始拷贝文件，自动安装、设置端口和中断；<br>　　5)驱动程序安装完成后，移去软盘驱动器中的磁盘，按提示重新启动即完成安装。<br>　　2.安装非即插即用MODEM<br>　　安装非即插即用MODEM设备驱动程序有两种方法，一是在&#8220;控制面板&#8221;中双击&#8220;添加新硬件&#8221;安装；二是在&#8220;控制面板&#8221;中双击&#8220;调制解调器&#8221;图标安装。建议用方法二，按下述步骤进行安装:<br>　　1)在&#8220;控制面板&#8221;中双击&#8220;调制解调器&#8221;图标，打开&#8220;调制解调器&#8221;属性窗口，你可在&#8220;诊断&#8221;标签的列表框中查阅占用各通讯端口的设备，在&#8220;常规&#8221;标签的列表框中看到已安装的MODEM。请按&#8220;添加&#8221;按钮，打开&#8220;安装新的调制解调器&#8221;窗口；<br>　　 2)在&#8220;安装新的调制解调器&#8221;窗口按&#8220;下一步&#8221;按钮，系统开始检测&#8220;调制解调器&#8221;， 而后给出检测到MODEM的通讯端口和类型，按&#8220;更改&#8221;按钮，打开下一幅&#8220;安装新的调制解调器&#8221;窗口；<br>　　如果系统检测到MODEM类型满足你的要求，或者你没有MODEM的驱动程序盘，同意使用系统检测到的MODEM类型，此时先按&#8220;下一步&#8221;按钮，再按&#8220;完成&#8221;按钮即可完成安装；<br>　　3)在新出现的窗口中按&#8220;从磁盘安装&#8221;按钮后，按提示将MODEM的驱动程序盘放入软驱，再按&#8220;确定&#8221;按钮，系统会自动找到&#8220;A &#8221;盘上的驱动程序，并给出驱动程序列表；<br>　　4)在驱动程序列表中选择正确的MODEM驱动程序，按&#8220;确定&#8221;按钮；<br>　　5)系统给出新的窗口，要求选定通讯端口COM，请在&#8220;选定该调制解调器使用的端口&#8221;列表框选定你用跳线设置的端口，然后按&#8220;下一步&#8221;按钮；<br>　　6)在以后出现的窗口中分别按&#8220;下一步&#8221;按钮、&#8220;完成&#8221;按钮即完成安装。<br>　　安装完毕后系统返回&#8220;调制解调器&#8221;属性窗口。<br>四、检查及处理故障的一般方法<br>　　1.驱动程序安装完毕重新启动后，在&#8220;控制面板&#8221;/&#8220;系统&#8221;/&#8220;设备管理&#8221;标签设备列表中会出现&#8220;调制解调器&#8221; 列表项，其下还应出现无错误提示的&#8220;MODEM型号&#8221;条目――&#8220;Cirru 33600 bps MODEM Internal (CL－md3450) MODEM&#8221; <br>　　如果&#8220;MODEM型号&#8221;条出现一个&#8220;&#215;&#8221;，说明MODEM的硬件安装有问题。如果出现黄色的&#8220;！&#8221;说明与其它设备存在冲突，此时选中该条目后，按&#8220;属性&#8221;按钮，打开此&#8220;MODEM&#8221;的属性窗口，在&#8220;设置&#8221;标签的&#8220;冲突设备列表&#8221;中会给出冲突设备名称。这种情况建议删除与MODEM发生冲突的设备后重新启动，也可以手动配置解决冲突。<br>　　2.在&#8220;控制面板\调制解调器\调制解调器属性&#8221;窗口，选择&#8220;诊断&#8221;标签，列表框中MODEM条目，然后按&#8220;其它信息&#8221;按钮，系统即开始通过调制解调器通讯检测信息，正常情况下会出现&#8220;其它信息&#8221;窗口，在此窗口给出端口、中断、地址、UART、最高速度等五项检测内容；在下部给出&#8220;MODEM&#8221;的型号、标识号以及命令和响应列表。<br>　　如果给出&#8220;无法打开端口&#8221;的提示，通常是通讯端口COM设置错误；如果给出&#8220;调制解调器响应失败&#8221;的提示，通常是中断IRQ设置错误。可参考下述方法更改通讯端口或中断。<br>　　1）更改通讯端口COM：在&#8220;控制面板\调制解调器\调制解调器属性&#8221;窗口，选择&#8220;常规&#8221;标签的 &#8220;MODEM&#8221; 列表项，然后按&#8220;属性&#8221; 按钮，在&#8220;端口&#8221;列表框中另选其它COM端口。<br>说明:即插即用MODEM是由系统分配通讯端口，一般无法更改，参照下文更改IRQ中断的方法，更改与MODEM发生冲突设备的端口。<br>　　2）在&#8220;控制面板&#8221;/&#8220;系统&#8221;/&#8220;设备管理&#8221;标签/&#8220;端口(COM ＆ LPT)&#8221;列表项下中选中相应端口COM，然后按&#8220;属性&#8221; 按钮，打开&#8220;通讯端口属性&#8221;窗口，在&#8220;资源&#8221;标签的列表框中选择&#8220;中断请求&#8221;列表项，然后按&#8220;更改设置&#8221;按钮即可另选其它IRQ中断，更改完毕后按系统提示重新启动即可。<br>其它注意事项：如果安装内置MODEM后能上INTERNET，但无法上局域网，而且必须将MODEM硬件删除，才能用局域网，多半是因为兼容网卡占用COM2、IRQ3，检查一下是否存在冲突。<br>　　如果MODEM安装完毕，鼠标不能用了。只好将鼠标接于COM2，或将MODEM设置为非即插即用方式安装。<br>如果每次使用了MODEM后无法使用鼠标，一般是MODEM和鼠标的IRQ发生了冲突，可按上述方法调整。</p>
<img src ="http://www.cppblog.com/Lee7/aggbug/41453.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Lee7/" target="_blank">isabc</a> 2008-01-19 10:17 <a href="http://www.cppblog.com/Lee7/archive/2008/01/19/41453.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>串口通讯中的DCB结构</title><link>http://www.cppblog.com/Lee7/archive/2008/01/16/41279.html</link><dc:creator>isabc</dc:creator><author>isabc</author><pubDate>Wed, 16 Jan 2008 08:21:00 GMT</pubDate><guid>http://www.cppblog.com/Lee7/archive/2008/01/16/41279.html</guid><wfw:comment>http://www.cppblog.com/Lee7/comments/41279.html</wfw:comment><comments>http://www.cppblog.com/Lee7/archive/2008/01/16/41279.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Lee7/comments/commentRss/41279.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Lee7/services/trackbacks/41279.html</trackback:ping><description><![CDATA[<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img id=Codehighlighter1_21_2653_Open_Image onclick="this.style.display='none'; Codehighlighter1_21_2653_Open_Text.style.display='none'; Codehighlighter1_21_2653_Closed_Image.style.display='inline'; Codehighlighter1_21_2653_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_21_2653_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_21_2653_Closed_Text.style.display='none'; Codehighlighter1_21_2653_Open_Image.style.display='inline'; Codehighlighter1_21_2653_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;typedef&nbsp;</span><span style="COLOR: #0000ff">struct</span><span style="COLOR: #000000">&nbsp;_DCB&nbsp;</span><span id=Codehighlighter1_21_2653_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_21_2653_Open_Text><span style="COLOR: #000000">{&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;dcb&nbsp;</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DWORD&nbsp;DCBlength;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;sizeof(DCB)&nbsp;</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DWORD&nbsp;BaudRate;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;current&nbsp;baud&nbsp;rate&nbsp;指定当前的波特率</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DWORD&nbsp;fBinary:&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;binary&nbsp;mode,&nbsp;no&nbsp;EOF&nbsp;check&nbsp;指定是否允许二进制模式，WINDOWS&nbsp;95中必须为TRUE</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DWORD&nbsp;fParity:&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;enable&nbsp;parity&nbsp;checking&nbsp;指定奇偶校验是否允许</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DWORD&nbsp;fOutxCtsFlow:</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;CTS&nbsp;output&nbsp;flow&nbsp;control&nbsp;指定CTS是否用于检测发送控制.当为TRUE是CTS为OFF，发送将被挂起</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DWORD&nbsp;fOutxDsrFlow:</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;DSR&nbsp;output&nbsp;flow&nbsp;control&nbsp;指定DSR是否用于检测发送控制.当为TRUE是DSR为OFF，发送将被挂起</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DWORD&nbsp;fDtrControl:</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;DTR&nbsp;flow&nbsp;control&nbsp;type&nbsp;DTR_CONTROL_DISABLE值将DTR置为OFF,&nbsp;DTR_CONTROL_ENABLE值将DTR置为ON,&nbsp;DTR_CONTROL_HANDSHAKE允许DTR"握手",</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DWORD&nbsp;fDsrSensitivity:</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;DSR&nbsp;sensitivity&nbsp;当该值为TRUE时DSR为OFF时接收的字节被忽略</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DWORD&nbsp;fTXContinueOnXoff:</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;XOFF&nbsp;continues&nbsp;Tx&nbsp;指定当接收缓冲区已满,并且驱动程序已经发送出XoffChar字符时发送是否停止.TRUE时，在接收缓冲区接收到缓冲区已满的字节XoffLim且驱动程序已经发送出XoffChar字符中止接收字节之后，发送继续进行。FALSE时，在接收缓冲区接收到代表缓冲区已空的字节XonChar且驱动程序已经发送出恢复发送的XonChar之后，发送继续进行。</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DWORD&nbsp;fOutX:&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;XON/XOFF&nbsp;out&nbsp;flow&nbsp;control&nbsp;TRUE时，接收到XoffChar之后便停止发送.接收到XonChar之后将重新开始</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DWORD&nbsp;fInX:&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;XON/XOFF&nbsp;in&nbsp;flow&nbsp;control&nbsp;TRUE时，接收缓冲区接收到代表缓冲区满的XoffLim之后，XoffChar发送出去.接收缓冲区接收到代表缓冲区空的XonLim之后，XonChar发送出去</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DWORD&nbsp;fErrorChar:&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;enable&nbsp;error&nbsp;replacement&nbsp;该值为TRUE且fParity为TRUE时，用ErrorChar&nbsp;成员指定的字符代替奇偶校验错误的接收字符</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DWORD&nbsp;fNull:&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;enable&nbsp;null&nbsp;stripping&nbsp;TRUE时，接收时去掉空（0值）字节</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DWORD&nbsp;fRtsControl:</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;RTS&nbsp;flow&nbsp;control&nbsp;RTS_CONTROL_DISABLE时,RTS置为OFF&nbsp;RTS_CONTROL_ENABLE时,&nbsp;RTS置为ON&nbsp;RTS_CONTROL_HANDSHAKE时,当接收缓冲区小于半满时RTS为ON&nbsp;当接收缓冲区超过四分之三满时RTS为OFF&nbsp;RTS_CONTROL_TOGGLE时,当接收缓冲区仍有剩余字节时RTS为ON&nbsp;,否则缺省为OFF</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DWORD&nbsp;fAbortOnError:</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;abort&nbsp;reads/writes&nbsp;on&nbsp;error&nbsp;TRUE时,有错误发生时中止读和写操作</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DWORD&nbsp;fDummy2:</span><span style="COLOR: #000000">17</span><span style="COLOR: #000000">;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;reserved&nbsp;未使用</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WORD&nbsp;wReserved;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;not&nbsp;currently&nbsp;used&nbsp;未使用,必须为0</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WORD&nbsp;XonLim;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;transmit&nbsp;XON&nbsp;threshold&nbsp;指定在XON字符发送这前接收缓冲区中可允许的最小字节数</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WORD&nbsp;XoffLim;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;transmit&nbsp;XOFF&nbsp;threshold&nbsp;指定在XOFF字符发送这前接收缓冲区中可允许的最小字节数</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BYTE&nbsp;ByteSize;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;number&nbsp;of&nbsp;bits/byte,&nbsp;4-8&nbsp;指定端口当前使用的数据位</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BYTE&nbsp;Parity;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;0-4=no,odd,even,mark,space&nbsp;指定端口当前使用的奇偶校验方法,可能为:EVENPARITY,MARKPARITY,NOPARITY,ODDPARITY</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BYTE&nbsp;StopBits;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;0,1,2&nbsp;=&nbsp;1,&nbsp;1.5,&nbsp;2&nbsp;指定端口当前使用的停止位数,可能为:ONESTOPBIT,ONE5STOPBITS,TWOSTOPBITS</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">&nbsp;XonChar;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;Tx&nbsp;and&nbsp;Rx&nbsp;XON&nbsp;character&nbsp;指定用于发送和接收字符XON的值</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">&nbsp;XoffChar;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;Tx&nbsp;and&nbsp;Rx&nbsp;XOFF&nbsp;character&nbsp;指定用于发送和接收字符XOFF值</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">&nbsp;ErrorChar;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;error&nbsp;replacement&nbsp;character&nbsp;本字符用来代替接收到的奇偶校验发生错误时的值</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">&nbsp;EofChar;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;end&nbsp;of&nbsp;input&nbsp;character&nbsp;当没有使用二进制模式时,本字符可用来指示数据的结束</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">&nbsp;EvtChar;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;received&nbsp;event&nbsp;character&nbsp;当接收到此字符时,会产生一个事件</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WORD&nbsp;wReserved1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;reserved;&nbsp;do&nbsp;not&nbsp;use&nbsp;未使用</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000">&nbsp;DCB;&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span></div>
<img src ="http://www.cppblog.com/Lee7/aggbug/41279.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Lee7/" target="_blank">isabc</a> 2008-01-16 16:21 <a href="http://www.cppblog.com/Lee7/archive/2008/01/16/41279.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Win32串口操作的技巧</title><link>http://www.cppblog.com/Lee7/archive/2008/01/08/40691.html</link><dc:creator>isabc</dc:creator><author>isabc</author><pubDate>Tue, 08 Jan 2008 03:34:00 GMT</pubDate><guid>http://www.cppblog.com/Lee7/archive/2008/01/08/40691.html</guid><wfw:comment>http://www.cppblog.com/Lee7/comments/40691.html</wfw:comment><comments>http://www.cppblog.com/Lee7/archive/2008/01/08/40691.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Lee7/comments/commentRss/40691.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Lee7/services/trackbacks/40691.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 1.开启一个 Serial Port：　　利用一般开启档案的 CreatFile（） 即可开启 serial port device用 CreateFile（） API.HANDLE&nbsp;CreateFile(&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs...&nbsp;&nbsp;<a href='http://www.cppblog.com/Lee7/archive/2008/01/08/40691.html'>阅读全文</a><img src ="http://www.cppblog.com/Lee7/aggbug/40691.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Lee7/" target="_blank">isabc</a> 2008-01-08 11:34 <a href="http://www.cppblog.com/Lee7/archive/2008/01/08/40691.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用Visual C＋＋进行串口通信编程</title><link>http://www.cppblog.com/Lee7/archive/2008/01/08/40685.html</link><dc:creator>isabc</dc:creator><author>isabc</author><pubDate>Tue, 08 Jan 2008 02:33:00 GMT</pubDate><guid>http://www.cppblog.com/Lee7/archive/2008/01/08/40685.html</guid><wfw:comment>http://www.cppblog.com/Lee7/comments/40685.html</wfw:comment><comments>http://www.cppblog.com/Lee7/archive/2008/01/08/40685.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/Lee7/comments/commentRss/40685.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Lee7/services/trackbacks/40685.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 利用Visual C＋＋在windows环境下设计异步串行通信程序可以使用不同的方法。一种方法可以使用windows系统提供的串行口API函数；另一种方法可以直接使用Microsoft公司提供的ActiveX控件MSCOMM.OCX。利用MSCOMM.OCX控件进行串行口程序设计相对比较简单，只要对该控件的属性、事件和方法进行设置和操作，就能完成简单的串行通信功能。而直接使用windows系统提供的串行口API函数则相对较为灵活。试验中，可根据自己的情况任意其中一种进行编程。以下针对如何使用windows系统提供的串行口API函数进行编程做简要介绍&nbsp;&nbsp;<a href='http://www.cppblog.com/Lee7/archive/2008/01/08/40685.html'>阅读全文</a><img src ="http://www.cppblog.com/Lee7/aggbug/40685.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Lee7/" target="_blank">isabc</a> 2008-01-08 10:33 <a href="http://www.cppblog.com/Lee7/archive/2008/01/08/40685.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>设备I/O之OVERLAPPED [转]</title><link>http://www.cppblog.com/Lee7/archive/2008/01/07/40647.html</link><dc:creator>isabc</dc:creator><author>isabc</author><pubDate>Mon, 07 Jan 2008 13:27:00 GMT</pubDate><guid>http://www.cppblog.com/Lee7/archive/2008/01/07/40647.html</guid><wfw:comment>http://www.cppblog.com/Lee7/comments/40647.html</wfw:comment><comments>http://www.cppblog.com/Lee7/archive/2008/01/07/40647.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Lee7/comments/commentRss/40647.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Lee7/services/trackbacks/40647.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: OVERLAPPED,顾名思义为重叠,乍一看会很奇怪,重叠?谁跟谁重叠？似乎在WIN32的Programming中没有这个概念呀?要讨论这个问题就要追溯到对设备I/O的访问中&nbsp;&nbsp;<a href='http://www.cppblog.com/Lee7/archive/2008/01/07/40647.html'>阅读全文</a><img src ="http://www.cppblog.com/Lee7/aggbug/40647.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Lee7/" target="_blank">isabc</a> 2008-01-07 21:27 <a href="http://www.cppblog.com/Lee7/archive/2008/01/07/40647.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>端口技术 GetOverlappedResult [转]</title><link>http://www.cppblog.com/Lee7/archive/2008/01/07/40630.html</link><dc:creator>isabc</dc:creator><author>isabc</author><pubDate>Mon, 07 Jan 2008 08:47:00 GMT</pubDate><guid>http://www.cppblog.com/Lee7/archive/2008/01/07/40630.html</guid><wfw:comment>http://www.cppblog.com/Lee7/comments/40630.html</wfw:comment><comments>http://www.cppblog.com/Lee7/archive/2008/01/07/40630.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Lee7/comments/commentRss/40630.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Lee7/services/trackbacks/40630.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 以一个文件传输服务端为例,在我的机器上它只起两个线程就可以为很多个个客户端同时提供文件下载服务,程序的性能会随机器内CPU个数的增加而线性增长,我尽可能做到使它清晰易懂,虽然程序很小却用到了NT 5的一些新特性,重叠IO,完成端口以及线程池,基于这种模型的服务端程序应该是NT系统上性能最好的了.首先.做为完成端口的基础,我们应该理解重叠IO,这需要你已经理解了内核对象及操作系统的一些概念概念,...&nbsp;&nbsp;<a href='http://www.cppblog.com/Lee7/archive/2008/01/07/40630.html'>阅读全文</a><img src ="http://www.cppblog.com/Lee7/aggbug/40630.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Lee7/" target="_blank">isabc</a> 2008-01-07 16:47 <a href="http://www.cppblog.com/Lee7/archive/2008/01/07/40630.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>