Stm32 开发环境配置搭建 | 学习笔记

简介: 快速学习 Stm32 开发环境配置搭建

开发者学堂课程【嵌入式之 RFID 开发与应用2020版:Stm32 开发环境配置搭建】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/665/detail/11147


Stm32 开发环境配置搭建

搭建一下 32 的开发环境,从建立一个新的工程开始。开发环境用 keil,如果是从keil 的官网去下载它的库,库自动就安装到 keil 的安装目录,如果是从 ST 意法半导体下载库,需要把库拷到工程目录去,建议去下载意法半导体的官方的库,让库随着源代码一起带走,如果是用 keil 官方给的库,就相当于路径的指定是跟安装路径绑定的,软件将来换了一个环境,在别的电脑上,keil 官方的库对应的安装路径不见得和自己的安装路径一致,这就会导致程序编译不过。所以库随着源代码一起带走,这样在任何环境下都能够保证编译通过。

这是配置,将安装步骤,去 keil 的官网一进去就能看到,下载一个 mdk。

image.png

这里用 511 版本,现在还有更新版本 512 的,下好之后自己去网上找一个破解软件。首先用管理员身份去运行安装包,直接下一步,接受继续下一步,几乎就是一步一步的 next 往下装就可以, 因为破解的流程不是在安装的过程中,是等安装完成后就会在本机中出现,

image.png

keil 是作为 stm32 开发的其中的一种方式,还有一种方式就是用STM32CubeMX,是意法半导体官方开发的工具,keil 是属于第三方的。STM32CubeMX 跟 keil 差不多,只是自动化生成代码,很容易去使用的。HAL 库也是基于 MAX。

之前的工程先关闭,安装完软件打开。破解打开 File/License Management, 邮箱和姓名安装 软件的时候提示输入,建议输入一个合法的邮箱。紧接着打开破解软件,用管理员身份运行。

image.png

c51 目标选择 arm, CAD 复制粘贴如下:

image.png

选择生成,把 21ERA-1IIOF-XUE41-CJ623-W7ZG3-NTRML 复制到 New License lD Code (LIlC):。点击添加,提示添加成功破解。破解之后,如果没有安装库,到网上把库下载,双击自动安装到默认的 keil 的安装目录。如果用的是下载器,根据不同,用最廉价的 ST link 的话,直接解压安装上,一般情况通过驱动精灵安装。

下载安装破解完成之后,第一步,要去建立自己的工程,点击 project,new project 去新建一个工程,新建的路径随意。在存放工程的时候,最好先建一个文件夹,学习单片机最常见的就是对 GPIO 的操作,所以建一个文件夹叫 GPIO,起名,GPIO 用来干什么,拿来点个 LED 灯,起个名字叫 LED,这就是新建的工程。

找到这个新建的工程,弹出来对话框里面,要求选择芯片,也是选择设备。对于设备的选择,正常情况下第一个选项是 software packs,如果安装了在 keil 官网下载的针对于指定的芯片的安装包,就只会看到安装包一行。从中选择的 f1 的具体型号 f103,点确定。这种方法用的是 KEIL 官方提供的库。

第二种方法就是选择第二个选项,就是选择一种比较传统的方法,不使用 keil 官方提供的库,而是使用自己的库。当然这两种方法都可以,一点问题都没有都可以。

第二种方法就是直接通过从意法半导体的官网去下载下来库,库随着工程走,这样便于后期的移植,后期在别的环境去编译,要在这选择合适的芯片,支持找到意法半导体,并且找到的芯片的型号,如果这个里面找不到,就建议用官方提供库的这种方法,找到 f103c8,确定,向工程里面添加文件。这时工程里就有一些默认的文件。这些是启动文件

image.png

如果选择自己的库,这些启动文件在这库里面都包含了,在libraries/CMSIS/CM3/DEVICESUPPORT/ST/STM32F10X/startup/arm里面有这个启动文件 startup_stm32f10x_md.s,就可以把外面的启动程序删了。

