|
您好!tronlong提供的最新的linux3.3内核已经对uart0和uart1做了rs485功能的支持,uart2默认为启动串口。如何想使能uart0和uart1 rs485的功能,只需在menuconfig将485使能。
8 |4 @* I+ k. { *** DaVinci Core Type *** | |
, d( R G1 |- Z | | [ ] DaVinci 644x based system | |" u3 v; h. j( c4 P4 o
| | [ ] DaVinci 355 based system | |' O' o; v- c+ h& z" l! P8 ^! @7 ]
| | [ ] DaVinci 646x based system | |" V) @/ H; B# T9 D, Y8 M
| | [ ] DA830/OMAP-L137/AM17x based system | |
) }0 {( M5 G: P, p- U1 U | | [*] DA850/OMAP-L138/AM18x based system | |
* o% I+ ~! e/ @: }4 F( D4 I | | [ ] Enable UART1 flow control | |8 T$ g( P6 w! @3 H
| | [ ] Enable UART0 RS485 funcation | |! |( @0 |& m3 C, [2 x! g
| | [*] Enable UART1 RS485 funcation 1 O1 J8 \6 z4 B7 h
6 o4 M% @4 V; Y6 u
想了解详细的功能实现,也可以查看8250.c文件里面的; Q2 d8 m1 B C1 b2 t# _
void serial8250_tx_chars(struct uart_8250_port *up)5 c& E1 A1 ]# q7 u: a5 l7 T0 p* Q1 j
return;
+ C& r# Y1 N" P( N a6 z/ Y3 l( N# B }- h9 w9 S4 |: l |% d
4 k# d7 f/ Q0 j5 q
+#if 1
9 f' o" U' r. z2 F9 i2 l0 f+ /* The funcation with RS485 flow control */
2 y- _5 V/ ^2 M. f- n& _2 [- L+ if (up->port.private_data) {) S3 I) l$ s3 _" F. E2 f
+ struct serial8250_flow_ctrl *flow_ctrl_p;% `: L, J7 I+ c' W
+ flow_ctrl_p = up->port.private_data;
% L* K- y) ~: B9 s+% O# W2 [& o! x( x0 R6 N) G( B
+ if (flow_ctrl_p->gpio) {. F" L' r. C& i+ z
+ gpio_set_value(flow_ctrl_p->gpio, 1);: L8 ?' r1 y/ c& w% E, N
+ ndelay(50); /* Propagation delay >= 50ns */5 Q3 `- D5 s, l9 \5 D
+ }
( N: g# o" ^) m% A! i+ }
: ^ C! s* v! }. }. j+#endif) d% k. ` M5 U: k( _
希望对您有帮助。
/ H* `- }0 V5 k# b' L! P |
|