OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2327|回复: 8

关于stm32时钟问题的疑惑,望大神解答

[复制链接]

7

主题

37

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
445
金钱
445
注册时间
2018-2-16
在线时间
27 小时
发表于 2018-2-18 12:49:22 | 显示全部楼层 |阅读模式
最近在学stm32,之前学过51,一直对于时钟问题不解,在学校也学过RC震荡电路,可很不理解。我逛了逛论坛,看了些帖子。
我的理解是时钟脉冲相当于各外设电路的开关,不提供能量,只是一个开关作用,时钟跳一下,开关打开,电流便流动一下,电子元件便工作一下。所以网上相关资料都说:时钟提供频率,不提供能量,没有时钟,单片机是不能工作的。原子哥解答,谢谢您啦。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

6

主题

462

帖子

0

精华

高级会员

Rank: 4

积分
906
金钱
906
注册时间
2017-12-15
在线时间
111 小时
发表于 2018-2-18 22:43:46 | 显示全部楼层
爱问问题的笨蛋 发表于 2018-2-18 19:38
电子器件为他提供电源,他就应该工作啊,工作的频率对于对于 一个电路来说有什么意义?

对于一个,电灯泡之类的系统,它确实没有用,但是。

逻辑器件,甚至单片机,他的工作状态需要根据人们的需求时刻改变,这种改变,我们需要通过信号批量地发送给器件。时钟的作用,就是给这每一段一段的信号进行分段,使器件能够将它们正确识别为指令。

即,用时间换取空间。

详见:串行与并行。
回复 支持 1 反对 0

使用道具 举报

11

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
128
金钱
128
注册时间
2017-8-28
在线时间
39 小时
发表于 2018-2-18 13:57:27 | 显示全部楼层
我也是刚学单片机,没有学过51,直接从stm32学起,或者这样不是从低学起不合适,所以也没有学到一些基础知识只能一点一点摸索。我也对时钟有些疑惑,我买了一些教学书籍,他们普遍是对技术层面的讲解,但是涉及到一些单片机的基础理念,基本就是零,我觉得这样对初学者很不友好,特别是自学的初学者。刚开始的时候,我就疑惑为什么要有时钟?那些书里会跟你说要开启开设时钟什么的,但是为什么要有时钟这个概念根本没有说明。我自己对时钟是这样理解的,输入单片机的是通过高低电平组成的信号,假如高电平为1,低电平为0,这样的话就组成了10101010的信号,但是数据之间并不都是那么壁垒分明的,如果输入的信号是1110000,就是前面是高电平后面是低电平,这时候如果没有时钟,那么这个11110000,会被系统理解成10?还是1100?还是11110000? 这几个信号所代表的数据是不一样的,所以需要一个时钟的概念,就像一把尺子,有标准的刻度,去量度信号,正确理解信号,不知道我这样理解时钟的存在原因有没有错。至于时钟在硬件方面是怎么从晶振转化成可以用软件操控的时钟,我现在也还搞不懂。另外现在又对时钟有一些疑问,就是为什么要分开系统总线时钟和外设时钟?如果把系统总线时钟设置成频率A,是不是就是系统(处理器、内存)的所有部件都运行在这个频率下?STM32可以在运行途中动态变更系统时钟吗?外设时钟可以设定高于系统的频率吗?
回复 支持 1 反对 0

使用道具 举报

6

主题

462

帖子

0

精华

高级会员

Rank: 4

积分
906
金钱
906
注册时间
2017-12-15
在线时间
111 小时
发表于 2018-2-18 13:20:07 | 显示全部楼层
你说得对。

你的困惑在哪
回复 支持 反对

使用道具 举报

6

主题

462

帖子

0

精华

高级会员

Rank: 4

积分
906
金钱
906
注册时间
2017-12-15
在线时间
111 小时
发表于 2018-2-18 14:19:27 | 显示全部楼层
foodyou 发表于 2018-2-18 13:57
我也是刚学单片机,没有学过51,直接从stm32学起,或者这样不是从低学起不合适,所以也没有学到一些基础知 ...

你的疑问,就是为什么要分开系统总线时钟和外设时钟?
出于设备的成本、功耗、性能的综合考虑。频率越高,性能和功耗就越高,但是成本也会提升。而且,一些外设没必要工作在过高的频率下(比如USB固定为48Mhz,I2C是400KHz),盲目砸钱提高他们的工作频率没有价值。

如果把系统总线时钟设置成频率A,是不是就是系统(处理器、内存)的所有部件都运行在这个频率下?
是的。

STM32可以在运行途中动态变更系统时钟吗?
可以的。典型例子,低功耗模式。

外设时钟可以设定高于系统的频率吗?
理论上可以,但是,如果这样,内核就无法计时向外设发送新指令,外设不能做到在全部时间内均工作。
回复 支持 反对

使用道具 举报

7

主题

37

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
445
金钱
445
注册时间
2018-2-16
在线时间
27 小时
 楼主| 发表于 2018-2-18 19:18:36 | 显示全部楼层
a496298685 发表于 2018-2-18 13:20
你说得对。

你的困惑在哪

您好,我模电和数电学的较水,请见谅。
我的疑惑是;时钟脉冲既然不为电路提供能量,那它是如何驱动电路工作的?时钟电路的重要性体现在哪?他在电路中究竟起什么作用?网上的普遍回答是,没有时钟单片机就跑不起来,就没办法实现定时等操作,但我反倒觉得如果时钟电路只是为单片机,为程序的执行提供一个时间轴来说,它反倒没有那抹重要了,所以拜托您作为前辈,帮忙解释一下,我不知道我的问题有没有阐述清楚,望您见谅。
回复 支持 反对

使用道具 举报

7

主题

37

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
445
金钱
445
注册时间
2018-2-16
在线时间
27 小时
 楼主| 发表于 2018-2-18 19:38:29 | 显示全部楼层
a496298685 发表于 2018-2-18 13:20
你说得对。

你的困惑在哪

电子器件为他提供电源,他就应该工作啊,工作的频率对于对于 一个电路来说有什么意义?
回复 支持 反对

使用道具 举报

6

主题

315

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1670
金钱
1670
注册时间
2018-1-29
在线时间
160 小时
发表于 2018-2-18 21:09:13 | 显示全部楼层
运行速度! 有点像跑得快,心跳加速
回复 支持 反对

使用道具 举报

7

主题

37

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
445
金钱
445
注册时间
2018-2-16
在线时间
27 小时
 楼主| 发表于 2018-2-19 18:52:46 | 显示全部楼层
a496298685 发表于 2018-2-18 22:43
对于一个,电灯泡之类的系统,它确实没有用,但是。

逻辑器件,甚至单片机,他的工作状态需要根据人们 ...

谢谢,我从别的途径还有您的解释中理解很多了,脑子里大概有模型了,感谢
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-21 01:33

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表