stm32 开发 简单介绍+工程创建

article/2025/8/26 1:41:45

一,认知

1.嵌入式概念

国内定义:以应用为中心,以计算机技术(冯诺依曼)为基础,软硬件可裁剪,适用于对产品的性能、成本、可靠性有严格要求的系统被称为嵌入式系统。

 

2.8051和STM32

8051属于入门级别,结构简单,8051无法满足市场需求(成本低、性能高、功耗低、多任务、易用界面),所以为了满足市场需求,ARM公司就设计一款基于ARMv7架构32位的Cortex M3/M4,ST公司就基于内核设计一款MCU,也被称为STM32。

3..STM32的应用领域

STM32属于微控制器,自带常用的通信接口(USART、IIC、SPI、CAN、RS485、RS232),STM32一般使用在低功耗产品上,比如3D打印机、四轴飞行器、扫地机器人、平衡车、智能手环、智能窗帘、智能门锁。

二,开发环境

1.介绍

  1. MDK软件的下载

想要学习STM32,需要搭建好对应的开发环境,一般都是使用德国KEIL公司设计的KEIL5软件进行开发,由于KEIL公司已经在2005年被ARM公司收购,所以现在也被称为 ARM-MDK,该软件想要下载该软件,可以登录 www.keil.com 进行下载  

 

 2.MDK软件的结构

3.MDK软件的版本

 

3.软件的安装

1.从官网下载对应的安装包,安装包版本可以根据实际需求取选择,但是不要选择太低版本!

 

 

 

 

 2.如果软件安装完成后,记得要安装ST公司提供的芯片支持包xxxx.pack,双击运行程序即可

 

 

三,使用STM32标准固件库源码建立开发工程

一:下载stm32固件库源码,解压后目录分布如下

二:创建工程目录结构 

 1.新建工程文件keil_project,內部结构,命名以及涵义

 CMSIS:Cortex微控制器软件接口标准文件,该目录下文件适用所有Cortex系列(启动文件、配置文件)

DEVICE_LIB:M3对应外设的模块代码。(inc+src)

HARDWARE:用户实现的模块功能函数

LIST:链接相关

OBJ:编译产生的中间文件+hex/bin文件

SYSTEM:系统相关代码

USER:自定义代码(main.c)

2.将stm32固件库的代码拷贝到各个文件夹内,拷贝位置如下

                                                    stm32F10X官方库   keil_project

Libraries\STM32F10x_StdPeriph_Driver\inc  库头文件

Libraries\STM32F10x_StdPeriph_Driver\src   库源文件   

       DEVICE_LIB

Project\STM32F10x_StdPeriph_Template\main.c

Project\STM32F10x_StdPeriph_Template\stm32f10x_it.h 中断函数头文件

Project\STM32F10x_StdPeriph_Template\stm32f10x_conf.h 配置文件

Project\STM32F10x_StdPeriph_Template\stm32f10x_it.c 中断函数文件
  User

Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h

Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\ system_stm32f10x.c

Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h
 SYSTEM

Libraries\CMSIS\CM3\CoreSupport\core_cm3.c

Libraries\CMSIS\CM3\CoreSupport\core_cm3.h

Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm\startup_stm32f10x_md.s
 CMSIS

三:keil5创建工程 + 配置工程项目保存位置:自己新建的工程文件夹keil_project/USER

 1.打开keil5,选中project-->new project-->在弹出的对话框中,选择项目保存位置。

2. 保存后,选择该工程的芯片型号,如下图。(前提是安装了芯片型号对应的pack)

 

3.选定型号后,出现下图,为该项目添加要使用的模块代码,需要就勾选。(使用固件库源码复制,不需要此步骤,直接关闭)。

 

4.创建成功后,出现下图结构。(必须对项目内文件夹分布作规划)

 

 每个文件夹命名与工程代码框架类似,见下图

 5.     每个文件夹内文件分布如下

 6.     打开main.c,删除所有文件,代码编写。

