|
您好!tronlong提供的最新的linux3.3内核已经对uart0和uart1做了rs485功能的支持,uart2默认为启动串口。如何想使能uart0和uart1 rs485的功能,只需在menuconfig将485使能。
A# ]( v% t0 K *** DaVinci Core Type *** | |8 G, Q- O; J% l, J
| | [ ] DaVinci 644x based system | |
* l n7 [* K4 s2 o | | [ ] DaVinci 355 based system | |
1 v. q' e: X1 x/ _ | | [ ] DaVinci 646x based system | |5 Z$ J1 z! t' Q
| | [ ] DA830/OMAP-L137/AM17x based system | |5 [+ [0 N$ ^" @+ j$ u! p
| | [*] DA850/OMAP-L138/AM18x based system | |* [9 w4 F) d% ^" Q0 Q* Z' `
| | [ ] Enable UART1 flow control | | x5 I9 c4 L0 x9 ~. E0 `! c
| | [ ] Enable UART0 RS485 funcation | |
. M9 _3 h* q5 ?: g( u: \! ~ | | [*] Enable UART1 RS485 funcation ! y* D, r2 `* v( c6 i
' g9 u e8 G, ?6 k |8 ?
想了解详细的功能实现,也可以查看8250.c文件里面的;; v% A" L% m4 _4 Y
void serial8250_tx_chars(struct uart_8250_port *up)
+ G1 V' V9 [6 e( [/ E return;
- O. q8 J7 x6 K; u }4 `0 v8 K. M7 @4 I
9 s- O& x! U: s/ X- ]+#if 15 q' y4 G V; `5 ?
+ /* The funcation with RS485 flow control */
+ {' ]- t. j; s U% L. `+ if (up->port.private_data) {
9 {4 u8 p: g4 ]! z' x+ struct serial8250_flow_ctrl *flow_ctrl_p;3 j" o( H; u# ?5 ^ g
+ flow_ctrl_p = up->port.private_data;3 w- Q, M+ ? A u1 q
+
) m& b. X8 ~" y' r, a; j9 c+ if (flow_ctrl_p->gpio) {
0 H! X6 e% e; X$ B/ {8 Y5 k1 [+ gpio_set_value(flow_ctrl_p->gpio, 1);3 b0 M* u; k6 ?! r* N( \; }, e U
+ ndelay(50); /* Propagation delay >= 50ns */
- C- Y% A9 m, e+ }
# |7 o" f7 m# h) V R( J b$ [+ }2 w' n0 p$ Q$ c' _8 \
+#endif# S5 ]. b6 K5 f+ V$ X) Q
希望对您有帮助。
9 q& I$ l6 ^, G' S* ~5 Z5 t |
|