时间:2024-08-09 来源:网络搜集 关于我们 0
1、写在前面
想要明白这个问题,其实就需要明白STM8和STM32之间有些什么差异,包括MCU基本信息、开发难度、以及应用场景等。站在客观的角度来说,STM8比STM32学起来更容易,C语言功底还不错的朋友,直接上STM32也不是问题。从大的方向来说,当你对一种MCU掌握的比较透彻,再学其他型号、其他厂商的MCU,相对来说,上手都要容易的多。针对本文问题,我下面讲述一下相关知识。2、STM8和STM32内核差异
STM8™ CPU 是一种专有架构,它保持了以前的 ST7 内核的传统,同时在 8 位 CPU 效率和代码密度方面实现了突破。STM32 围绕行业标准 ARM® Cortex™-M 32 位内核构建,并受益于与 ARM 处理器有关的开发工具和软件解决方案的完整生态产业环境。尽管它们被认为是两种完全不同的处理器,但它们在架构方面实际有许多相似之处。下面对比STM8S 和 STM32F1 (Cortex-M3)这两种内核差异:3、片上外设差异
ST 8位和 32位 MCU 产品线之间的片上外设具有一致性,大多数基本 MCU 外设均定义和构建为可从一个产品系列移植到另一个产品系列。这通过将 8 位外设简单但有效地修改为 32 位字来实现。这样做的好处是可节约成本和功耗,并且资源易于了解。如果需要更高性能,可在系统层面通过更宽的总线和 DMA 控制器对资源加以补充。在了解了外设的工作原理后,可以将外设应用到 STM8S 和 STM32 系列,从而加速两种器件之间的转换。ARM 处理器和外设符合 AMBA 总线规范,采用 32 位数据总线,而 STM8S 器件使用更为简单但有效的 8 位总线标准。从功能角度看,它们仅在以下方面存在差异:寄存器大小:8 位与 16 或 32 位直接取决于 CPU 运行速度的最大时钟频率DMA,可通过简单数据管理减轻 CPU 的负荷并提高最大数据吞吐量一些产品特定功能,如 I/O 端口管理对比STM8S 和 STM32F1 的 SPI 框图:SPI寄存器:
4、系统外设
当今的 MCU 是复杂的 SoC(片上系统),其中不仅包含许多外设,还包含一些高级系统特性,旨在缩减物料清单或增强系统的安全性和稳定性。1.复位STM8S 和 STM32 基本具有相同的复位电路,仅有细微的差异:5、软件
STM8和STM32除了上面描述的一些内容具有高度一致性之外,其实,对应我们软件开发工程师来说,软件才是最为关心的一点。在STM8和STM32产品设计之初,工程师早就考虑过这个问题。因为二者系统、内核及外设都具有一致性,所以软件库也是设计具有一致性。1.寄存器、库开发这个我就不说了,从51过来的都知道,对于寄存器比较少的MCU来说,不是问题。对于STM8来说,其实我觉得还好,使用寄存器开发,就是需要更多时间了解寄存器。我其实不是很建议大家使用寄存器开发,现在STM8有标准外设库,库的API函数接口也容易理解,直接拿来省事,也能方便理解寄存器。那么对于STM32这种有大量寄存器的MCU,我同样也是不建议大家直接使用寄存器开发,部分功能可以针对库优化成寄存器。
2.STM8、32CubeMX工具STM8CubeMX和STM32CubeMX这两个工具我不止一次在公众号提到,ST官方的目前的趋势就是希望用户使用这个工具来开发。而且,大家已经发现,STM32有些新出来的MCU是没有标准外设库了。所以,这两个工具建议大家也要学习。STM8CubeMX目前更新至V1.3.0,只能提供配置,方便了解MCU使用资源情况,还不具备自动生成代码功能,不过我觉得后面应该具有这个功能。关注EET官方社区!查看更多好文章