Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >stm32编程入门书籍_STM32开发板

stm32编程入门书籍_STM32开发板

作者头像
全栈程序员站长
发布于 2022-10-04 09:19:10
发布于 2022-10-04 09:19:10
1.5K00
代码可运行
举报
运行总次数:0
代码可运行

大家好,又见面了,我是你们的朋友全栈君。

1. STM32需要了解的基础知识

STM32系列专为要求高性能、低成本、低功耗的嵌入式应用设计的ARM Cortex®-M0,M0+,M3, M4和M7内核,按内核架构分为不同产品:主流产品(STM32F0、STM32F1、STM32F3)、超低功耗产品(STM32L0、STM32L1、STM32L4、STM32L4+)、高性能产品(STM32F2、STM32F4、STM32F7、STM32H7)。

内核是ARM公司统一设计的

于ARMv7架构的Cortex系列由ARM公司在2006年推出,Cortex系列的推出满足人们对性能日渐复杂的设计要求,根据不同需求,Cortex系列共三个不同的子系列。Cortex-A系列主要面向一些复杂的应用,用来运行一些操作系统,运用到各类消费电子中;Cortex-R系列主要面向实时系统,运用到军事航天;Cortex-M系列主要面向微控制领域,为如今工业控制系统、微控制系统等对功耗和成本要求较高的嵌入式领域实现高性能低成本提供基础,对嵌入式系统编程进行了大大简化,可以说Cortex-M做到了集高性能、低功耗、低成本于一体。

参考链接:stm32_百度百科 (baidu.com)

参考链接:【普中教程视频】STM32F4开发板(完整版)_哔哩哔哩_bilibili

参考链接:ARM(英国ARM公司)_百度百科 (baidu.com)

参考链接:STM32是什么?STM32简介/结构与应用 – 知乎 (zhihu.com)

参考链接:DSP与STM32的对比浅见(一)_lingcoln的博客-CSDN博客_dsp和stm32的区别

参考链接:DSP与STM32的对比浅见(二)_lingcoln的博客-CSDN博客_stm32与dsp

2. STM32的4个库

先给结论:从ST公司的发展方向和主推的库来讲,目前使用HAL是最正确的选择。

下面就来讲讲开发STM32的四种库:

  • STM32Snippets
  • Standard Peripheral Library
  • STM32Cube LL
  • STM32Cube HAL

参考链接:STM32四种库对比:寄存器、标准外设库、HAL、LL | 贸泽工程师社区 (eetrend.com)

2.1 STM32Snippets

STM32Snippets是高度优化的示例代码集合,使用符合CMSIS的直接寄存器访问来减少代码开销,从而在各种应用程序中最大化STM32 MCUs的性能。每个STM32系列的100多个片段演示了如何以最小的内存占用有效地使用STM32外围设备。STM32Snippets目前官方只提供:STM32F0和L0的示例代码包。参考链接:STM32Snippets – STMicroelectronics

2.2 Standard Peripheral Library

简写SPL,也叫标准外设库。是一组外围设备的C语言代码集合。(因为现在ST官方主推STM32CubeMX,所以停止了对SPL的更新),标准外设库是在寄存器的基础上进行了一次简单封装,主要是面向过程的嵌入式系统开发人员。目前标准外设库支持STM32F0、 F1、 F2、 F3、 F4、 L1, 不支持F7、 H7、 MP1、L0、 L4、 L5、 G0、G4等后面推出的系列。所以,不要再问:在哪里下载L0的标准外设库了。参考链接:STM32 Standard Peripheral Libraries – STMicroelectronics

2.3 STM32Cube LL 和 HAL

LL:Low-Layer,底层库

HAL:Hardware Abstraction Layer,硬件抽象层库

STM32Cube HAL 和 LL配合STM32CubeMX工具对STM32进行开发。也是目前ST官方主推的一套开发STM32的库。HAL针对的是具有一定嵌入式基础的开发人员,HAL具有很好的移植性。LL库相对HAL,具有简单的结构,针对之前从事SPL(标准外设库),或寄存器开发的人员。STM32Cube HAL 和 LL是目前官方主推,并重点维护和更新的库,也建议大家都学习一下。而且新出来的型号(如L5、G4等系列)没有标准外设库,只有STM32Cube HAL 和 LL库了。参考链接:STM32CubeMX – STM32Cube initialization code generator – STMicroelectronics

3. 开发前的准备工作

3.1 软件

1.MDK 5 | (Keil uVision5)

ARM内核架构的集成开发环境

2.Keygen.exe

MDK 5激活成功教程工具,能支持到2032年。

3.Keil.STM32F4xx_DFP.2.16.0.pack

