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

[复制链接]
3490|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延时程序大概差不多,但相同的代码放到用库初始化的程序中,就慢很多了!
fan_qh 发表于 2012-4-7 19:18 | 显示全部楼层
延时函数最好不用
 楼主| re张风 发表于 2012-4-7 20:48 | 显示全部楼层
有些时候只能用它!主要是有些时候测试时用得最多!我一般都配合freertos系统应用,需要延时的我都用系统提供的那个函数了!
 楼主| re张风 发表于 2012-4-9 10:50 | 显示全部楼层
这个问题还没处理呢,各位给个思路、建议、方法?
香水城 发表于 2012-4-9 10:54 | 显示全部楼层
建议LZ在调用库函数之后,检查一下对应寄存器的设置在两种方式下有什么不同,应该很快会找到问题。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

51

主题

525

帖子

1

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