您现在的位置是:首页 >技术教程 >STM32开发——简介、开发环境(Keil5、CubeMX)、HAL库网站首页技术教程

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

趣知boy 2024-08-22 12:01:03
简介STM32开发——简介、开发环境(Keil5、CubeMX)、HAL库

目录

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.推挽输出与开漏输出

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

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。