紧接着空的工程就建好了,接下来往这个工程里面添加文件,stm32 最小工程最少包含这三个文件:core-cm3.c system-stm32f10x.c startup-stm32f10x-xx.s 是系统核心,包括一些时钟的启动代码,在这里面必须要有。

除此之外,还得写自己的程序,main.c ,应用程序。系统文件和应用程序都是必需的,所以就创建两个文件夹,把系统相关的放在一起,把自己的程序放在一起。

但是自己的程序当用单片机时,要用到很多的硬件存储的配置和操作,此时要用官方提供的库,还有一个部分就是叫做库文件。这个库文件它本身是很大的,有很多的代码,但这些代码并不是全部都要添加,可能要添加一部分进去,所以这个库至少应该是一个单独的目录。

在工程里面最好是建三个目录:第一个目录就是系统文件,第二个就是应用程序,第三个目录就是库,

1、系统文件

core-cm3.c

system-stm32f10x.c

startup-stm32f10x-xx.s

2、应用程序

main.c(应用程序)

3、库

库文件

这样结构就比较清晰。在点击 traget\Source Group1 时,点右键 manager Project Items…, 把 Source Group1 改成 system,再建一个目录 APP 和一个 lib 如图:

image.png

图 system 里为 3 个系统文件,放进去,app 自己写一个,lib 库去加载。

相关文章
|
5月前
stm32f407探索者开发板(十七)——串口寄存器库函数配置方法
stm32f407探索者开发板(十七)——串口寄存器库函数配置方法
758 0
|
6月前
|
传感器
【经典案例】STM32F407使用HAL库配置I2C详解
STM32F407是一个强大的微控制器,广泛应用于嵌入式系统中。在许多应用中,我们需要使用I2C总线来与传感器、EEPROM、显示屏等外设进行通信。本文将详细介绍如何使用STM32 HAL库来配置和使用I2C接口。
767 2
|
6月前
|
开发者
【经典案例】使用HAL库配置STM32F407的SPI外设
在嵌入式系统开发中,STM32F407是一款广泛应用的微控制器,而SPI(Serial Peripheral Interface)是一种常用的通信接口。本文将详细介绍如何使用STM32的硬件抽象层(HAL)库配置STM32F407的SPI外设,并提供完整的代码示例。
621 1
|
5月前
|
传感器 编解码 API
【STM32开发入门】温湿度监测系统实战:SPI LCD显示、HAL库应用、GPIO配置、UART中断接收、ADC采集与串口通信全解析
SPI(Serial Peripheral Interface)是一种同步串行通信接口,常用于微控制器与外围设备间的数据传输。SPI LCD是指使用SPI接口与微控制器通信的液晶显示屏。这类LCD通常具有较少的引脚(通常4个:MISO、MOSI、SCK和SS),因此在引脚资源有限的系统中非常有用。通过SPI协议,微控制器可以向LCD发送命令和数据,控制显示内容和模式。
188 0
|
5月前
|
数据安全/隐私保护
STM32F103C8T6实现简易密码锁(CubeMax配置)(一),Oled显示。
项目功能:实现设置密码,登陆密码,后期还可以通过E2PROM实现掉电不丢失数据。通过Oled的显示去判断我们是否设置或者登陆成功。
106 0
|
6月前
|
移动开发
技术好文:stm32寄存器版学习笔记06输入捕获(ETR脉冲计数)
技术好文:stm32寄存器版学习笔记06输入捕获(ETR脉冲计数)
289 0
|
7月前
|
中间件 编译器 调度
STM32cubemx对FreeRTOS的适配(工程模板配置)
STM32cubemx对FreeRTOS的适配(工程模板配置)
400 0
|
6月前
|
芯片
【STM32】详解RTC实时时钟的概念和配置&示例代码
【STM32】详解RTC实时时钟的概念和配置&示例代码
|
7月前
STM32CubeMX配置时钟无法使用高速外部时钟HSE
STM32CubeMX配置时钟无法使用高速外部时钟HSE
294 0
|
7月前
|
存储 芯片
STM32 cubemx配置USART DMA传输
STM32 cubemx配置USART DMA传输
164 0