【STM32+HAL+Proteus】系列学习教程2---STM32开发模式选择

这篇具有很好参考价值的文章主要介绍了【STM32+HAL+Proteus】系列学习教程2---STM32开发模式选择。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

实现目标

1、熟悉STM32开发常用的三种模式


一、STM32开发常用的三种模式

        STM32常用的开发模式有三种:基于寄存器开发、基于标准外设库开发、基于STM32CubeMX+HAL/LL开发。通常我们学习STM32的时候,首先都得先选择一种开发模式,不同的开发模式会导致编程的架构完全不一样。

1、 基于寄存器开发模式(STM32 Snippets)

        STM32 Snippets是高度优化的示例代码集合,使用符合CMSIS的直接寄存器访问来减少代码开销,从而在各种应用程序中最大化STM32 MCUs的性能。STM32Snippets主要针对底层开发人员,或者从51转过来,直接操作寄存器开发的人员。目前只在 STM32F0 和 STM32L0 系列中有提供。关于STM32F1系列基于寄存器开发资料正点原子公司有提供。

2、基于标准库开发模式(SPL)

        标准库全名叫标准外设库(Standard Peripheral Library),其实标准库所做的事情就是对寄存器进行了封装,形成了一套API函数供用户使用。主要是面向过程的嵌入式系统开发人员。通过标准外设库,开发者无需深入掌握底层硬件的细节就可以轻松地驱动外设,快速部署应用。因此,使用标准外设库可以减少开发者驱动片内外设的编程工作量,降低时间成本。由于现在ST官方主推STM32CubeMX,所以停止了对SPL的更新。

3、 基于STM32CubeMX+HAL/LL开发模式

        HAL:Hardware Abstraction Layer,硬件抽象层库。是目前ST官方主推的一套开发STM32的库。HAL针对的是具有一定嵌入式基础的开发人员,HAL具有很好的移植性。目前,HAL 库已经支持 STM32 全系列产品,它是ST 公司未来主推的库。

        此外,为了配合HAL库的开发应用,ST 公司还发布了一个新的软件开发工具产品:STM32CubeTM。这个产品由 PC 端的图形化配置与代码生成工具 STM32CubeMX、嵌入式软件库函数(HAL 库与LL 库)以及一系列的中间件集合(RTOS、USB 库、文件系统、TCP/IP协议栈和图形库等)构成。STM32CubeMX+HAL/LL开发模式大大减少了开发人员的工作量,提高程序开发的效率。

        LL(Low Layer)库是 ST 最近新增的库,与HAL 库捆绑发布,其说明文档也与 HAL文档编写在一起。STM32Cube HAL 和 LL配合STM32CubeMX工具对STM32进行开发。LL库相对HAL库,具有简单的结构,针对之前从事SPL(标准外设库),或寄存器开发的人员。LL 库近似于原来的标准外设库移植到 STM32CubeMX下的新的实现,但是其实现方法更加高效、简洁。

二、三种模式优缺点对比

开发模式名称

优点

缺点

基于寄存器(STM32Snippets)

  1. 代码简练、执行效率高;
  2. 有助于了解STM32 微控制器的架构与工作原理。
  1. 代码后期维护难,移植性差;
  2. 开发者需要有一定的底层编程基础。

基于

标准外设库(SPL)

  1. 对开发者的要求较低,会调用 API 即可编写程序;
  2. 代码容错性好且后期维护简单;
  3. 适合快速入门。
  1. 运行速度相对寄存器级的代码偏慢;
  2. 比较不利于开发者深入掌握 STM32 微控制器的架构与工作原理。

基于STM32CubeMX+HAL

  1. 初始代码框架自动生成,这简化了开发者新建工程、编写初始代码的过程;
  2. 图形化配置与代码生成工具操作简单、界面直观,这为开发者节省了查询数据手册了解引脚与外设功能的时间;
  3. 采用的是HAL库,代码移植性最好。
  1. 函数调用关系比较复杂、程序可读性较差、执行效率偏低;
  2. 需要对STM32微控制器的基础知识和外设工作原理有一定的了解。

        由上表可知基于STM32CubeMX+HAL开发的优点非常明显,再加上近年来,ST公司已不再为其推出的新品微控制器配备对应的标准外设库。而STM32CubeMX +HAL已为ST 公司目前主推的一种开发模式,对此,为了顺应技术发展的潮流,我们选择基于STM32CubeMX+HAL开发模式。文章来源地址https://www.toymoban.com/news/detail-860906.html


总结

