主题:rs485

  共有30134人关注过本帖    
ck
1楼


rs485  发帖心情 Post By:2004-8-6 16:33:00   [只看该作者]

RS485.cpp中并没有提供偶校验,只提供了com2 //8bit 1stop no—parity,com3 //8bit 1stop odd parity,我想要com3中使用偶校验,如何选择偶校验?

  单帖管理 | 引用 | 回复 回到顶部
zhl
2楼


  发帖心情 Post By:2004-8-6 17:07:00   [只看该作者]

在初始化程序中有奇偶校验的选项,int InitUART( int PortNum, int BaudIdx, int Parity );其中Parity=0:无校验;Parity=1:奇校验;Parity=2:偶校验。

  单帖管理 | 引用 | 回复 回到顶部
ck
3楼


  发帖心情 Post By:2004-8-6 17:43:00   [只看该作者]

可是你在函数只定义了int InitUART( int PortNum, int BaudIdx);
并没有int Parity 这个参数,而且函数中也没有涉及到这个int Parity 参数的定义和使用,起码在头文件或宏定义中要有提到吧,不解!我有点迷惑,编译时肯定会出现extra parameter这样的错误!望指点迷津!

  单帖管理 | 引用 | 回复 回到顶部
x10
4楼


  发帖心情 Post By:2004-8-6 22:09:00   [只看该作者]

请问您用的是ETR186吗,由于新近增加了不少新客户,我们可能搞错了,抱歉。请告诉你使用的模块型号及email地址,我们会尽快把程序发给你,谢谢!

  单帖管理 | 引用 | 回复 回到顶部
zhl
5楼


  发帖心情 Post By:2004-8-7 9:19:00   [只看该作者]

如果是ETR186,可以为你更新程序。如果是别的型号的板子,串口都是16C550系列的,可以参考16C550技术手册,通过操作线控制寄存器(LCR)来设定起奇偶校验。

  单帖管理 | 引用 | 回复 回到顶部
ck
6楼


  发帖心情 Post By:2004-8-9 8:58:00   [只看该作者]

我要!我要!
我使用的是ETR232i/ETR186_EVB   V2.1   2004.6
麻烦你发到fantaoss@126.com!谢谢!

  单帖管理 | 引用 | 回复 回到顶部
ck
7楼


  发帖心情 Post By:2004-8-9 9:03:00   [只看该作者]

如果是别的型号的板子,我如何操作线控制寄存器(LCR)来进行修改呢?

  单帖管理 | 引用 | 回复 回到顶部
zhl
8楼


  发帖心情 Post By:2004-8-9 9:19:00   [只看该作者]

在InitUART(..)函数中加以修改。
outport(tport + LCR, 0x03);   // 8bit 1stop No_parity
outport(tport + LCR, 0x1b);   // 8bit 1stop Even_parity
outport(tport + LCR, 0x0b);   // 8bit 1stop Odd_parity

  单帖管理 | 引用 | 回复 回到顶部
ck
9楼


  发帖心情 Post By:2004-8-9 9:25:00   [只看该作者]

谢谢!
能不能在将那个新程序发给我!

  单帖管理 | 引用 | 回复 回到顶部
ck
10楼


  发帖心情 Post By:2004-8-9 12:18:00   [只看该作者]

按你说的在InitUART(..)函数中加以修改,编译报错说“undefined symbol ‘LCR’”,完全不识别,还是将更新程序发到我的fantaoss@126.com中!谢谢!

  单帖管理 | 引用 | 回复 回到顶部
zhl
11楼


  发帖心情 Post By:2004-8-9 13:13:00   [只看该作者]

修改的方法很简单,打开rs485.cpp模块,在初始化函数中将原来的
outport(tport + LCR, 0x03);   // 8bit 1stop No_parity
替换为:
outport(tport + LCR, 0x1b);   // 8bit 1stop Even_parity

  单帖管理 | 引用 | 回复 回到顶部
ck
12楼


  发帖心情 Post By:2004-8-9 13:50:00   [只看该作者]

rs485.cpp中是这样写的:
outport(tport + BRDR,  BaudIdx*13 );   // set baud regaccess
outport(tport, 0x0061); 
或者是:
case COM2:
tport = COM2PORT;
outport(tport + BRDR,  BaudIdx*13 );   // set baud regaccess
outport(tport, 0x00E1);                // 8bit1stopNo_parity
break;   
根本就没有涉及到LCR这个寄存器
而且rs485.cpp中的宏定义根本就没有定义LCR,只定义了LSR,
编译时肯定会出错,这如何改亚?

  单帖管理 | 引用 | 回复 回到顶部
zhl
13楼


  发帖心情 Post By:2004-8-9 16:17:00   [只看该作者]

你的程序是ETR186的程序,etr232i的485驱动程序已发到你的邮箱,请查收。

  单帖管理 | 引用 | 回复 回到顶部
ck
14楼


  发帖心情 Post By:2004-8-9 16:27:00   [只看该作者]

我用的就是ETR186BPCB 11 2003这个芯片,所以我需要的是ETR186的rs485的更新程序,麻烦你发过来(fantaoss@126.com)谢谢!

  单帖管理 | 引用 | 回复 回到顶部
zhl
15楼


  发帖心情 Post By:2004-8-9 17:12:00   [只看该作者]

程序已发。

  单帖管理 | 引用 | 回复 回到顶部
ck
16楼


  发帖心情 Post By:2004-8-9 17:38:00   [只看该作者]

我没收到,请重发一次,谢谢!

  单帖管理 | 引用 | 回复 回到顶部
zhl
17楼


  发帖心情 Post By:2004-8-10 9:14:00   [只看该作者]

已重发了。

  单帖管理 | 引用 | 回复 回到顶部
ck
18楼


  发帖心情 Post By:2004-8-10 10:29:00   [只看该作者]

麻烦您了,我收到了!谢谢!

  单帖管理 | 引用 | 回复 回到顶部

返回首页

rs485

用户名:
            验证码: 验证码,看不清楚?请点击刷新验证码
内容: