系统时钟设定为50MHz,UART/PWM运行于6MHz?

[复制链接]
3029|3
 楼主| monkeypony 发表于 2011-9-25 20:51 | 显示全部楼层 |阅读模式
我在使用LM3S818。我使用它来运行于最大时钟频率,为50MHz,我的代码执行的很好,但是我不能在这个频率性使用UART
 楼主| monkeypony 发表于 2011-9-25 21:51 | 显示全部楼层
SysCtlClockSet
(SYSCTL_SYSDIV_1 | SYSCTL_USE_OSC | SYSCTL_OSC_MAIN | SYSCTL_OSC_INT);

当我将时钟改为这个值后我就能使用UART了,但是我需要在50MHz下运行我的封闭回路,并且我的ADC读取会变慢。

SysCtlClockSet
(SYSCTL_SYSDIV_1 | SYSCTL_USE_OSC | SYSCTL_OSC_MAIN | SYSYCTL_XTAL_6MHZ);

有没有什么方法可以将UART和PWM设定为运行于6MHz,而将我的其它代码运行于50MHz的内部时钟?
elecintop 发表于 2011-9-25 21:56 | 显示全部楼层
有一些问题如下:
a)        我怀疑你能在不使用PLL-PLL时达到50MHz,是由于没有援引所列出的SysCtlClockSet()函数。
b)        ADC通常需要运行于内部时钟未16MHz的条件(因为你的3S818是老器件,可能会有摆动空间,但是最好检查MCU的规格)。

我们有其它偶尔报告的情况是使用UART和内部振荡器的问题。明智的做法是检查当前的MCU勘误表来查看这个解释是否解释了你的问题。
从你的描述来看,我不能说你是否启动了PLL,假设大量的代码示例存在于StellarisWare,它用UART和ADC调用PLL,也可能会达到你50MHz的目标。
永远的不知 发表于 2011-9-25 22:35 | 显示全部楼层
2# monkeypony

SysCtlClockSet
(SYSCTL_SYSDIV_1 | SYSCTL_USE_OSC | SYSCTL_OSC_MAIN | SYSYCTL_XTAL_6MHZ);
这设置的是6M,不是50M
您需要登录后才可以回帖 登录 | 注册

本版积分规则

133

主题

715

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部