从零开始学STM32-M3

本文档是一份从零开始学习STM32-M3微控制器的教程,详细介绍了如何从验收开发板到实践编程的全过程。内容涵盖开发板的使用注意事项、原理图查看、软件安装、JLINK驱动、GPIO操作、寄存器配置、中断系统、时钟配置、Systick定时器应用、调试方法以及中断优先级管理等多个方面,旨在帮助初学者全面掌握STM32的基础知识和实践技巧。
摘要由CSDN通过智能技术生成

从零开始学STM32-M3

文章目录

第一集

开发者如何验收
如何从光盘找资料
  1. 联想法
  2. 索引法
  3. 直接法
如何查看原理图
使用时有哪些注意事项
  1. 供电注意事项
    1. DC005接口,供电范围是6~24V
    2. VOUT(2*3排针)可以做5V输出,也可以做输入
    3. 当开发板外接负载较重(电流大)时,要提供足够电源
    4. 开发板不支持JLINK等仿真供电
    5. 正常供电后,蓝色电源指示灯,必须亮,才可以使用开发板
  2. 例程测试注意事项
  3. IO使用注意事项
    1. IO口一琮不要接超过5V电压
    2. 不要用IO口直接驱动感性负载(电机、电磁阀、继电器等)
    3. 外接其他外设时,要先做好IO选型,选择合适的IO口
    4. 注意防静电
使用过程中遇到问题怎么办

第二集

网络学习资源介绍

拿到开发板怎么入手
学习开发板要参考哪些资料
要掌握哪些基本技能
  1. 编程语言:C语言
  2. 开发环境:Keil
  3. 调试工具:JTAG
  4. 库函数和寄存器
总结

第四集

为什么选择STM32

新的基于ARM内核的32位MCU系列

优点:

  1. 高性能、低成本、低功耗
  2. 标准的ARM架构

Cortex-M3系列属于ARMv7架构

ARMv7架构定义了三大分工明确的系列:

“A”系列:面向尖端的基于虚拟内在的操作系统和用户应用

“R”系列:针对实时系统

“M”系列:对微控制器

STM32概述

STM32是Cortex-M产品的家族

命名规则 :是根据闪存容量引脚数目来命名的,也跟外设有关

示例:STM32 F 103 C 8 T 6

STM32:基于ARM的32位微控制器

F:通用类型

103:增强型

C:48脚

8:64K

T:LOFP

6:

总结

第五集

芯片有哪些资源

芯片内部的结构

芯片引脚和功能怎么对应

数据手册

FT可以容忍5V

STM32最小系统设计

  • 供电

  • 复位

  • 时钟:外部晶振(2个)

  • Boot启动模式选择

  • 下载电路(串口/JTAG/SWD)

  • 后备电池

第六集

MDK软件安装

USB串口驱动安装

JLINK驱动安装

第七集

MKD软件安装

RealVlew MDK是Keil公司开发的,为基于Cortex、ARM7、ARM9等处理器设备的一个完整的开发环境

USB串口驱动安装

USB串口作用:

  1. 可以当串口使用
  2. 如果USB串口连接到STM32的串口1(STM32 ISP超载只能是串口1)的话,那么可以用来串口下载程序

JLINK驱动安装

第八集

硬件连接

一键下载方法

校验编程后执行√,编程到FLASH时写选项字节×,选择DTR的低电平复位,RTS高电平进BootLoader

STM32启动模式

启动模式选择引脚 启动模式 说明
BOOT1 BOOT0
X 0 主闪存存储器 主闪存存储器被选为启动区域
0 1 系统存储器 系统存储器被选为启动区域
1 1 内置SRAM 内置SRAM被选为启动区域

第一种配置是执行,第二种配置是下载

ISP下载步骤:

  1. BOOT0接3.3V,BOOT1接GND
  2. 按复位按键,实现下载

程序执行的一般步骤:

  1. mcuisp flymcu勾选“编程后执行”,发送命令直接从FLASH启动
  2. BOOT0接GND,BOOT1接任意电平,按一次复位

第九集

JLINK与开发板硬件连接

JLINK下载配置过程

下载常见问题

第十集

新建STM32工程模板

库函数和寄存器的区别:

本质上是一样的。我们可以在库函数里面,直接操作寄存器,因为官方库相关头文件有寄存器定义。但是不能在寄存器模板调用库函数,因为没有引入库函数相关定义。

新建工程模板:

  1. 在任意路径下新建文件夹Tempate
  2. 在Tempate文件夹下新建文件夹USER
  3. 打开Keil,新建project到USER文件夹下
  4. 选择芯片STM32F Series->STM32F103ZE
  5. 弹出的弹窗点击Cancel
  6. 在Tempate文件夹下新建CORE、OBJ、STM32F10x_FWLIB文件夹
  7. 把inc、src文件夹复制到STM32F10x_FWLIB文件夹下
  8. 把core_crn3. c、core_con3.h、startup_stm32f10x_hd.s复制到CORE文件夹下
  9. 把stm32f10x.h、system_stm32f10x.c、system_stm32f10x.h复制到USER文件夹下
  10. 把main.c、stm32f10x_conf.h、stem32f10x_it.c、stem32f10x_it.h复制到USER文件夹下
  11. 打开Keil,右键左边的文件夹名,点击Manager Project Items
  12. 改名Project Targets,新建Groups,名字与创建的文件夹相同
  13. 在Files下面添加上面复制的所有文件,USER要注意添加startlup_stm32f10x_hd.s文件
  14. 点击魔术棒,Ooutput选项下选择Select Folder for Objects,选择OBJ文件夹,且下面三个√都要打上(特别是Clreat HEX File一定要勾上)
  15. 点击魔术棒,C/C++选项下Define选项下填写STM32F10X_HD,USER_STDPERIPH_DRIVER,同一选项下选择Include Path,把CORE,USER,inc文件夹包括进来
  16. 把main函数下的所有东西删掉,把另外的 main函数内容复制进来,如果还有错误就把OBJ文件夹下的所有文件删掉重新编译
  17. 如果有中文乱码,在Edit处Configuration下把编码改成GB2312
  18. 添加SYSTEM文件夹,照上面的步骤添加头文件等

STM32固件库包简介

第十一集

新建寄存器模板

新建寄存器模板:

  1. 在任意路径下新建文件夹Tempate
  2. 在Tempate文件夹下新建文件夹USER、OBJ
  3. 打开Keil,新建project到USER文件夹下
  4. 选择芯片STM32F Series->STM32F103ZE
  5. 弹出的弹窗点击Cancel
  6. 复制startup_stm32f10x_hd.s文件到USER文件夹下
  7. 打开Keil,右键左边的文件夹名,点击Manager Project Items
  8. 新建两个组,一个命名为USER,另一个命名为SYSTEM
  9. 在SourceGroup 1添加startup_stm32f10x_hd.s文件
  10. 新建文件,命名为test.c,在USER组下添加此文件
  11. 把SYSTEM文件夹复制到Tempate文件夹下,并把SYSTEM组中添加所有文件
  12. 点击魔术棒,Ooutput选项下选择Select Folder for Objects,选择OBJ文件夹,且下面三个√都要打上(特别是Clreat HEX File一定要勾上)
  13. 点击魔术棒,C/C++选项下Define选项下填写STM32F10X_HD,同一选项下选择Include Path,把SYSTEM下的delay、sys、usart文件夹包括进来
  14. 把main函数下的所有东西删掉
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值