到了这里,关于【STM32+HAL+Proteus】系列学习教程2---STM32开发模式选择的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【STM32】标准库与HAL库对照学习教程十四--CAN总线

    STM32全部教程 :【STM32】标准库与HAL库对照学习系列教程大全 本篇介绍如何使用STM32的标准库与HAL库对CAN总线的使用,由于我那块普中的STM32F103ZET6开发板送人了,因此我这边用STM32F103C8最小系统板,进行简单的演示一下功能,最主要的还是需要理解CAN总线的原理,在本篇中,

    2024年02月15日
    浏览(46)
  • 《安富莱_STM32-V6开发板ThreadX内核教程(V1.5)》简单整理学习

    函数描述: 函数tx_thread_create 用于实现 ThreadX操作系统的任务创建,并且还可以自定义任务栈的大小。 函数形参: 第1个参数 thread_ptr 是任务控制块地址。 第2个参数 name_ptr 是任务名,这个参数主要是用于调试目的,调试的时候方便看是哪个任务。 第3个参数 entry_function 是任

    2024年02月19日
    浏览(40)
  • STM32野火教程学习笔记

    虽然经历了疫情期间的价格起飞,但是STM32系列的单片机仍然是各个控制领域内主流的微控制器。它是控制人的必修课之一。 我们在学习51单片机的时候,通常是通过编写程序直接对其输入输出(i/o)口进行操作。而STM32单片机更加高级,它有更复杂的底层。因此我们对STM32单

    2024年02月06日
    浏览(93)
  • STM32学习·HAL库·STM32CubeMX系列学习(安装和使用)

    目录 ​编辑 1.  STM32CubeMX简介 2.  STM32CubeMX安装 2.1  STM32CubeMX软件获取 2.1.1  获取Java软件 2.1.2  STM32CubeMX软件获取 2.2  搭建Java运行环境 2.3  安装STM32CubeMX软件 2.4  下载和关联STM32cube固件包         STM32CubeMX 是 ST 微电子公司推出的一款图形化配置工具,用于快速启动

    2024年02月19日
    浏览(53)
  • STM32的HAL库开发系列 - CAN通信实例

    CAN通信是一种高效、可靠、灵活的数据传输方式,适用于各种应用场景,在工业自动化、汽车电子、医疗设备等领域有着广泛的应用。 但理解CAN通信的实际应用,也不能全部只看软件方面,还需要对硬件上也有了解。 在硬件上,CAN通信使用两条线路:一条是数据线(CAN_H),

    2024年02月12日
    浏览(47)
  • STM32F1系列HAL库开发——RTC实时时钟

    实时时钟(Real Time Clock,RTC),是一个可以不使用系统主电源供电的定时器。在系统主电源断开 的情况下,依靠纽扣电池供电继续计时,只要都VBAT不断,都不影响RTC正常工作,只有当系统电源VDD和纽扣电池VBAT都断开时,RTC才停止工作。RTC的时钟源有三个。第一个由外部高速

    2023年04月18日
    浏览(47)
  • STM32的HAL库开发系列 - GPIO中断/外部中断EXTI

    STM32的HAL库开发系列 - GPIO中断/外部中断EXTI 中断它可以在GPIO口的电平发生变化时产生中断,从而使得STM32微控制器能够及时响应外部设备的变化。 STM32的GPIO中断/外部中断EXTI可以配置为上升沿中断、下降沿中断和双边沿中断三种类型,分别在GPIO口电平从低电平变为高电平、从

    2024年02月12日
    浏览(42)
  • 正点原子STM32嵌入式学习-keil5安装教程

    前言:本人没有什么嵌入式的经验,但是看到硬件的同事做开发板比较好玩,比较感兴趣。刚好有这样一个机会,可以跟随《原子教你玩STM32(库函数版)》课程线下学习,在此,将本次课程的学习做一个记录。相信对我这样一个小白来说,帮助还是会非常大的。 目录 一.下

    2024年03月10日
    浏览(78)
  • STM32CubeIDE + HAL + STM32f103C8T6 系列教程1 ---板载PC13LED闪烁

    之前的系列教程都是基于Arduino的,但是公司招聘51和stm32的开发还是多些,所以特别开了一个stm32的系列。 这个系列特点是注重了 Arduino 编程思维和习惯下向STM32开发的过渡 。前期没有涉及到太多寄存器相关的知识,利用HAL库和STM32CubeIDE快速入手STM32的数字输入/输出、模拟输

    2024年02月16日
    浏览(45)
  • STM32入门教程课程简介(B站江科大自化协学习记录)

    STM32最小系统板+面包板硬件平台 STM32面包板入门套件 Windows电脑 万用表、示波器、镊子、剪刀等 Keil MDK 5.24.1 是一款嵌入式软件开发工具,它提供了一个完整的开发环境,包括编译器、调试器和仿真器。它支持各种微控制器,包括 ARM、Cortex-M、Cortex-R 和 8051 等。Keil MDK 是一款

    2023年04月08日
    浏览(71)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包