user7852: I have a code with a connection to serial port:
// Set baud rate
UBRR0H = UBRRH_VALUE;
UBRR0L = UBRRL_VALUE;
// Disable USART rate doubler (arduino bootloader leaves it enabled...)
UCSR0A &= ~(1 << U2X0);
// Set async, no parity, 1 stop, 9bit
UCSR0C = (0<<UMSEL01)|(0<<UMSEL00)|(0<<UPM01)|(0<<UPM00)|(0<<USBS0)|(1<<UCSZ01)|(1<<UCSZ00);
UCSR0B |= (1<<UCSZ02); // 9bit
// Enable rx/tx
UCSR0B |= (1<<RXEN0)|(1<<TXEN0);

I see the comments but I want to know exactly what does these chunks means. Is there any complete documentation about these symbols?

user8175: Take a look in the datasheet under the "20. USART0" section: 
http://www.atmel.com/images/Atmel-8271-8-bit-AVR-Microcontroller-ATmega48A-48PA-88A-88PA-168A-168PA-328-328P_datasheet_Complete.pdf
I will list the names of the registers, what they are called, and then what your code is doing specifically:

UBRR0H and UBRR0L together form the baud rate divider.  Your program probably uses F_CPU and <util/setbaud.h> to calculate a divider and set the baud rate.  For more information see Table 20-12.
UCSR0A  "USART Control and Status Register n A"  --  This line is enabling the U2X0 which doubles the transmission speed
UCSR0C  "USART Control and Status Register n C" --  This line is enabling the UCSZ01 and UCSZ00 bits to set parity check to "Enabled, Odd Parity".  See Table 20-9.  This line has extra information, all the statements with 0<< actually do nothing.
USCR0B " USART Control and Status Register n B" -- This line is setting the UCSZ02 bit which is described here: "The UCSZn2 bits combined with the UCSZn1:0 bit in UCSRnC sets the number of data bits (Character SiZe) in
a frame the Receiver and Transmitter use. "  This basically allows you to select 9 bit wide serial if you would like (8 bit is more common)
The final USCR0B line enables tx and rx


7852: <p>I have a code with a connection to serial port:</p>

<pre><code>// Set baud rate
UBRR0H = UBRRH_VALUE;
UBRR0L = UBRRL_VALUE;
// Disable USART rate doubler (arduino bootloader leaves it enabled...)
UCSR0A &amp;= ~(1 &lt;&lt; U2X0);
// Set async, no parity, 1 stop, 9bit
UCSR0C = (0&lt;&lt;UMSEL01)|(0&lt;&lt;UMSEL00)|(0&lt;&lt;UPM01)|(0&lt;&lt;UPM00)|(0&lt;&lt;USBS0)|(1&lt;&lt;UCSZ01)|(1&lt;&lt;UCSZ00);
UCSR0B |= (1&lt;&lt;UCSZ02); // 9bit
// Enable rx/tx
UCSR0B |= (1&lt;&lt;RXEN0)|(1&lt;&lt;TXEN0);
</code></pre>

<p>I see the comments but I want to know exactly what does these chunks means. Is there any complete documentation about these symbols?</p>
 8175: <p>Take a look in the datasheet under the "20. USART0" section: </p>

<p><a href="http://www.atmel.com/images/Atmel-8271-8-bit-AVR-Microcontroller-ATmega48A-48PA-88A-88PA-168A-168PA-328-328P_datasheet_Complete.pdf" rel="nofollow">http://www.atmel.com/images/Atmel-8271-8-bit-AVR-Microcontroller-ATmega48A-48PA-88A-88PA-168A-168PA-328-328P_datasheet_Complete.pdf</a></p>

<p>I will list the names of the registers, what they are called, and then what your code is doing specifically:</p>

<ul>
<li>UBRR0H and UBRR0L together form the baud rate divider.  Your program probably uses F_CPU and <code>&lt;util/setbaud.h&gt;</code> to calculate a divider and set the baud rate.  For more information see Table 20-12.</li>
<li>UCSR0A  "USART Control and Status Register n A"  --  This line is enabling the U2X0 which doubles the transmission speed</li>
<li>UCSR0C  "USART Control and Status Register n C" --  This line is enabling the UCSZ01 and UCSZ00 bits to set parity check to "Enabled, Odd Parity".  See Table 20-9.  This line has extra information, all the statements with 0&lt;&lt; actually do nothing.</li>
<li>USCR0B " USART Control and Status Register n B" -- This line is setting the UCSZ02 bit which is described here: "The UCSZn2 bits combined with the UCSZn1:0 bit in UCSRnC sets the number of data bits (Character SiZe) in
a frame the Receiver and Transmitter use. "  This basically allows you to select 9 bit wide serial if you would like (8 bit is more common)</li>
<li>The final USCR0B line enables tx and rx</li>
</ul>
