打印
[STM32F1]

[STM32F103VET6]系统时钟问题

[复制链接]
2026|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
huaiqiao|  楼主 | 2015-10-23 23:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如题,朋友有个STM32F103VET6的板子,时钟的问题我有点疑惑。所以来发帖请各位大哥,帮忙看下。
这个程序,系统在执行SystemInit函数的时候,执行SetSysClock,但是这个system_stm32f10x.c中,有两个SetSysClock函数,其中一个
是SetSysClock,一个是static SetSysClock。所以看着就有点迷糊了。
我的问题是:
1、这个SetSysClock 这个函数,看起来是条件编译来确定系统时钟,在这个程序中是怎么设置的?
2、如果不接外部晶振,用f103内部的8mhz的HSI,这个该怎么设置呢?
程序和用户手册如附件。
GPIO-流水灯-使用库函数.rar (2.74 MB)
STM3210x参考手册(源享科技).pdf (3.54 MB)

沙发
zchong| | 2015-10-24 07:31 | 只看该作者
挂上仿真器跑一遍,看一下程序执行过程就清楚了,例程可参考st库里的程序

使用特权

评论回复
板凳
huaiqiao|  楼主 | 2015-10-24 10:00 | 只看该作者
zchong 发表于 2015-10-24 07:31
挂上仿真器跑一遍,看一下程序执行过程就清楚了,例程可参考st库里的程序 ...

因为这个SystemInit函数是在启动文件中,debug模式下能看到吗?

使用特权

评论回复
地板
zchong| | 2015-10-24 12:59 | 只看该作者
huaiqiao 发表于 2015-10-24 10:00
因为这个SystemInit函数是在启动文件中,debug模式下能看到吗?

仿真的界面那个运行到main不要选择即可

使用特权

评论回复
5
huaiqiao|  楼主 | 2015-10-24 16:17 | 只看该作者
哦,好的呢。我明白了,我试下 。有问题再来回复您。

使用特权

评论回复
6
gmm2015| | 2015-10-24 17:17 | 只看该作者
system_stm32f10x.c中不肯存在两个SetSysClock函数的,应该是声明、定义以及调用。实际的函数肯定只有一个。
1、条件编译是通过system_stm32f10x.c文件中的宏定义实现的。如:#define SYSCLK_FREQ_HSE    HSE_VALUE则是选择外部时钟。在如#define SYSCLK_FREQ_36MHz  36000000则是选择内部时钟,并将系统时钟设置到36M
2、如1中的回答

使用特权

评论回复
7
huaiqiao|  楼主 | 2015-10-24 17:30 | 只看该作者
gmm2015 发表于 2015-10-24 17:17
system_stm32f10x.c中不肯存在两个SetSysClock函数的,应该是声明、定义以及调用。实际的函数肯定只有一个 ...

哦,我想看看这个程序到底怎样具体配置的。4楼已经给出操作了,试一下咯。
感谢回答。

使用特权

评论回复
8
gejigeji521| | 2015-10-24 20:30 | 只看该作者
那个就是在之前用宏定义一个变量而已

使用特权

评论回复
9
冰河w| | 2015-10-24 21:17 | 只看该作者
6楼说的详细,应该是只有一个SetSysClock的

使用特权

评论回复
10
309030| | 2015-10-25 22:43 | 只看该作者
这个static SetSysClock是在哪出现的

使用特权

评论回复
11
huaiqiao|  楼主 | 2015-10-26 08:42 | 只看该作者
309030 发表于 2015-10-25 22:43
这个static SetSysClock是在哪出现的

在system_stm32f10x.c这个函数中

使用特权

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

本版积分规则

10

主题

600

帖子

2

粉丝