当我们安装好MDK 5后,想让MDK 5支持STM32F4xx芯片的开发,还要安装 STM32F4xx的器件支持包:Keil.STM32F4xx_DFP.2.16.0.pack(STM32F4系列的器件包)。注意:这个支持包是ARM Keil公司提供的,不是ST公司提供的。安装了芯片支持包之后,在新建项目的时候,才能找得到对应的芯片信号。

4.STM32CubeMX

HAL库是和STM32CubeMX配合使用的,STM32CubeMX软件可提供图形化的操作,在配置完之后,可最终生成一个项目框架。此时项目框架里已经包含了系统各种外设的初始化配置代码,即使会降低代码的运行效率,但这一点真的太香了!

5.仿真器驱动(我们使用ST-LINK)

不必多说,没安装仿真器驱动,系统无法识别仿真器,无法下载程序,没法儿玩。

同目录下:02_软件安装包.rar里。

3.2 硬件

仿真器 + 电路板(包含芯片的开发板 | 公司或自己设计的电路板)

3.3 资料

1. 电路板原理图

2. 芯片对应的 Reference manual + Datasheet (这个如果用外设库SPL编程应该用的多,但是用STM32CubeMX编程的话,应该用的不多)

3. 电路板使用的其它芯片资料

同目录下:

4 从零开始完成第一个程序

先说明一下,由于板子是公司开发的,第一个程序就不点灯了,改成实现串口通信吧。

4.1 首先使用STM32CubeMX生成项目框架

截图Warning! 截图 Warning! 截图warning!

首先选RCC,把系统时钟一配置。

网上讲的,有些设置要设置一下

4.2 串口代码

