STM32开发——简介、开发环境(Keil5、CubeMX)、HAL库

article/2025/10/25 16:06:56

目录

1.简介-初识STM32

2.开发环境

2.1使用Keil5

 2.2使用STM32CubeMX 

3.标准库与HAL库区别

4.推挽输出与开漏输出


1.简介-初识STM32

什么是单片机?

  • 单片机(Single-Chip Microcomputer)是一种集成电路芯片,把具有数据处理能力的中央处
    理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功
    能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成
    到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。

STM系列单片机命名规则

  • ST -- 意法半导体
  • M -- Microelectronics 微电子
  • 32 -- 总线宽度

项目 介绍
内核 Cortex-M3
Flash64K x 8bit
SRAM 20K x 8bit
GPIO 37个GPIO,分别为PA0-PA15、PBO-PB15、PC13-PC15、PDO-PD1
ADC2个12bit ADC合计12路通道,外部通道: PAO到PA7+PBO到PB1内部通道: 温度传感器通道ADC Channel 16和内部参考电压通道ADC Channel 17
定时器/计数器4个16bit定时器/计数器,分别为TIM1、TIM2、TIM3、TIM4TM1带死区插入,常用于产生PWM控制电机
看门狗定时器2个看门狗定时器 (独立看门狗IWDG、窗口看门狗WWDG)
滴答定时器1个24bit向下计数的滴答定时器systick
工作电压、温度2V —3.6V、-40°—C85°C
通信串口2 * IIC,2 * SPI,3 * USART,1 * CAN
系统时钟内部8MHz时钟HSI最高可倍频到64MHZ,外部8MHZ时钟HSE最高可倍频到72MHZ

2.开发环境

2.1使用Keil5

1.安装MDK

地址选择

2.破戒

3.安装芯片对应的固件包——F1固件包

双击固件包直接安装即可

 4.创建STM32F1模板工程

在魔术棒中的C/C++需要添加文件头文件路径 

 5.接线

烧录工具有很多种,比如:串口、J-Link、ST-Link、U-Link 等等,本教程使用 ST-Link。

安装驱动

  • 官网下载(慢)https://www.st.com/en/development-tools/stsw-link009.html
  • 资料包

接线

 6.编译及下载

 后两个编译生成hex文件

LOAD就是下载程序到开发板

需要程序运行,需要按一下开发班的复位按钮。

F12:查看对应函数的具体信息

 2.2使用STM32CubeMX 

作用:通过界面的方式,快速生成工程文件。

缺点:只能对IO口进行操作,不能生成复杂代码。

下载:官网(慢)https://www.st.com/zh/development-tools/stm32cubemx.html#overview

安装:一路下一步,建议不要安装在C盘

配置:更新固件包位置(比较大,默认在C盘,可以更改到其它盘)

  • help ---> update settings --> Firmware Repository

步骤:

1. 点击「ACCESS TO MCU SELECTOR」;
2. 左上角搜索对应的芯片,并在右侧双击对应的芯片;

3. 点击芯片对应的引脚,并进行配置;
4. 配置工程名称及位置:

 1. 按下图配置 Coder Generator :

 6. 点击右上角 generate code :

 7. 点击 Open Project 即可调用 Keil5 打开自动生成的工程文件。

3.标准库与HAL库区别

1. 寄存器

  • 寄存器众多,需要经常翻阅芯片手册,费时费力;
  • 更大灵活性,可以随心所欲达到自己的目的;
  • 深入理解单片机的运行原理,知其然更知其所以然。

2. 标准库

  • 将寄存器底层操作都封装起来,提供一整套接口(API)供开发者调用
  • 每款芯片都编写了一份库文件,也就是工程文件里stm32F1xx…之类的;
  • 配置结构体变量成员就可以修改外设的配置寄存器,从而选择不同的功能;
  • 大大降低单片机开发难度,但是在不同芯片间不方便移植。

3. HAL库

  • ST公司目前主力推的开发方式,新的芯片已经不再提供标准库;
  • 为了实现在不同芯片之间移植代码;
  • 为了兼容所有芯片,导致代码量庞大,执行效率低下。

4.推挽输出与开漏输出

推挽输出: 可以真正能真正的输出高电平和低电平。
开漏输出: 开漏输出无法真正输出高电平,即高电平时没有驱动能力,需要借助外部上拉电阻完
成对外驱动。


http://chatgpt.dhexx.cn/article/Eqp8H1KF.shtml

相关文章

STM32从零开始 - 第一章:开发环境STM32Cube套件

概述 STM32的开发环境并不唯一。 如果你习惯KEIL开发环境,可以用KEIL环境来开发,虽然代码编辑不太方便,但调试跟踪非常方便。 如果你更熟悉gcc/makefile,则可以自己写makefile来搭建自己的脚本编译环境。 代码编辑器个人还是推…

STM32系列 (一)开发环境的搭建

STM32简介 STM32是意法半导体(ST)推出一款32位的单片机。STM32具有超低的价格、超多的外设、丰富的型号、优异的实时性、极低的开发成本等优势。STM32凭借其产品线的多样化、极高的性价比、简单易用的库开发方式,迅速在众多32位单片机中脱颖而…

STM32几种流行开发环境的优缺点

有很多初学者在问:学习STM32,该用哪款开发工具? 我首先说一下我的观点: 1.没有最好,只有适不适合,适合自己的才是最好的。 2.开发工具很多,各有各的特点,有优点肯定也有缺点。 今…

