The section of the UART/USART initialization for determining the baud rate had an error. The error pertained to first not containing the product of 16 and baud so the F_CPU is not divided by the 16 before the 16 is multiplied by the baud. The second problem was that the letter 'L' was not added after the 16. The L, in the C programming language informs the compiler that the 16 is a long integer.
uint16_t UBBRValue = lrint(( F_CPU / (16L * baud) ) - 1);
Comments and Additional Information
Have some code to share? Or additional information? Respond here:
You need to be logged in to save a response on this page. The response must be constructive, helpful, supplimentary or to correct the existing video, code or narrative content.