热情软件屋

 

怎样设置每个发送字符的校验(标志)值


编号:QA004093
建立日期: 2001年4月11日 最后修改日期:2001年4月11日
所属类别:

hense:
    操作系统:winnt4 win2000
    编程工具:vc++ 6.0
    问题:将奇偶校验设为 mark (标志),怎样设置每个发送字符(WriteFile)的校验(标志)值?
    在 dos 设置
    #define LCR 0x3FB
    outportb(LCR,0x3B); //0011 1011
    win32下怎样设置?谢谢赐教!

回答:

    问题可以这样解决:
     #define LCR 0x3FB
    
     //win9x,dos
     outportb(LCR,0x2B); //校验位为 1
     outportb(LCR,0x3B); //校验位为 0
    
     //winnt,win2k
     DCB dcb;
     GetCommState(h,&dcb);
     dcb.Parity = 3;//mark 校验位为 1
     SetCommState(h,&dcb);//byte b = inportb(LCR); ASSERT(b == 0x2B);
    
     dcb.Parity = 4;//space 校验位为 0
     SetCommState(h,&dcb);//byte b = inportb(LCR); ASSERT(b == 0x3B);

此问题由hense回答。

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio