主题:rs485 共有58773人关注过本帖 |
---|
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 [只看该作者]
麻烦您了,我收到了!谢谢!
|
|
单帖管理 | 引用 | 回复 |