第一章 初识STM32
前言
单片机是进入嵌入式大门的第一步,也是非常重要的一环,我遇到了很多人虽然会写代码,但是不知所以然,这样是不正确的,限制了自己的上限,作为一个软件工程师理论和实际动手能力应该是四六分,所以本系列将会重点工程中会怎么做,以及一个工程如何从0到1。
一、ARM不等于STM32
ARM是内核架构,我们常听到天玑9000(ARMV9架构),晓龙8 Gen2(Cortex A7)都是ARM的架构,我们的STM32同时也包括我们国产的雅特力、国民技术、新唐、极海、GD 、DG等等都是采用ARM的 Cortex-M内核。
ARM的Cortex-M又有很多系列 主流的有以下M0、M3、M4、M7系列,本人在工作中用的最多的是M4 其次是M3,也有用过M7内核的STM32H723用来做光谱仪,他们之间有什么不同呢?最简单的回答也是最雏鸡的回答:“速度不同,M后的数字越大越快”。准确来说这个方面还有更多的是外设还有总线矩阵、MPU、FPU、CACHE等等的不同。我们来简单的对比以下M3和M7的区别。
二、芯片总线
1.STM32F103xx

2.STM32H723xx

三、内核与外设
有一些新手朋友就会问了内核与外设之间的关系啦,我昨天也突发奇想问一下我公司的几个刚毕业的同事,给出的答案令我大吃一惊,有的直接说不知道,有的说每个人的理解都不一样。
外设就是外部的设备,例如:GPIO、ADC、IIC、UART、SPI等等。
内核就是内部的核心,例如流水线、指令集等等。
STM32芯片内部可以粗略的划分为内核+片上外设。就例如我们的电脑,内核就是CPU,内存条、主板、硬盘都是属于外设。

四、主频即正义

总结
上述内容都是一些做好一个单片机软件工程师必须知道的东西,就是一个概念性的东西,下一篇文章会讲述STM32的GPIO的HAL库和固件库,以及实际工程中的使用。