|
您好!tronlong提供的最新的linux3.3内核已经对uart0和uart1做了rs485功能的支持,uart2默认为启动串口。如何想使能uart0和uart1 rs485的功能,只需在menuconfig将485使能。. [; |, E2 z3 W/ ~1 w* |
*** DaVinci Core Type *** | |; y4 w, W! M1 a7 D) E: j- Y
| | [ ] DaVinci 644x based system | |
" h2 O. }# w! Z) I/ ] | | [ ] DaVinci 355 based system | |
1 F& x; s& W2 V( N, G, |/ U0 e | | [ ] DaVinci 646x based system | |
7 P; u6 V% l% D0 L( \) k7 Z | | [ ] DA830/OMAP-L137/AM17x based system | |
+ T* s9 R9 u9 {; S3 Y | | [*] DA850/OMAP-L138/AM18x based system | |
* G* F9 j7 h' S4 I% K | | [ ] Enable UART1 flow control | |. ~7 g% K; M; R; o, z& f; P
| | [ ] Enable UART0 RS485 funcation | |
. Q! a% u- G0 O- I | | [*] Enable UART1 RS485 funcation % W7 a( x4 m' M% U7 a
1 w8 S( J: c( p& G
想了解详细的功能实现,也可以查看8250.c文件里面的;5 e: e- a. g1 ~- a$ a. D' M
void serial8250_tx_chars(struct uart_8250_port *up)
( t+ V( \1 O: Q# k# @ return;
0 a; u8 ^: s. ^) H' U% y }! k v4 W5 `, V1 K% i- |
, [- l. W8 N2 U' m p3 _0 P2 j, X/ d
+#if 1 s; A G0 `4 i( O: U: y3 g8 [1 ?/ r. Z
+ /* The funcation with RS485 flow control */- r- M! I8 _8 n* z' G
+ if (up->port.private_data) {
# S6 ^) d$ W+ q, [* l+ struct serial8250_flow_ctrl *flow_ctrl_p;7 x; ~9 i- e- D* i2 [9 j
+ flow_ctrl_p = up->port.private_data;' Y% l/ l0 B& [
+
" _1 K9 N/ A2 z" c8 L! B2 d+ if (flow_ctrl_p->gpio) {
) ^! h9 W$ X {6 j: p3 S+ gpio_set_value(flow_ctrl_p->gpio, 1);
4 ^! z4 }) K2 U$ T+ E+ ndelay(50); /* Propagation delay >= 50ns */
* X8 l6 p9 O J, E, Y+ }/ n+ ?8 V. z+ w3 U% u4 Y; B
+ }
5 V/ B& ~# ^9 ?/ R8 d+#endif; f* ^8 Z# p! I$ ]6 j, J1 i/ ]' c/ T
希望对您有帮助。
A( E8 b0 _6 z0 t; k( @& H |
|