Programming: UART/USART Creating a Transmit Data Function (Specifically for a Library or Include File)
Share
Since we are transmitting data, not return is necessary, but we will need to include a parameter. The parameter will be the data that will be transmitted. The UDRE (USART Data Register Empty) is a flag that tells us when the data register is empty so we can populate the UDR (USART Data Register). When it is ready, we can assign the data to the UDR register. The following code is for microcontroller with more than one USART/UART and uses the first one (the 0's at the end of the registers):
void TransmitUART0(unsigned char data) { //Wait until the Transmitter is ready while (! (UCSR0A & (1 << UDRE0)) ); //Get that data outa here! UDR0 = data; } The following code is for microcontroller with only one UART/USART: void TransmitUART(unsigned char data) { //Wait until the Transmitter is ready while (! (UCSRA & (1 << UDRE)) ); //Get that data outa here! UDR = data; }