在线时间4 小时
UID2082940
注册时间2014-4-1
NXP金币0
该用户从未签到
注册会员

- 积分
- 67
- 最后登录
- 1970-1-1
|

楼主 |
发表于 2014-7-1 15:46:13
|
显示全部楼层
回复:kl26开发板配置串口波特率问题
回复第 2 楼 于2014-07-01 15:38:35发表:
串口配置发一下,算的时候可能会四舍五入。
使用的是官方历程中的配置方式:
void uart_init (UART_MemMapPtr uartch, int sysclk, int baud)
{
register uint16 sbr;
uint8 temp;
if (uartch == UART1_BASE_PTR)
SIM_SCGC4 |= SIM_SCGC4_UART1_MASK;
else
SIM_SCGC4 |= SIM_SCGC4_UART2_MASK;
/* Make sure that the transmitter and receiver are disabled while we
* change settings.
*/
UART_C2_REG(uartch) &= ~(UART_C2_TE_MASK
| UART_C2_RE_MASK );
/* Configure the uart for 8-bit mode, no parity */
UART_C1_REG(uartch) = 0; /* We need all default settings, so entire register is cleared */
/* Calculate baud settings */
sbr = (uint16)((sysclk*1000)/(baud * 16));
/* Save off the current value of the uartx_BDH except for the SBR field */
temp = UART_BDH_REG(uartch) & ~(UART_BDH_SBR(0x1F));
UART_BDH_REG(uartch) = temp | UART_BDH_SBR(((sbr & 0x1F00) >> 8));
UART_BDL_REG(uartch) = (uint8)(sbr & UART_BDL_SBR_MASK);
/* Enable receiver and transmitter */
UART_C2_REG(uartch) |= (UART_C2_TE_MASK
| UART_C2_RE_MASK );
}
时钟频率从4M到48M可以配置的我都试过了,从115200 到300之间常用的波特率现在都可以实现了,唯独56000这个波特率不能实现。
|
|