7.对工程进行配置,具体步骤如下。Project-->options form target

 

 

STM32F10X_MD:该宏指定芯片的型号,不同型号对应的硬件代码有不同,必须定义。

USE_STDPERIPH_DRIVER:该宏指定是否启用外设,定义则为启用外设,必须定义。

 8.点击按钮编译

 9.成功编译通过

 


http://chatgpt.dhexx.cn/article/U3BvHCX5.shtml

相关文章

stm32开发层次介绍(转载)

自STM32标准库出道以来,备受广大工程师和公司的喜爱,但是,从2013年开始,ST逐渐停止了对标准外设库的更新和维护。目前,ST全力推崇HAL库,STM32Cube就是与HAL库配合使用图形化编程官方IDE。 7.1 STM32库简介…

STM32开发

ST意法半导体生产的32位MCU(微控制器) 硬件 NB-loT通信扣板:SMA天线,NB86-G通信模块,STM32F0主控芯片,外部晶振 一键还原底板:供电电路,LED指示灯,电源开关,五…

在 keil 建立基于STM32开发的工程模板--详细步骤

手把手教你在keil建立STM32的工程模板 1 先说几句1.1 什么是STM32?1.2 什么是cortex?1.3 什么是ARM?1.4 什么是意法半导体? 2 硬件平台2.1 STM32103C8T6最小系统板2.2 电源供电2.3 时钟电路2.4 复位电路2.5 调试和下载电路 3 建立工程模板3.…

STM32开发方式及基本介绍

相关推荐STM32新建一个工程 STM32的开发有三种方式 1.寄存器版本 2.库函数版本 3.HAL库版本 一、库函数开发与寄存器开发的关系 很多人都是从学51单片机转而想进一步学习STM32,他们习惯了51单片机的寄存器开发方式,ST官方库摆在面前会不知道从何下手…

基于STM32开发板的循迹小车设计

STM32的简单应用之循迹小车 前言 智能寻迹基于自动引导机器人系统,可以实现小车自动识别路线。智能寻迹小车运用传感器、单片机、电机驱动及自动控制等技术实现,管理时自动寻迹导航。该技术已经应用于无人驾驶机动车、无人工厂、仓库、服务机器人等多种…

STM32应用开发实践教程:初识STM32

1.1.1 什么是 STM32 1.STM32 概述 STM32 微控制器是意法半导体(ST Microelectronics,ST)有限公司出品的一系列微控制 器(Micro Controller Unit,MCU)的统称。 意法半导体有限公司于 1987 年 6 月…

STM32开发指导

思考 如果我们要自己开发一个蓝牙温湿度计,硬件最小系统和外设都有什么?软件逻辑是什么? 需求分析 ● 采集类传感器使用火焰传感器、温湿度传感器、光照传感器中任意一种。 ● 黄色LED模拟智能灯,可以采集到灯状态并可远程控制;五向按键作为灯控开关(家居本地控制)。…

《嵌入式-STM32开发指南》第一部分 入门篇 -第1章 学嵌入式从STM32开始

1.1 STM32简介 ARM公司简介 ARM是Advanced RISC Machines的缩写,它是一家微处理器行业的知名企业,该企业设计了大量高性能、廉价、耗能低的RISC (精简指令集)处理器。公司的特点是只设计芯片,而不生产。它将技术授权给世界上许多著名的半导体、软件和OEM厂商,并提供服务…

STM32的四种开发方式

STM32的四种开发方式 首先看下ST官方给出的四种开发方式的比较 寄存器开发 寄存器编程对于从51等等芯片过渡过来的小伙伴并不陌生,不管你是什么库,最终操作的还是寄存器,所以对于标准库、HAL库、LL库都是在寄存器上的编程,所以可…

使用STM32固件库开发GD32 汇总

