为什么STM32单片机编程时需要使能时钟

发布者:温馨小筑最新更新时间:2023-09-22 来源: elecfans关键字:STM32  单片机  使能时钟 手机看文章 扫描二维码
随时随地手机看文章

作为一个STM32的菜鸟级人物,我刚开始接触STM32时,其实和当年开始学习51单片机的心理是一样的。茫然,谁说不是呢?但是,正常的学习途径无非就是看书,然后敲代码,最后烧程序,有问题就check,然后再继续烧,我都怀疑我快成了火头工。因为在我的印象中,只有这类职业才和“烧”有着密不可分的联系。即使当一名敬业又牛逼的火头工是我毕生的梦想。OK,不侃了。我希望,通过写日志把我作为一个菜鸟在学习STM32中的问题记录下来,同时以我为鉴,规避那些没有必要的破事。

 

1. 学习STM32要不要基础

原则上它应该是需要的,但是,我们也能发现很多人也是没有基础的。比如说,我们实验室的大师兄原来是管理专业,但是现在相当牛逼,软硬皆通。如果你和很多致力于在技术领域中作出一番成就的人一样,你必须记住:你再也不能任性地说要给自己一大块时间系统地学习知识,不现实。更多的时候,情况是:敲代码时需要什么你就去找相应的“部分知识”,然后搞明白,解决当前的问题。就是这样。

2. 学习STM32需要什么基础

理论上,需要数字电路,模拟电路,C语言编程基础,单片机会一点就更好了,这样的话会能适应STM32的编程开发思路。不过帮助不大,这也是我要写“浅谈时钟问题”的原因。而我的情况是,全都学过,但你看清楚,只是学过而已。关于数字电路和模拟电路这种课程,我也是记不得什么了。好在我们实验室,技术方面的书从来不缺。

3. 学习STM32对性别有要求吗

一般,女生都会问这个问题。我也问过,所以你就知道我为什么能成为“妇女之友”了。玩笑玩笑啦。其实没有,女生在这方面有先天性的优势,心思细腻,稍一转化,这就是态度认真的同义词。而且,世界上第一个程序员是女性。

4. 进入正题

STM32的新手,一般都会对一个问题很纠结。我也是,就是所谓的”时钟问题“。我们在尽心STM32编程时,会痛苦地发现这样一个事实:不管你要干嘛,你首先要做的一件事就是使能时钟。而且可能每一次的时钟还是不同的。你就会问:为什么要使能时钟?为什么每次使能的时钟还不一样呢?为什么51单片机中没有这些鬼?


在学51单片机的时候,基本上接触不到I/O方向和外设时钟的概念,I/O想输入就直接读,想输出就直接赋值,串口、AD转化、外部中断等等也都是想用就用,不需要单独配置时钟。这样在初学时的确方便了很多,不需要有乱七八糟的设置就能让芯片跑起来,但是随之带来的就是所谓的功耗问题。但是作为初学者,谁他妈还管这个啊?能让程序跑起来就已经让我们兴奋得几个晚上睡不着觉了。说这话不太合适,但事实上很多芯片生产厂商也不考虑这个问题。


可是随着电子产品集成度越来越高,功耗和发热越来越严重,芯片厂商非常无奈也在开始想办法避免这个问题,而最直接的思路当然就是用多少功能就使能多少功能,对每个外设的时钟都设置了开关,让用户可以精确地控制,关闭不需要的设备,达到节省供电的目的。如果不用的就完全关闭,尽可能降低芯片功耗,所以就出现了这么多的时钟和IO配置。说白了,时钟的功能就好像是一个小开关,你要用什么寄存器就先对应的打开开关,即:使能对应的时钟。


实际上,在这里面还涉及到一个时钟门控技术,而这又涉及到同步电路,我们都知道(默认你们都知道)在同步电路中总是有一个时钟控制。这里我就不赘述了,如果你和我一样是一个强迫症患者,请你回去翻翻一本叫《数字电子技术基础》的书,你一定可以找到答案的,相信我吧。


到这里你就差不多能够理解为什么STM32编程需要不断地使能时钟了,因为默认情况下这些时钟都是disable的。你要使用它,当然需要enable了。如果再不明白,我就想骂了:寄存器是由D触发器组成的,只有送来了时钟,触发器才能被改写值,这样寄存器才能工作。只不过,在51单片机一个时钟系统把一切都包了,在STM32中,我们很明确地做好了分工,让大家各司其职,其实这样还有一个好处就是,不是每个外设都需要系统时钟那么高的频率,就好像是:哪个公司会让CEO去做底层代码工作一样。


关键字:STM32  单片机  使能时钟 引用地址:为什么STM32单片机编程时需要使能时钟

上一篇:STM32单片机ISP下载的方法解析
下一篇:STM32各个系列时钟调高时出现异常案例

推荐阅读最新更新时间:2024-11-02 15:36

