初识STM32单片机-概述&工程建立

一、STM32概述

  • STM32是ST公司基于ARM Cortex-M内核开发的32位微控制器
  • 高性能系列:STM32F2、F4、F7和H7系列;
  • 主流系列:STM32G0、F0、F1、G4和F3系列;
  • 超低功耗系列:STM32L0、L1、L4、L4+、L5和U5系列;
  • 无线系列:STM32WL和WB系列;

二、STM32F103C8T6概述

  • 系列:主流系列STM32F1
  • 位数(寄存器):32位
  • 内核:ARM Cortex-M3
  • 主频:72MHZ
  • RAM:20K(SRAM)
  • ROM:64K(Flash)
  • 供电:2.0~3.6V(标准3.3V)

  下面给出此芯片的片上资源/外设

在这里插入图片描述

  NVIC和SysTick是内核内的外设,其余外设是内核外的

  下面给出STM32系统结构图

在这里插入图片描述

  举例说明:开启RCC时钟,从而控制AHB到APB的桥(AHB2APBx),它通过APB1(36MHZ)和APB2(72MHZ)外设总线连接所有的APB设备,例如GPIOx、TIM1、ADC等等

  下面给出STM32F103C8T6的引脚定义

在这里插入图片描述

  类型中S代表电源、I代表输入、O代表输出、I/O代表输入输出;电平中FT表示可以容忍5V电压、其余只能容忍3.3V,如果3.3V电压想要接5V电压,需要电压转换电路;主功能是指上电默认的功能,默认复用功能就是IO口上同时连接的外设功能引脚,配置IO口时,可以选择通用功能,还是复用功能;重定义功能,如果有两个功能同时复用在一个IO口上,那就可以重映射到此口上

  • VBAT:备用电池供电,接3V电池,系统电源断电时,备用电池可以给内部RTC时钟和备份寄存器提供电源
  • PC13-TAMPER-RTC:IO口/侵入检测/RTC
  • PC14-OSC32_IN/PC15-OSC32_OUT:IO口/32.768KHz的RTC晶振
  • OSC_IN/OSC_OUT:主晶振,一般是8MHz,最终产生72MHz的频率作为系统的主时钟
  • NRST:系统复位引脚,N表示低电平复位
  • VSSA/VDDA:内部模拟部分的电源,VSS接GND,VDD接3.3V
  • PA0-PA12/PB0-PB1/PB5-PB15:IO口,其中PA0兼具唤醒处于待机的STM32
  • PA13-PA15/PB3-PB4:IO口和调试端口
  • BOOT0:启动配置
  • PB2:IO口或者BOOT1引脚,BOOT引脚用来配置启动模式
  • VSS_123/VDD_123:主电源口,VSS接地,VDD3.3V

启动配置:

在这里插入图片描述

  系统复位后,SYSCLK的第4个上升沿,BOOT引脚的值就会被锁存
  一般情况下,程序运行都是都是在Flash存储器里开始执行(X0),我们也可以利用启动模式使得在别的地方开始执行,用以完成特殊的功能,01用以串口下载,11程序调式

下面给出STM32F103C8T6的最小系统电路图

在这里插入图片描述

三、工程建立

  STM32系列单片机开发,不再像C51系列单片机一样配置寄存器,而是基于库函数的开发,主流的库主要是HAL和标准库函数,所以在建立STM32工程时,需要导入库函数,具体流程如下

  新建好项目,选择好型号以后,必须要在项目文件夹内事先新建文件,然后再在Keil里面添加文件夹
  文件夹添加到Keil工程里时,还需要在工程选项里添加上这个文件夹的头文件路径(Start、User…)(魔术棒 —> C/C++ —> include Paths)
  调试下载,还需要配置ST-link或者J-Link(魔术棒 —> Debug —> ST-Link),勾选Reset and Run(Setting —> Flash Download),运行编译完成后,点击Load按钮下载程序

  1. 首先是STM32的启动文件如下,将以下三部分文件复制到启动文件夹Start

  以下是STM32的启动文件

在这里插入图片描述

  以下是STM32的外设寄存器描述文件,用来描述寄存器地址和配置时钟的,存放到Start文件夹里

在这里插入图片描述

  以下是内核寄存器的描述文件,STM32是由内核和内核外围的设备组成的,内核寄存器的描述文件也存放到Start文件夹里

在这里插入图片描述

  移动好文件以后,需要将文件添加到工程里,本文学习的系列单片机是F103系列,所以只需要添加md.s的启动文件其他两部分文件

在这里插入图片描述

  1. 新建Library文件夹,添加库函数;新建User文件夹,添加main.c函数,添加库函数头文件包含文件中断函数

  以下是STM32的库函数,misc.c是内核库函数,其余是外设库函数

在这里插入图片描述
  以下是库函数的头文件

在这里插入图片描述  添加好库函数时,还不能直接使用,还需要配置库函数头文件的包含关系的,it文件用来存放中断函数的,放到User文件夹内

在这里插入图片描述

  最后还需要将如下字符串复制到Define(魔术棒 —> C/C++ —> Define),这样才能包含标准外设库

在这里插入图片描述

  最后给出工程架构

在这里插入图片描述

四、总结

  本次学习STM32的一些基本概述,初次建立工程,理解了使用库函数去开发STM32的流程

  • 26
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值