智能车制作

标题: 请问K60超频200M时,UART波特率应该为多少 [打印本页]

作者: 斯馨妍子    时间: 2013-3-29 09:26
标题: 请问K60超频200M时,UART波特率应该为多少
我在用K60 内核时钟100M时,uart3波特率为9600,能正确发送数据。超频到200M时,用9600就会乱,我多次试验后,觉得波特率又问题,试了其他的更快或更慢的都不行,已知波特率与外设时钟有关,而外设时钟由void sysinit (void)中的
作者: Y__man    时间: 2013-3-29 09:57
115200
作者: 洋葱圈    时间: 2013-3-29 11:12
本帖最后由 洋葱圈 于 2013-3-29 11:19 编辑

你用的库还是自己写的驱动呢,一般用库的话直接改内核频率,串口时钟会自动计算的。调到150试试。
已在你的前一个帖子回复。

作者: 斯馨妍子    时间: 2013-3-29 16:03
洋葱圈 发表于 2013-3-29 11:12
你用的库还是自己写的驱动呢,一般用库的话直接改内核频率,串口时钟会自动计算的。调到150试试。
已在你的 ...

我是用的库,请问总线时钟跟外设时钟是什么关系,我理解为外设时钟一般就是总线时钟,可是在系统初始化函数中,sysinit函数中periph_clk_khz = core_clk_khz / (((SIM_CLKDIV1 & SIM_CLKDIV1_OUTDIV2_MASK) >> 24)+ 1);
这不是说periph_clk_khz等于内核时钟的16分频吗?( MK60N512VMD100.h中有定义#define SIM_CLKDIV1_OUTDIV2_MASK                 0xF000000u)
而在pll_init又有将总线设为内核时钟的2分频
          //MCG=PLL, core = MCG, bus = MCG/2, FlexBus = MCG/2, Flash clock= MCG/4
          set_sys_dividers(0,1,1,3);


我注意到了程序中串口时钟可以自动计算,我有个问题就是库中periph_clk_khz跟busclock设置的为什么不同







欢迎光临 智能车制作 (http://111.231.132.190/) Powered by Discuz! X3.2