当前位置: 首页 > news >正文

从零开始学习单片机16

STM32单片机

STM32和51单片机的区别

51单片机的外设资源少,寄存器少,运行速度慢,价格便宜,容易上手

STM32单片机的外设资源更多,寄存器多,运行速度相对快,价格相对贵,上手相对较难

STM32的寄存器寄存器非常多,更复杂,一般用库函数进行编程,也就是API接口,这是与51单片机编程时最大的区别

寄存器编程与库函数编程:

寄存器编程是直接操作寄存器的编程

库函数编程相当于是间接的寄存器编程,就是把寄存器的参数和配置封装成函数,可以调用函数进行外设初始化,厂家封装提供好的,只需要去操作厂家提供的函数,去初始化对应的一些外设,就可以完成对芯片的一些资源的使用

寄存器编程(直接对寄存器进行操作,是最接近底层的编程方式,也是运行效率最高的)

库函数编程(代码更好维护,开发过程更快,可移植能力强)

ST提供的3种库函数编程方式:标准库、HAL库、LL库

其中标准库是最早的,已经停止维护了,现在更多使用HAL库,LL库的效率更高,在特殊情况下使用,CubeMX现在里面只有HAL库和LL库

HAL库的优点:

最大可移植性

2.提供了一整套一致的中间件组件,如RTOS,USB,TCP/IP和图形等

3.通用的用户友好的API函数接口

4.HAL库已经支持STM32全线产品

学习STM32所需要软件:

Keil MDK用于编写代码,编译代码(与之前51单片机用的不同)

STM32CubeMX用于自动生成工程,减少手动重复工作

vscode用于更高效地编写代码

http://www.dtcms.com/a/356559.html

相关文章:

  • 数据结构——线性表(链表,力扣中等篇,增删查改)
  • AI接管浏览器:Anthropic发布Claude for Chrome,是效率革命还是安全噩梦?
  • MySQL-内置函数
  • Python 【深度解析】线程与进程:操作系统中多任务的核心机制
  • WebRTC音频QoS方法五(音频变速算法之Expand算法实现)
  • Nodejs介绍
  • FreeRTOS基础知识记录
  • MTK Linux DRM分析(二十)- KMS drm_mm.c drm_vma_manager.c
  • Docker部署单节点使用KRaft存储数据的Kafka与可视化界面Kafka-Map
  • el-table合并列实例
  • 云市场周报 (2025.08.29):解读阿里云g8y、腾讯云Serverless容器与FinOps趋势
  • 神经语言学与脑科学启发的NLP深层分析:从统计拟合到机制理解的范式转变
  • LeetCode 317 离建筑物最近的距离
  • Spring Boot 整合 MongoDB:CRUD 与聚合查询实战
  • vscode优化合集 - Visual Studio Code
  • TensorFlow 面试题及详细答案 120道(51-60)-- 模型保存、加载与部署
  • 字典解密助手ArchiveHelperWpfv1.0.12详细使用说明书
  • [awesome-nlp] docs | 精选NLP资源 | 分类
  • DVWA靶场通关笔记-暴力破解(Impossible级别)
  • Spring框架集成Kakfa的方式
  • 网络与信息安全有哪些岗位:(12)威胁分析师
  • LeetCode算法日记 - Day 25: 数组中的第K个最大元素、库存管理III
  • Docker的常用命令及简单使用
  • More Effective C++ 条款15:了解异常处理(exception handling)的成本
  • 判断语句中std::cin隐式转换为bool--重载operator bool()
  • Point Transformer V3(PTv3)【3:上采样unpooling】
  • 【C++详解】C++11(一) 列表初始化、右值引⽤和移动语义
  • 【查看css技巧】hover或者其他方式触发出来的样式如何查看
  • Linux网络基础1(一)之计算机网络背景
  • Java常用工具类