文章目录 GD32与STM32异同1. 相同点2. 外围硬件区别3. 内部结构差别4. 功耗区别(以128k以下容量的作为参考)5. 内部FLASH 区别 使用STM32库开发时钟配置区别1. 晶振起振区别描述解决方法 2. 部分客户使用有源晶振出现问题,在 GD32F103 小容量产品,发现会…

STM32开发必备知识篇:STM32的运行机制

时间飞逝,转眼间已经硕士毕业工作第四年了,嵌入式研发成长道路上曲折坎坷,所以这也是我今年撰写博客的初心,即分享技术积累和研发经验,目前主要分为STM32和FPGA两个专辑,都包括开发必备知识篇和实战项目例程…

如何评判STM32各个MCU的性能?

很多人说STM32性能太弱,那你了解这个性能是如何得出来的吗? 1写在前面 我们经常听见某手机发布会,安兔兔跑分多少多少,其实这个跑分就是体现手机性能的一个指标。 我们使用STM32开发产品,选择MCU时,一般会综…

STM32各系列MCU性能对比及测试说明

置顶/星标公众号,不错过每一条消息! 很多人说STM32性能太弱,那你了解这个性能是如何得出来的吗? 1写在前面 我们经常听见某手机发布会,安兔兔跑分多少多少,其实这个跑分就是体现手机性能的一个指标。 我们使…

win xp虚拟机

做嵌入式,用的ADS版本太老了,在xp系统上更方便,所以昨天装了一个。 其实我是一个搬运工,主要参考了另一个人的步骤:点击打开链接 只是第一次让输序列号的时候跳过去了。 要镜像可以留邮箱,好像不能直接放在这里&…

VMware虚拟机装windows xp系统

一.准备安装所需要的软件: 1.VMware虚拟机的下载。 首先下载:VMware Workstation(虚拟机) V6.0.2 Build 59824 汉化版 2.XP的系统软件。 二.在VMware虚拟机为创建新的虚拟机 1.打开虚拟机,选择新建虚拟机: 2.下一步:…

Windows xp,Windows2003虚拟机部署(各2台)

文章目录 ISO镜像下载winxp部署a.安装winxp虚拟机b.优化虚拟机c.做快照 Windows 2003a.安装win2003b.优化c.快照 克隆虚拟机(以win2003为例) ISO镜像下载 ISO镜像下载链接 例:下载win10的操作系统 点击操作系统,选择要下载的镜像&#xff0…

VirtualBox 7.0.10 (macOS, Linux, Windows) - 开源跨平台虚拟化软件

VirtualBox 7.0.10 (macOS, Linux, Windows) - 开源跨平台虚拟化软件 Oracle VM VirtualBox 7 请访问原文链接:https://sysin.org/blog/virtualbox-7/,查看最新版。原创作品,转载请保留出处。 作者主页:sysin.org 2022 年 10 月…

虚拟机VMware安装XP系统错误解决办法

虚拟机给我的编程工作确实带了很多方便,但是虚拟机的一个最大挑战是硬件赶不上,速度太慢了。最近一直在致力于虚拟机上Win7专业版平台上SQL Server 2005Visual Studio 2012系统开发,最初还可以,但是越到后面速度越慢。最后决定重新…

VM虚拟机安装Windows XP Professional

文章目录 安装XP下载img镜像安装激活安装VM-Tools 参考 安装XP 下载img镜像 在MSDN安装原版系统镜像-img文件,地址https://msdn.itellyou.cn/ 安装激活 新建虚拟机,选择img镜像文件,开启虚拟机,提交注册码安装即可。 安装VM-Tool…

Win10 虚拟机安装 Windows xp(professional sp3)简记(非教学)

实验系统需使用 VB6.0,任务较为复杂,win10下的vb6.0兼容问题较大。考虑win10 虚拟机安装winxp,部分重点记录如下:(资料源于网络) 虚拟机采用开源的 Oracle VM VirtualBox,(Vmware也可…