On an NXP Semiconductors MCU such as the LPC55S69, a UART baud rate is derived from a system clock and an integer divider. Given a system clock, an oversampling factor, and a list of target baud rates, write a function that computes the best divider for each target baud and returns the resulting actual baud rate and percentage error.
Use the formula:
actual_baud = system_clock / (oversample * divider)
For each target baud rate, choose the positive integer divider that minimizes absolute percentage error. If two dividers produce the same error, return the smaller divider.
system_clock: integer clock frequency in Hzoversample: integer oversampling factortargets: list of integer target baud rates[target_baud, divider, actual_baud, error_percent]actual_baud and error_percent should be rounded to 2 decimal places.def compute_uart_baud_settings(system_clock, oversample, targets):