智能车制作
标题:
请问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