|
您好!tronlong提供的最新的linux3.3内核已经对uart0和uart1做了rs485功能的支持,uart2默认为启动串口。如何想使能uart0和uart1 rs485的功能,只需在menuconfig将485使能。
. X% y9 g4 n5 X7 s: c+ e! y. P *** DaVinci Core Type *** | |0 ^5 l& b: v" }) E1 [% H7 H
| | [ ] DaVinci 644x based system | |8 Q, ]8 I8 j/ d0 G
| | [ ] DaVinci 355 based system | |& t: E+ }' ^( C6 F* J
| | [ ] DaVinci 646x based system | |
$ k1 n* W: y0 {; N8 o! f! X! `# ^ | | [ ] DA830/OMAP-L137/AM17x based system | |
6 g9 r) `# U0 Y* ]" L6 ~. ] | | [*] DA850/OMAP-L138/AM18x based system | |3 K! F( D4 S8 a9 M
| | [ ] Enable UART1 flow control | |7 W; d3 {8 V" R8 D# i
| | [ ] Enable UART0 RS485 funcation | |
3 X9 ~3 H; M9 h. O$ ] | | [*] Enable UART1 RS485 funcation
! Z/ d" q5 b: A8 ?# d* o' T H7 d% J$ k f8 G/ W: h
想了解详细的功能实现,也可以查看8250.c文件里面的;4 Q, T! h; ?& n4 c: L5 X
void serial8250_tx_chars(struct uart_8250_port *up)
: C% c( N5 @- c! c" G( N return;4 X* k' j' w8 Y; \9 t5 I2 M: i
} a/ R6 b9 _& z* v3 |" J
. B+ T/ w' d+ H: u# S
+#if 1; V: d# T3 H6 {) l; |7 d: o
+ /* The funcation with RS485 flow control */
' A: M& h: Y/ N+ if (up->port.private_data) {2 v# O3 W/ D. Y# `6 I6 U9 ~! i" z
+ struct serial8250_flow_ctrl *flow_ctrl_p;; H/ }3 E) E. b! i G! |) p. j6 s& l
+ flow_ctrl_p = up->port.private_data;/ @4 R4 q+ e5 N# B. ]6 Y
+- Y) L \" q8 F1 ~) [8 w
+ if (flow_ctrl_p->gpio) {0 Y9 d3 ^* s: ?% F: j5 Q/ F
+ gpio_set_value(flow_ctrl_p->gpio, 1);
M [8 H& F9 Y+ ndelay(50); /* Propagation delay >= 50ns */. }0 m t" V: |. O' M
+ }$ Y# r: q7 V K" Z! U; `$ t
+ } R8 ~# ~5 |4 r' F
+#endif
& y0 x# |6 P7 i5 b7 a; Q6 S) [希望对您有帮助。
9 R4 U; i1 L- w0 R5 P |
|