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
    Flash 64K x 8bit
    SRAM  20K x 8bit
    GPIO  37个GPIO,分别为PA0-PA15、PBO-PB15、PC13-PC15、PDO-PD1
    ADC 2个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.推挽输出与开漏输出

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

    物联沃分享整理
    物联沃-IOTWORD物联网 » STM32开发简介及环境配置(Keil5、CubeMX、HAL库)

    发表评论