ini
[aversive.git] / modules / comm / uart / doc / uart_v2.txt
1 function for configuring uart :
2
3
4 int8_t uartX_init( )
5   equivalent to uartX_set(NULL)
6
7
8 int8_t uartX_get (struct uart_params * conf ) 
9   return values : 
10     0 if ok
11     < 0 if error
12
13 this func fills the value of the structure with current values.
14
15
16 int8_t uartX_set( struct uart_params conf );
17   return values :
18     0 if ok
19     < 0 if error
20
21 apply the conf. If conf==NULL, apply the default conf (static)
22
23
24 int8_t uart_enable(struct uart_param)
25 int8_t uart_disable(struct uart_param)
26
27 int8_t uart_tx_enable(struct uart_param)
28 int8_t uart_tx_disable(struct uart_param)
29
30 int8_t uart_rx_enable(struct uart_param)
31 int8_t uart_rx_disable(struct uart_param)
32
33 int8_t uart_dont_loose_data(struct uart_param)
34 int8_t uart_can_loose_data(struct uart_param)
35
36 int8_t uart_use_double_speed(struct uart_param)
37 int8_t uart_use_simple_speed(struct uart_param)
38
39 int8_t uart_parity_none(struct uart_param)
40 int8_t uart_parity_odd(struct uart_param)
41 int8_t uart_parity_even(struct uart_param)
42
43 int8_t uart_stop_bits(struct uart_param, uint8_t nbits)
44
45 int8_t uart_baudrate(struct uart_param, uint32_t baudrate)
46
47
48 struct uart_param {
49    unsigned char enabled : 1,
50                  tx_enabled : 1,
51                  rx_enabled : 1,
52                  dont_loose_data : 1,
53                  use_double_speed : 1,
54                  partity : 2,
55                  stop_bit : 1;
56    uint8_t nbits;
57    uint32_t baudrate;
58 }
59
60
61
62 Configuration example :
63
64 ** change one parameter only :
65
66 uart1_set_baudrate(uint32_t baudrate)
67 {
68   struct uart_param u;
69
70   if (uart1_get(&u) < 0) {
71     printf ("error");
72     goto error;
73   }
74
75   if (uart1_baudrate(u, baudrate) < 0) {
76     printf ("error");
77     goto error;
78   }
79
80   if (uart1_set(u) < 0) {
81     printf ("error");
82     goto error;
83   }
84
85   return 0;
86
87 error:
88   return 1;
89 }
90
91