作为一个STM32的菜鸟级人物,我刚开端触摸STM32时,其实和当年开端学习51单片机的心思是相同的。茫然,谁说不是呢?但是,正常的学习途径无非便是看书,然后敲代码,最终烧程序,有问题就check,然后再持续烧,我都置疑我快成了庖丁工。由于在我的印象中,只要这类作业才和“烧”有着密不可分的联络。即便当一名敬业又牛逼的庖丁工是我一生的愿望。OK,不侃了。我期望,经过写日志把我作为一个菜鸟在学习STM32中的问题记录下来,一起以我为鉴,躲避那些没有必要的破事。
1. 学习STM32要不要根底
原则上它应该是需求的,但是,咱们也能发现许多人也是没有根底的。比如说,咱们实验室的大师兄原来是办理专业,但是现在适当牛逼,软硬皆通。假如你和许多致力于在技能领域中作出一番成果的人相同,你有必要记住:你再也不能任性地说要给自己一大块时刻体系地学习常识,不现实。更多的时分,状况是:敲代码时需求什么你就去找相应的“部分常识”,然后搞了解,处理当时的问题。便是这样。
2. 学习STM32需求什么根底
理论上,需求数字电路,模仿电路,C言语编程根底,单片时机一点就更好了,这样的话会能习惯STM32的编程开发思路。不过协助不大,这也是我要写“浅谈时钟问题”的原因。而我的状况是,全都学过,但你看清楚,仅仅学过罢了。关于数字电路和模仿电路这种课程,我也是记不得什么了。好在咱们实验室,技能方面的书历来不缺。
3. 学习STM32对性别有要求吗
一般,女生都会问这个问题。我也问过,所以你就知道我为什么能成为“妇女之友”了。打趣打趣啦。其实没有,女生在这方面有先天性的优势,心思细腻,稍一转化,这便是情绪仔细的近义词。并且,世界上第一个程序员是女人。
4. 进入正题
STM32的新手,一般都会对一个问题很纠结。我也是,便是所谓的”时钟问题“。咱们在尽心STM32编程时,会痛苦地发现这样一个现实:不论你要干嘛,你首先要做的一件事便是使能时钟。并且或许每一次的时钟仍是不同的。你就会问:为什么要使能时钟?为什么每次使能的时钟还不相同呢?为什么51单片机中没有这些鬼?
但是跟着电子产品集成度越来越高,功耗和发热越来越严峻,芯片厂商十分无法也在开端想办法防止这个问题,而最直接的思路当然便是用多少功用就使能多少功用,对每个外设的时钟都设置了开关,让用户可以精确地操控,封闭不需求的设备,到达节约供电的意图。假如不必的就彻底封闭,尽或许下降芯片功耗,所以就呈现了这么多的时钟和IO装备。说白了,时钟的功用就好像是一个小开关,你要用什么寄存器就先对应的翻开开关,即:使能对应的时钟。
实际上,在这儿边还涉及到一个时钟门控技能,而这又涉及到同步电路,咱们都知道(默许你们都知道)在同步电路中总是有一个时钟操控。这儿我就不赘述了,假如你和我相同是一个强迫症患者,请你回去翻翻一本叫《数字电子技能根底》的书,你必定可以找到答案的,信任我吧。
到这儿你就差不多可以了解为什么STM32编程需求不断地使能时钟了,由于默许状况下这些时钟都是disable的。你要使用它,当然需求enable了。假如再不了解,我就想骂了:寄存器是由D触发器组成的,只要送来了时钟,触发器才干被改写值,这样寄存器才干作业。只不过,在51单片机一个时钟体系把一切都包了,在STM32中,咱们很明确地做好了分工,让我们各司其职,其实这样还有一个优点便是,不是每个外设都需求体系时钟那么高的频率,就好像是:哪个公司会让CEO去做底层代码作业相同。