打印
[技术问答]

为什么使用keil的device运行环境,系统时钟不正常?

[复制链接]
1312|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
开发工具:keilMDK
芯片:HC32L110

新建工程时选择CMSIS(core)和Device(Startup),结果延时demo函数1000ms,却不是1000,感觉非常快,把Device(Startup)去掉,用demo里的common文件夹代替启动文件,时钟正常。


使用特权

评论回复
沙发
请叫我树人| | 2019-4-8 08:30 | 只看该作者
真是个好帖子!我要顶住啊! 感谢分享啊! 真是不错啊!

使用特权

评论回复
板凳
martinhu| | 2019-4-9 18:31 | 只看该作者
那个延时是用的驱动库的延时函数还是自己写的延时cnt呢?

使用特权

评论回复
地板
hayden0|  楼主 | 2019-4-10 14:34 | 只看该作者
martinhu 发表于 2019-4-9 18:31
那个延时是用的驱动库的延时函数还是自己写的延时cnt呢?

demo库函数里的

使用特权

评论回复
5
martinhu| | 2019-4-23 15:04 | 只看该作者

delay1ms();这个函数吗?
你可以查看SystemCoreClock这个变量是直接赋值的还是用下面这个函数获取当前主频时钟的?
void SystemCoreClockUpdate (void) // Update SystemCoreClock variable
{
    SystemCoreClock = Sysctrl_GetHClkFreq();
}

使用特权

评论回复
6
consumption| | 2019-4-28 16:26 | 只看该作者
可能是底层配置没有匹配好

使用特权

评论回复
7
martinhu| | 2019-5-7 16:38 | 只看该作者

因为Device里面的startup相关文件,是没有包含clk.c里面的API函数,所以只设置了一个默认的主时钟参数4M。
而驱动库样例里面的这个函数,是通过API函数获取的主时钟参数,所以是可以跟随程序的时钟设置而变。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

61

主题

284

帖子

3

粉丝