单片机蜂鸣器生日快乐歌
硬件连接: 代码: #include reg52.h #define uchar unsigned char #define uint unsigned int sbit BEEP = P3^7; uchar code SONG_TONE = { 212,212,190,212,159,169,212,212,190,212,142,159,212,212,106,126,129,169,190,119,119,126,159,142,159,0 }; uchar code SONG_LONG = { 9,3,12,12,12,24,9,3,12,12,12,24,9,3,12,12,12,12,12,9
[单片机]
<font color='red'>单片机</font>蜂鸣器生日快乐歌
利用单片机和FPGA器件实现等效和实时采样方式的数字示波器
引言 数字示波器自上个世纪七十年代诞生以来,它已成为测试工程师必备的工具之一。随着近年来电子技术取得突破性的进展,催生了更庞大的数字示波器市场需求。此外,信号传输在现代工程中是很重要的一个技术环节,但在信号传输中,数字信号将对模拟信号产生干扰,目前采用的解决方法是利用单片机来实现模拟信号和数字信号在单线中的混合传输,而这其中的测试和调试就要求示波器必须能够对数字信号和模拟信号同时进行分析和显示。因此,这里介绍一种基于等效和实时采样数字示波器的设计。 2 设计方案 2.1 采样方案 选择实时采样和等效采样相结合的方式,实时采样速率小于1 MS/s,水平分辨率至少为20点/div,故系统50 kHz以下采用实时采样方式,而50 k
[测试测量]
利用<font color='red'>单片机</font>和FPGA器件实现等效和实时采样方式的数字示波器
stm32 学习笔记 systick定时器
开发STM32,遇到一些简单的需要计时的任务,比如延时等,最方便的是其提供的systick。 systick其实本为移植操作系统提供滴答时钟的方便。 前两天再次接触STM32,使用了V3.5的库,突然发现繁琐的Systick用法被简化成一句话。 即: void SysTick_Configuration(void) { if (SysTick_Config(SystemCoreClock / 1000000))//72, 1us per tick { /* Capture error */ while (1); } } 而Systick_Config函数已经取代了之前所有的设置过程。 systick.c文件也
[单片机]
AT89C2051单片机倒车防撞系统设计方案
  本方案所设计的倒车防撞报警系统采用软、硬件结合的方法,具有模块化和多用化的特点。设计中介绍了超声波检测的发展及基本原理,阐述了超声波传感器的原理及特性。对于系统的一些主要参数进行了讨论,并且在介绍超声波测距系统功能的基础上,提出了系统设计的总体构成,本方案的提出将对汽车主动防撞乃至自动驾驶产生,给驾驶者提供一个倒车的操作指令。   1.引言   众所周知,要检测两头之间是否有障碍物,一般的做法是一头发射一个信号,在接收处判断是否有信号接收到,若有信号接收到,说明中间没有障碍物;若接收不到,则说明有障碍物。然而在汽车倒车防撞报警系统的设计中,由于汽车是一个移动的物体,不可能在某一具体的位置上安装接收或发射装置,这就决定了系统的发
[单片机]
AT89C2051<font color='red'>单片机</font>倒车防撞系统设计方案
基于MSP430系列单片机复位电路系统设计分析
   0 引言    TI公司的混合信号处理器 MSP430系列单片机以其处理能力强大、外围器件集成度高、功率消耗低、产品系列全面、全系列工业级等特点,作为目前MCU主流市场的产品之一,在电子应用领域中得到广泛应用,被越来越多的电子设计师所青睐。由于 复位电路设计问题而导致的系统出现上电后不工作或状态不正确是很多MSP430单片机电路设计者们在设计、调试和应用中曾遇到过的问题,尽管这种情况发生的几率很低,但对于可靠性要求较高的应用场合,这个现象仍需引起电子设计人员的足够重视。   为此,本文对MSP430全系列单片机的复位系统和复位机制进行了详细深入的分析,并针对性地提出了具体的外围复位电路设计方案和有关电子元器件的详细
[单片机]
基于MSP430系列<font color='red'>单片机</font>复位电路系统设计分析
51单片机驱动步进电机电路及汇编程
  在这里介绍一下用51单片机驱动步进电机的方法。   这款步进电机的驱动电压12V,步进角为 7.5度 . 一圈 360 度 , 需要 48 个脉冲完成!!!   该步进电机有6根引线,排列次序如下:1:红色、2:红色、3:橙色、4:棕色、5: $、6:黑色。   采用51驱动ULN2003的方法进行驱动。   ULN2003的驱动直接用单片机系统的5V电压,可能力矩不是很大,大家可自行加大驱动电压到12V。   ;******************************************************************   ;****************************步
[单片机]
51<font color='red'>单片机</font>驱动步进电机电路及汇<font color='red'>编程</font>序
实验8 舵机
舵机如上图所示,左图为9g舵机,右图为55g舵机,与直流减速电机不同,它的工作方式是根据脉冲宽度转到对应的角度,转角范围是180度。PWM波控制信号的脉冲宽度对应的舵机转角如下图所示。 舵机有一个三线的接口。脉冲信号端连接橙色线(或者黄色线),+4.8V~+6V电源连接红线接,地线连接绿色线(或者棕色线)。 舵机可用作机械手、人形机器人、六足机器人、码垛机器人的执行元件。 一、库函数 1、打开DAHUME MINI.stw文件; 2、在STVD左侧Workspace窗口Source Files目录下找到main.c,双击打开; 3、编写如下代码; #include main.h void s
[单片机]
实验8 舵机
STM32独立看门狗IWDG
独立看门狗Iwdg——有独立时钟(内部低速时钟LSI---40KHz),所以不受系统硬件影响的系统故障探测器。主要用于监视硬件错误。 窗口看门狗wwdg——时钟与系统相同。如果系统时钟不走了,这个狗也就失去作用了,主要用于监视软件错误。 一,独立看门狗 看门狗定时时限= IWDG_SetReload()的值 / 看门狗时钟频率 看门狗时钟频率=LSI(内部低速时钟)的频率(40KHz)/ 分频数 1.STM32 独立看门狗IWDG的时限定为280微秒。这个时限可能会随着LSI(内部低速时钟)的频率漂移而产生微小的变化。 /* IWDG timeout equal to 280 ms (the timeout may varies
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved