文档章节

stm32环境搭建

itviewer
 itviewer
发布于 2016/05/23 16:37
字数 934
阅读 54
收藏 0
点赞 2
评论 0

MDK

http://www.keil.com/arm/mdk.asp

MDK-ARM(Microcontroller Development Kit) 是功能强大和常用的cortex-mx 开发环境。

其包含 µVision4 IDE,最新版本需要根据mcu的系列下载不同的pack包(http://www.keil.com/dd2/Pack/)以支持特定设备,目前stm32库开发方式有两种,一种是最新的cube方式,另一种是传统的标准库方式,如果使用前者,不需要下载其它东西即可,如果需要stm的标准库开发方式,还需单独下载st官方的标准库。

因为标准库方式之前比较主流,参考资源较多,这里先学习标准库方式。

官方标准固件库

链接

Home  》Embedded Software  》MCUs Embedded Software  》STM32 Embedded Software

首页 》    软件   》  微控制器软件   》  STM32微控制器软件

在灰色的导航中选择 STM32 standard peripherals library,然后根据需要的型号进入对应页面,在页面最底部提供软件下载地址(需要输入邮箱)

如何使用标准库

解压下载的标准库压缩包,目录结构如下:

├── _htmresc
├── Libraries
│   ├── CMSIS                                            符合cmsis规范的cortex核心驱动
│   └── STM32F4xx_StdPeriph_Driver        stm32外设驱动
├── Project
│   ├── STM32F4xx_StdPeriph_Examples   各外设使用例子有效代码(基于官方评估板)
│   └── STM32F4xx_StdPeriph_Templates   例子的公共部分模版
└── Utilities
    ├── Media
    ├── ST
    ├── STM32_EVAL                                     例子中可能用到的其它评估板代码
    └── Third_Party

上面是对基本目录的解释,另外根目录有个chm帮助文件,关于固件库的一切信息都可以在这个帮助里找到。

重要文件说明

File name

Description

stm32f4xx_conf.h

stm32f4xx.h被引用(如果定义了宏USE_STDPERIPH_DRIVER)
位于库目录下的每个实例项目和模版目录,用于配置应用需要哪些外设驱动
This file can also be used to enable or disable the Library run-time failure detection before compiling the firmware library drivers, through the preprocessor define USE_FULL_ASSERT

stm32f4xx_ppp.h

stm32外设驱动头文件,位于Libraries\STM32F4xx_StdPeriph_Driver
This file includes the PPP peripheral function and variable definitions used within these functions.

stm32f4xx_ppp.c

stm32外设驱动,位于Libraries\STM32F4xx_StdPeriph_Driver

stm32f4xx_it.h

中断控制原型,位于库目录实例和模版目录,实例中没有被引用过

stm32f4xx_it.c

Template source file containing the interrupt service routine (ISR) for Cortex-M4F exceptions. User can add additional ISR(s) for the used peripheral(s) (for the available peripheral interrupt handler's name, please refer to the startup file startup_stm32f4xx.s).

 STM32F4xx CMSIS files

File name

Description

stm32f4xx.h

CMSIS 外设访问层文件,该文件是唯一需要在main.c文件中包含的库文件

该文件定义了所有外设的数据结构、地址映射、访问寄存器的宏,寄存器声明和位定义,在该文件末尾可通过注释或不注释#define USE_STDPERIPH_DRIVER来决定是使用库还是直接访问寄存器方式开发

位于Libraries\CMSIS\Device\ST\STM32F4xx\Include

  This file contains:

  • configuration section that allows to select:

-  the device used in the target application
             -  to change few application-specific parameters such as the HSE crystal frequency

system_stm32f4xx.h

CMSIS 外设访问层系统函数,如控制时钟、执行SystemInit

stm32f4xx.h引用

位于Libraries\CMSIS\Device\ST\STM32F4xx\Source\Templates

system_stm32f4xx.c

CMSIS Cortex-M4F STM32F4xx devices peripheral access layer system source file.

startup_stm32f4xx.s

STM32F4xx 设备启动汇编文件,每个编译器需要一个

位于Libraries\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm

 总结下,如果使用库开发方式,需要的文件如下,

startup_stm32f4xx.s 》stm32f4xx.hsystem_stm32f4xxstm32f4xx_conf.h 》用户文件 》库驱动

需要在编辑器的c/c++宏定义中定义USE_STDPERIPH_DRIVER和使用的cpu型号宏(参考stm32f4xx.h中对芯片型号的定义),多个宏间用逗号分割

注意

虽然m3和m4库文件使用方式基本一样,但仍有些区别,如库文件目录结构和宏的名称

项目工程建立

需要从逻辑上分组,并将上述必须的文件添加进来,然后设置调试选型等

© 著作权归作者所有

共有 人打赏支持
itviewer
粉丝 15
博文 217
码字总数 44472
作品 0
海淀
技术主管
基于STM32(ARM Cortex M3)的Arduino——Spurce (支持Eclip...

很多电子专业的学生,或者刚刚入行的电子工程师都有一个困惑。电子行业范畴这么大,这么多细分行业,不知该如何抉择。诸如硬件、软件、Layout 、单片机、 ARM ……这么多名词让人眼花缭乱,职...

soliddigi
2011/09/18
0
0
RTOS-硬件运行环境和μCOS版本说明

本系列文章中使用的软件运行环境:硬件,QEMU(STM32)仿真; 软件,μCOS-III(V3.03.01)。 运行环境说明 为良好地说明RTOS的方方面面,必须上手亲自调试代码。为了减少CPU架构和指令集方面的理...

zhanglianpin
04/11
0
0
基于STM32L4 IoT探索套件开发AliOS Things

前言 ST与阿里巴巴集团旗下的云计算科技公司——阿里云合作,推出基于STM32L4 IoT探索套件快速开发AliOS Things的方案。STM32用户可以在STM32L4 IoT上运行阿里的物联网操作系统AliOS,无缝连...

annic9
05/08
0
0
RT_Thread 体验小节

引言 很早之前就听说RT-Thread操作系统了,一直在看着它不断的升级迭代,可是一直都没有亲自上手体验一下,最近RTT发布了新版的3.0操作系统,同时关系特别好的一个朋友也入职了睿赛德,极力推...

CSDNhuaong
01/01
0
0
使用CMake来构建STM32工程

CMake 是一个跨平台的自动化建构系统,它使用一个名为 CMakeLists.txt 的文件来描述构建过程, 可以产生标准的构建文件,如 Unix 的 Makefile 或Windows Visual Studio 的 projects/workspaces ...

hoolev
2015/12/22
193
0
求助。PC怎么用C++实现与下位机STM32以太网通信?

我想把下位机采集的图像数据发送给PC。下位机用的是STM32的LWIP协议栈,怎么实现两者之间的收发数据啊?socket编程能实现吗?我看了好多例程都是在上位机搭建服务器和客户端进行通信,怎么改才...

Superlee13
2015/01/28
1K
2
RT-Thread 2015.6.27 深圳嵌入式系统沙龙

2015.6.27 RT-Thread深圳嵌入式沙龙活动 RT-Thread做为国内少有的原创性,面向智能设备的开源操作系统,为微控制器芯片提供从实时多任务内核,到命令行、文件系统、TCP/IP网络协议栈的全功能...

午夜熊
2015/06/22
1K
0
Linux下STM32工程搭建

首先导入STM32固件库文件 STM32F1百度云盘地址 密钥:pzad

Bony
2016/05/29
74
0
Micropython TPYBoard读取芯片上的温度传感器

STM32 内部温度传感器概要 STM32 芯片内部一项独特的功能就是内部集成了一个温度传感器, 因为是内置, 所以测试的是芯片内部的温度, 如果芯片外接负载一定的情况下, 那么芯片的发热也基本稳定...

bodasisiter
03/30
0
0
RT-Thread 0.3.0 RC1 国产实时操作系统

实时线程操作系统(RT-Thread)是国内RT-Thread工作室精心打造的开源实时操作系统,历时4年的呕心沥血开发,力图突破国内没有小型开源 实时操作系统的局面,它不仅仅是一款开源意义的实时操作...

绿悠悠
2009/12/28
843
1

没有更多内容

加载失败,请刷新页面

加载更多

下一页

一款成功的全球服游戏该如何进行架构选型与设计?

全球服游戏如今正在成为出海游戏的主要考虑模式,跨国对战、全球通服打破国界的限制,将不同地区不同语言的玩家放在一起合作/竞技,成功吸引了大量玩家的关注,并逐渐成为主流的游戏玩法。 ...

UCloudTech
刚刚
0
0
StringUtils类中isEmpty与isBlank的区别

org.apache.commons.lang.StringUtils类提供了String的常用操作,最为常用的判空有如下两种isEmpty(String str)和isBlank(String str)。 StringUtils.isEmpty(String str) 判断某字符串是否为...

说回答
13分钟前
0
0
react native使用redux快速上手

先看个简单demo //app.jsimport React, {Component} from 'react';import {StyleSheet, Button, View} from 'react-native';import TestView from './src/testView'export default......

燕归南
14分钟前
0
0
页面输出JSON格式数据

package com.sysware.utils;import java.io.IOException;import javax.servlet.ServletResponse;import org.apache.log4j.Logger;import com.sysware.SyswareConstant;pub......

AK灬
36分钟前
0
0
springCloud-2.搭建Eureka Client的使用

1.使用IDEA,Spring Initializr创建 2.填写项目资料 3.选择spring boot版本,插件选择Cloud Discovery→Eureka Discovery 4.选择保存地址 5.修改application.yml eureka: client: s...

贺小康
39分钟前
0
0
CenOS 6.5 RPM 安装 elasticsearch 6.3.1

下载 wget --no-check-certificate https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3.1.rpm...

阿白
41分钟前
0
0
1.4 创建虚拟机&1.5 安装CentOS7&1.6 配置ip(上)&1.7 配置ip(下)

1.4 创建虚拟机 知识点 虚拟机网络链接模式 桥连 直接将虚拟网卡桥接到一个物理网卡上面。需要手工为虚拟系统配置IP地址、子网掩码,而且还要和宿主机器处于同一网段,这样虚拟系统才能和宿主...

小丑鱼00
48分钟前
0
0
TrustAsia(亚洲诚信)助力看雪2018安全开发者峰会

2018年7月21日,看雪2018安全开发者峰会在北京国家会议中心圆满落下帷幕。拥有18年悠久历史的老牌安全技术社区——看雪学院联手国内最大开发者社区CSDN,汇聚业内顶尖的安全开发者和技术专家...

亚洲诚信
49分钟前
0
0
Spring注解介绍

@Resource、@AutoWired、@Qualifier 都用来注入对象。其中@Resource可以以 name 或 type 方式注入,@AutoWired只能以 type 方式注入,@Qualifier 只能以 name 方式注入。 但它们有一些细微区...

lqlm
59分钟前
0
0
32位汇编在64位Ubuntu上的汇编和连接

本教程使用的操作系统是Ubuntu Linux 18.04 LTS版本,汇编器是GNU AS(简称as),连接器是GNU LD(简称ld)。 以下是一段用于检测CPU品牌的汇编小程序(cpuid2.s): .section .dataoutput...

ryanliue
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部