闲谈:当我第一次做stm32项目时候我觉得只要能做出东西就好了,后来随着考研过程,我学到了很多理论的东西,第二次第三次再读此文章你会发现很多东西真的懂了,这个时候才发现理论是多么的重要,我也希望借此博客向各位忠告,大学学的理论真的很重要,做东西第一步是要做出来,等做出来你要继续回过头来看,你会发现一些不一样的地方,你会发现你学到的东西远远比你第一次的时候学到的东西要多得多,你会更深一层,这样等你出来工作或者做研究你会发现你会比别人更深的理解stm32以及其他的单片机。至少当我把51单片机反复做的时候我学到的一些东西比别人要多的多,我也希望大家学单片机的时候反复学,反复看,不是程序硬件对了就对了,你要学会设计,你要想着怎么设计这个东西......
废话不多说:想学stm32先得学会看系统架构和时钟树。
此处借用原子哥的两张图
首先先看看每一个英文的含义:DMA——https://baike.baidu.com/item/DMA/2385376?fr=aladdin
① ICode 总线:该总线将 M3 内核指令总线和闪存指令接口相连,指令的预取在该总线上
面完成。
② DCode 总线:该总线将 M3 内核的 DCode 总线与闪存存储器的数据接口相连接,常量
加载和调试访问在该总线上面完成。
③ 系统总线:该总线连接 M3 内核的系统总线到总线矩阵,总线矩阵协调内核和 DMA 间
访问。
④ DMA 总线:该总线将 DMA 的 AHB 主控接口与总线矩阵相连,总线矩阵协调 CPU 的
DCode 和 DMA 到 SRAM,闪存和外设的访问。
⑤ 总线矩阵:总线矩阵协调内核系统总线和 DMA 主控总线之间的访问仲裁,仲裁利用
轮换算法。
⑥ AHB/APB 桥:这两个桥在 AHB 和 2 个 APB 总线间提供同步连接, APB1 操作速度限于
36MHz,APB2 操作速度全速。
此处为什么选择32768?
32.768khz比较容易分频以便于产生1秒的时钟频率,因为32768等于2的15次方
2^15 = 32768 = 32.768K,2的15次方正好等于32768,反过来讲,如果要把32.768K的时钟频率经过15次分频的话,得到的频率正好是1Hz。