2007-04-19 01:08 AM
UART tansmission erroe when baud rate above 9600 bps?
2007-04-19 12:42 AM
STR711FR2 us used,
when setting UART at baud rate 9600 bps,it works fine, but above 9600 bps, transmission data received become scramble! any advise? setting as below, //----------------------------------------------------------------Uart2 config /* GPIO peripheral configuration -------------------------------------------*/ /* Configure the GPIO pins */ GPIO_Config(GPIO0, UART2_Tx_Pin, GPIO_AF_PP); GPIO_Config(GPIO0, UART2_Rx_Pin, GPIO_IN_TRI_CMOS); /* UART peripheral configuration -------------------------------------------*/ /* Configure the UART X */ /* Turn UART0 on */ UART_OnOffConfig(UART2, ENABLE); /* Disable FIFOs */ UART_FifoConfig (UART2, DISABLE); /* Reset the UART_RxFIFO */ UART_FifoReset (UART2 , UART_RxFIFO); /* Reset the UART_TxFIFO */ UART_FifoReset (UART2 , UART_TxFIFO); /* Disable Loop Back */ UART_LoopBackConfig(UART2 , DISABLE); /* Configure the UART0 as following: - Baudrate = 115200 Bps - No parity - 8 data bits - 1 stop bit */ UART_Config(UART2,19200,UART_NO_PARITY,UART_1_StopBits,UARTM_8D); /* Enable Rx */ UART_RxConfig(UART2 ,ENABLE);2007-04-19 01:08 AM
Given a certain APB clock frequency, possible baud rates are limited to a series of values:
BaudRate = Fapb / (16 * UARTn_BR), UARTn_BR = 1, 2, 3, ..., 65535 See Reference Manual for details. When the difference between baud rates on the transmitting and receiving sides exceeds a certain limit, errors in reception occur. In order to be able to precisely generate standard baud rates like 9600, 19200, 38400, 57600, 115200 and so on you have to use a special frequency for MCU clock, like 7.3728 MHz. Regards, - mike