STM32入门指南(0)—配置开发环境

STM32入门指南(0)—配置开发环境 文章目录 STM32入门指南(0)—配置开发环境开发环境介绍STM32CubeMX下载安装安装Java安装STM32CubeMX安装软件开发包 Keil uVision5下载安装解锁更多内容 开发环境介绍 这一系列的教程使用的都是 …

用html和CSS做个人简历

很多刚学web的同学第一个项目应该都是做一个个人简历,这个是查了多方资料的刚刚写出来的一个简历,所以可能会参考网上的一些代码,兄弟们拿去复制就可以。里面有的注释可能不太对劲,不要太在意,毕竟我也是一个刚学一周的…

简历模板推荐

简历模板推荐 话不多说,直接上干货。 今天给大家推荐几个还不错的简历模板网站。 木及简历(推荐👍) : 免费MarkDown在线简历-专业简历制作工具-木及简历 。 知页简历:名企精英都在用的专业简历 typorama…

HTML5,CSS制作个人简历

先建立index页面 <!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <meta name"viewport" content"widthdevice-width, initial-scale1.0"> <title>个人简历制作</title> …

HTML5+CSS——个人在线简历

期末作品用DW软件结合HTML和css来制作一个在线简历&#xff0c;成果图如下&#xff1a; HTML代码如下&#xff1a;主要使用表格来实现页面布局&#xff0c;页面中使用了文本溢出隐藏效果、点击相应的链接可以跳转到另一个网页等。 <!DOCTYPE html> <html> <hea…

HTML5个人简历模板制作

个人简历模板 几个主要属性值 rowspan 跨行数 width 宽度 cellpadding 内容与单元格之间的距离 cellspacing 单元格与单元格之间的距离 align 表格在文档中的对齐方式&#xff08;left center right&#xff09; 实现代码如下 在这里插入代码片 <!DOCTYPE html> <…

html+css的响应式个人简历

响应式个人简历 文章目录 响应式个人简历目录一、运行截图二、html代码三、CSS代码四、总结 目录 包括主页、关于我、个人技能、联系我四个页面&#xff0c;整个页面可以根据窗口大小调整。 一、运行截图 二、html代码 代码如下&#xff1a; <!DOCTYPE html> <html l…

个人简历需要写什么内容?简历模板的基本内容有哪些

很多人认为&#xff0c;个人简历应该做成形式多样颜色丰富设计十足的&#xff0c;而实际上HR对你感兴趣的并不是你的简历样式&#xff0c;而是你的简历内容。个人简历模板内容要怎么写呢&#xff1f;一份标准的简历表格基本内容有哪些呢&#xff1f;下面脚步网就来给大家介绍一…

CSS+html制作简历表

CSS格式 CSS样式的语法&#xff1a; css选择器{ 样式属性1:属性值&#xff1b; 样式属性2:属性值;. …} css选择器&#xff1a; 用于定位需要施加某些样式的某个或某一些标签&#xff0c;有ID选择器&#xff0c;class选择器&#xff0c;标签选择器等常用选择器可供选择使用。 …

用HTML和CSS编辑的简历模板

1. 工具&#xff1a; sublime或者EditPlus、任意浏览器 2. 代码文件 点击提取 密码: 5ee7 3. 效果

怎样用HTML做一份精美的简历(html5+css)

先来看一下效果图&#xff1a; 代码&#xff1a;index.html <!DOCTYPE html> <html> <head><title>简历二</title><meta charset"utf-8"><link rel"stylesheet" type"text/css" href"../css/mysty…

HTML+CSS实例:简单朴素的个人简历模板(HTML表格使用+css样式渲染)

个人简历模板 丑是丑了点&#xff0c;没有那么花里胡哨。。。 先看展示 代码实现 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"&g…

html+css个人简历/网页界面

代码如下&#xff1a; <!DOCTYPE html> <html><head><meta charset"utf-8" /><title>个人简历</title><link rel"stylesheet" href"css/li.css" /></head><body><div class"q&q…

2022最新简历模板

一份好的简历&#xff0c;要的不是花里胡哨&#xff0c;要的是简洁和内容相结合&#xff0c;这样的简历才是优秀的。 而且在排版设计上要适合HR快速阅读&#xff0c;用词、结构要专业。这样的简历模板&#xff0c;才是你需要的&#xff01; 下面我要分享几个免费高质量简历模…

设计模式--【模板模式】

在模板模式&#xff08;Template Pattern&#xff09;中&#xff0c;一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现&#xff0c;但调用将以抽象类中定义的方式进行。这种类型的设计模式属于行为型模式。 介绍 意图&#xff1a;定义一个操作中…

模板模式(设计模式)

模板模式 在模板模式(Template Pattern)中&#xff0c;一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现&#xff0c;但调用将以抽象类中定义的方式进行。这种类型的设计模式属于行为型模式。 1.介绍 意图&#xff1a;定义一个操作中的算法的骨架…

【JavaSE】Java设计模式详解(二)抽象模板模式

&#x1f481; 个人主页&#xff1a;Nezuko627的博客主页 ❤️ 支持我&#xff1a;&#x1f44d; 点赞 &#x1f337; 收藏 &#x1f918;关注 &#x1f38f; 格言&#xff1a;立志做一个有思想的程序员 &#x1f31f; &#x1f4eb; 作者介绍&#xff1a;本人本科软件工程在读…