TI中文支持网
TI专业的中文技术问题搜集分享网站

uart的波特率设置问题,他与时钟的关系是怎么计算的

我用的 是tm4c1233的芯片,我想问 如果我软件里面设置波特率位115200如:

UARTConfigSetExpClk(UART0_BASE,SysCtlClockGet(), 115200,
                       (UART_CONFIG_WLEN_8 | UART_CONFIG_STOP_ONE |
                         UART_CONFIG_PAR_NONE));(问题1,这个一个字符发送的是10位把?)

就是这样的格式(115200-N-8-1),那我的分配到uart上的时钟是多少呢,

目前我是这么配置的SysCtlClockSet(SYSCTL_SYSDIV_2_5 | SYSCTL_USE_OSC | SYSCTL_OSC_MAIN |SYSCTL_XTAL_12MHZ);问题2,我这个时钟是多少,怎么计算的,我的外接晶震是12M。

SysCtlClockSet(SYSCTL_SYSDIV_2_5 | SYSCTL_USE_PLL| SYSCTL_OSC_MAIN |SYSCTL_XTAL_12MHZ);问题3,这个配置出来的时钟是80M吗,问题4,还有那个锁相环出来都是400M吗?

问题4,那个波特率跟时钟之间是怎么算,按照我上面问题给出的例子?

问题5,能帮我简单的解释下这张图吗?

xyz549040622:

1.是11位的,还要包括一个起始位的,你抓取下串口传送的波形就知道了

2.3.4 。

ROM_SysCtlClockGet函数可以读取回来当前的时钟频率。

应该是先倍频到200MHZ,再2.5分频就是80MHZ了

Michael Sun:

1. 一个起始位,8个数据位,1个停止位。

简单解释一下,上面的图会先把PLL倍频到400然后做一个2分频到200.

然后再分配得到主时钟。

UART波特率的配置,可以参考库函数UARTConfigSetExpClk的源码,这里寄存器操作一目了然。

赞(0)
未经允许不得转载:TI中文支持网 » uart的波特率设置问题,他与时钟的关系是怎么计算的
分享到: 更多 (0)