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

发布时间:2023-09-22  

作为一个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去做底层代码工作一样。


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>