打印

将STM32F103的初始化问题:用LIB库后只工作在8MHz

[复制链接]
2799|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
re张风|  楼主 | 2012-4-6 17:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
为了写程序简单些(不想每次都加一大堆源文件及相关设置),把一些常的功能部份封装成静态LIB库,突然发现,系统初始化后,系统不能工作到72M,而始终处于8M工作(调用函数读取的系统工作时钟)。直接用源码编译就能工作到72MHz了,这是什么原因呢?
沙发
香水城| | 2012-4-6 17:42 | 只看该作者
按照LZ的说法,你是通过调用函数读取系统工作时钟来判断始终处于8M工作,那么实际的工作频率是多少呢?

使用特权

评论回复
板凳
re张风|  楼主 | 2012-4-6 20:57 | 只看该作者
实际工作频率也是8M,下面就是读取芯片工作时针的代码:
unsigned int SYSFre()
{
        RCC_ClocksTypeDef MyStemClk;

        RCC_GetClocksFreq(&MyStemClk);
        return MyStemClk.SYSCLK_Frequency;
}

使用特权

评论回复
地板
re张风|  楼主 | 2012-4-6 20:59 | 只看该作者
还有就是我写的延时程序,在源码下1ms延时程序大概差不多,但相同的代码放到用库初始化的程序中,就慢很多了!

使用特权

评论回复
5
fan_qh| | 2012-4-7 19:18 | 只看该作者
延时函数最好不用

使用特权

评论回复
6
re张风|  楼主 | 2012-4-7 20:48 | 只看该作者
有些时候只能用它!主要是有些时候测试时用得最多!我一般都配合freertos系统应用,需要延时的我都用系统提供的那个函数了!

使用特权

评论回复
7
re张风|  楼主 | 2012-4-9 10:50 | 只看该作者
这个问题还没处理呢,各位给个思路、建议、方法?

使用特权

评论回复
8
香水城| | 2012-4-9 10:54 | 只看该作者
建议LZ在调用库函数之后,检查一下对应寄存器的设置在两种方式下有什么不同,应该很快会找到问题。

使用特权

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

本版积分规则

个人签名:走,向前走,再走,继续走! http://www.uectr.com

51

主题

525

帖子

1

粉丝