添加代码只需三行,功能就是每隔1000ms通过串口发送0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07 8个字节。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
int main(void)
{
  /* USER CODE BEGIN 1 */
    uint8_t data[8] = {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07}; // 这行是添加的
  /* USER CODE END 1 */
… 省略 …
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/* USER CODE BEGIN WHILE */
  while (1)
  {
    /* USER CODE END WHILE */
        HAL_UART_Transmit(&huart1,data,8,10); // 这行是添加的
        HAL_Delay(1000);
      /* USER CODE BEGIN 3 */
  }
/* USER CODE END 3 */

4.3 烧写代码流程

4.4 运行结果

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/196332.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年9月7日 上,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
STM32之HAL、LL和标准库
我们在进行STM32开发的时候,使用寄存器进行开发的终究是少数,大多数人还是习惯用库函数进行开发。到目前为止,有标准外设库、HAL库、LL库 三种。本文将分别介绍以下三种库,便于大家区分。
跋扈洋
2023/09/02
5.7K0
STM32之HAL、LL和标准库
STM32CubeMX入门教程(一)
本文介绍了如何使用STM32CubeIDE开发STM32CubeMX工程,通过配置外设、时钟、HAL库和LL库,实现LED0闪烁和UART接收5个字节的功能。
企鹅号小编
2018/01/08
28.9K0
STM32CubeMX入门教程(一)
【STM32】STM32CubeMX教程二–基本使用(新建工程点亮LED灯)
在配置好CubeMX之后,就是新建工程的开始了,那么首先我们需要一些准备,本片博客我们会很详细的介绍STM32CubeMx的基本使用和如何创建一个新的工程并且点亮LED灯 面向初学者 如果您想着快速实现工程的创建,可以直接跳过功能介绍,观看工程创建一栏
全栈程序员站长
2022/07/01
2.1K0
【STM32】STM32CubeMX教程二–基本使用(新建工程点亮LED灯)
STM32CubeMX教程之简介及基本使用
STM32CubeMX是意法半导体推出的图形化配置工具,通过傻瓜化的操作便能实现相关配置,最终能够生成C语言代码,支持多种工具链,比如MDK、IAR For ARM、TrueStudio等。尤其值得一提的是,TrueStudio已经被ST收购,提供完全免费的版本,并且,通过插件式安装,可以将STM32CubeMX集成在一个IDE,使用十分方便。如下图:
全栈程序员站长
2022/08/18
3.2K0
STM32CubeMX教程之简介及基本使用
STM32Cube-01 | 初识 STM32 Cube 生态系统
STM32Cube是ST公司开发的一套生态系统,致力于使STM32的开发变的更简单,并且100%开源免费。
Mculover666
2020/07/16
1.1K0
STM32Cube-01 | 初识 STM32 Cube 生态系统
keil MDK5搭建STM32开发环境
到keil的官方网站 http://www.keil.com/download/product/ 下载MDK-ARM并安装,注意可以更改安装路径,但是不能安在需要管理员权限的文件夹,例如不能在Program Files,否则会出现一些问题。
全栈程序员站长
2022/08/25
1.9K0
keil MDK5搭建STM32开发环境
ESP32与STM32哪种更适合初学者?
无论是刚入坑的小白,还是想扩展技术栈的老鸟,在选择主力 MCU 时,学习曲线绝对是重要的考量因素。
不脱发的程序猿
2025/04/13
2270
ESP32与STM32哪种更适合初学者?
RT-Thread 的 CPU 固件移植理解
在嵌入式领域有多重不同的 CPU 架构,我们知道 RT-Thread 是支持不同架构的嵌入式操作系统,我们先来大概看一下 RT-Thread 的架构。
苏州程序大白
2022/04/14
1K0
RT-Thread 的 CPU 固件移植理解
STM32L1学习笔记03 了解STM32CubeL1
LoRaMac工程作为开源项目还是很赶时髦的,它采用了ST在15年逐步推出的STMCube,它比早期的ST标准库更加抽象化。热心网友们还在标准库上玩耍时,我们要知道STMCube才是未来的大势所趋。也就是要玩STM32,就得开始玩STMCube啦。
twowinter
2020/04/17
4930
【STM32F407开发板用户手册】第1章 初学STM32F407的准备工作
最新教程下载:http://www.armbbs.cn/forum.php?mod=viewthread&tid=93255 第1章   初学STM32F407的准备工作 俗话说万事开头难,学习一门新
Simon223
2020/06/03
6.1K0
有没有支持直接运行MCU软件的模拟器?
目前市面上有几款可以直接运行 MCU 软件的模拟器,下面我将从几个主流的 MCU 开发环境出发,介绍一下可用的模拟器工具及其特点。
不脱发的程序猿
2025/02/07
1640
有没有支持直接运行MCU软件的模拟器?
stm32编程步骤_单片机STM32
近几年来,从云计算、大数据到机器学习、AI、物联网,各种新潮的技术概念一波~~接一波。于是就产生了一些好奇心旺盛,抱着去凑一凑热闹的心态,实际上却是也想分一杯羹儿的程序员!
全栈程序员站长
2022/10/04
2.5K0
stm32编程步骤_单片机STM32
【STM32H7】第4章 RL-USB移植(MDK AC5)
论坛原始地址(持续更新):http://www.armbbs.cn/forum.php?mod=viewthread&tid=99710 第4章 RL-USB移植(MDK AC5) 本章教程为大
Simon223
2021/03/02
5640
【STM32H7】第4章   RL-USB移植(MDK AC5)
移植FreeRTOS到小熊派开发板(STM32L431RCT6)
FreeRTOS源码分为两种,一种是FreeRTOS包,另一种是FreeRTOS LTS Release包。
Mculover666
2021/04/16
1.7K0
移植FreeRTOS到小熊派开发板(STM32L431RCT6)
【STM32】STM32 CubeMx使用教程一–安装教程
1、STM32CubeMX 是 ST 意法半导体近几年来大力推荐的STM32 芯片图形化配置工具,目的就是为了方便开发者, 允许用户使用图形化向导生成C 初始化代码,可以大大减轻开发工作,时间和费用,提高开发效率。STM32CubeMX几乎覆盖了STM32 全系列芯片。
全栈程序员站长
2022/08/11
1.8K0
【STM32】STM32 CubeMx使用教程一–安装教程
STM32新手入门教程[通俗易懂]
简介参考自:小马哥STM32四轴学习平台–DragonFly四轴STM32单片机软件入门级飞控算法课程
全栈程序员站长
2022/07/25
2.2K0
STM32新手入门教程[通俗易懂]
STM32CubeMX-27(补充) | 系统滴答定时器Systick的使用
本篇文章主要介绍STM32中Systick定时器的使用以及HAL_Delay函数的原理。
Mculover666
2020/07/16
5.8K1
STM32CubeMX-27(补充) | 系统滴答定时器Systick的使用
【安富莱STM32H7教程】第1章 初学STM32H7的准备工作
俗话说万事开头难,学习一门新的知识,难的往往不是知识本身,而是如何快速上手,需要什么资料和开发环境。一旦上手后,深入的学习就相对容易些了。
Simon223
2019/04/17
2K0
【安富莱STM32H7教程】第1章   初学STM32H7的准备工作
STM32Cube-02 | 获取并安装STM32CubeMX
本文中涉及到的安装包可以在官网下载到,速度比较慢,为了方便大家,我已上传到百度网盘,资源列表如下:
Mculover666
2020/07/16
8480
STM32Cube-02 | 获取并安装STM32CubeMX
STM32Cube-05 | 使用EXIT检测按键
因为没有设置硬件上拉,所以我们配置开启上拉电阻,并设置用户标签为KEY1和KEY2,接下来是最重要的一步:
Mculover666
2020/07/16
9800
STM32Cube-05 | 使用EXIT检测按键
相关推荐
STM32之HAL、LL和标准库
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验