STM32
登录
直播中
lotusp
10年用户
1090经验值
擅长:电源/新能源
私信
关注
[问答]
STM32F103如何搭建开发环境?
开启该帖子的消息推送
STM32F103
STM32
F103如何搭建开发环境?
回帖
(1)
陈芳
2021-11-26 11:14:16
STM32F103介绍
STM32F系列是
意法半导体(ST)公司
的32位ARM微控制器,内核采用Cortex-M3,其它方面的说明可以查阅相关资料。
STM32F103C8T6最小系统板
这里用的是笔者购买的两款STM32F103C8T6的最小系统板,如下图:
两款最小系统板很相似,左侧都是JLink插口,晶振频率均为8MHz,右侧布置有
供电接口
、
复位按键
、
启动方式选择跳帽
(图中绿色和红色的小东西,下载程序用),并且把引脚在周围引出。黑色的板子把
OLED
接口留了出来并且右侧多设置了一个按键,蓝色的板子则是给出了
串口
等接口。
STM32F103C8T6命名说明
[tr]符号说明[/tr]
STM32
ST公司采用ARM Cortex-M3内核的32位微控制器
F
芯片子系列
103
增强型系列
C
引脚数,T:36,C:48,R:64,V:100,Z:144,I:176
8
内部Flash容量(单位:字节),6:32K,8:64K,B:128K,C:256K,D:384K,E:512K,G:1M
T
芯片封装,H:BGA,T:LQFP,U:VFQFPN
6
工作温度,6: -40 ~ 85℃,7: -40 ~ 105℃
因此
STM32F103C8T6
即代表ST公司采用ARM Cortex-M3内核的增强型32位微处理器,引脚数为48,内部
Flash容量为64KBytes
,芯片封装为LQFP,正常工作温度为-40 ~ 85℃。
说明:Flash容量16 ~ 32K为小容量,64 ~ 128K为中等容量,256 ~ 512K为大容量。
开发环境搭建
这里使用Keil uVision5,具体安装就略过了(嘿嘿)。
安装完成后打开软件,是这样滴:
但是Keil uVision5并不带有STM32F103的软件包(Software Packs),因此需要在安装结束后再安装
Keil.STM32F1xx_DFP.2.1.0.pack
软件包(这个网上搜一搜应该能找得到,或者私信我给你发也行),直接双击安装就行,安装完成后再重新打开Keil uVision5就完成了。
建立第一个工程
STM32可以
直接控制寄存器进行程序开发
,但要求对芯片的寄存器掌握熟悉,并且开发速度会比较慢,但优点是运行效率更高;对于刚入门或者为了开发方便的同志们来说,采用
库开发
相对更舒服一些,并且可以在程序定型后再将库开发的版本转换成寄存器版本。在这里将使用官方库进行开发。
获取官方库
使用库开发让人放心的一点就是,这个库是
意法半导体(ST)公司
官方给出的,并且Free(嘿嘿)。
打开ST官网,找到
产品
->
微控制器
->
STM32主流MCU
然后找到
工具与软件
->
嵌入式软件
->
MCU及MPU嵌入式软件
->
STM32 Standard Peripheral Libraries
因为选用的是STM32F10x系列,所以根据描述和支持器件的说明,往下拉找到
STSW-STM32054
,点击打开,再点击
Open software page
下拉找到
获取软件
,注册或者登录ST官网就可以下载官方库了。
下载得到的官方库解压:
编写程序时主要用到其中的
Libraries
文件夹。
stm32f10x_stdperiph_lib_um.chm
是帮助文档,对后续开发十分有帮助,可以方便的查阅
数据结构
、
函数说明
等。
建立工程
推荐单独建立一个工程文件夹用于存放所有程序,并在此文件夹下新建
0-Template
文件夹用于保存工程模板,以后只需要复制工程模板就可以进行下一个程序的编写,而无需再次配置工程。
下面的
关键步骤
会进行标记,其它文字为说明性文字。
在
0-Template
文件夹下新建如下三个文件夹:
CMSIS
、
FWLIB
、
USER
:
其中CMSIS与官方库文件夹名称一致,为Cortex Microcontroller Software Interface Standard的缩写;FWLIB为Firmware Library即固件库缩写,存放STM32各类外设函数;USER存放用户编写的程序文件。文件夹命名并无要求,看个人习惯。
复制库文件
复制完成后,各个文件夹中如图:
将STM32F10x_StdPeriph_Lib_V3.5.0LibrariesCMSISCM3CoreSupport下的:
core_cm3.c
、
core_cm3.h
复制到
CMSIS
文件夹中;
将STM32F10x_StdPeriph_Lib_V3.5.0LibrariesCMSISCM3DeviceSupportSTSTM32F10x下的:
startup
文件夹、
stm32f10x.h
、
system_stm32f10x.c
、
system_stm32f10x.h
复制到
CMSIS
文件夹中;
将STM32F10x_StdPeriph_Lib_V3.5.0LibrariesSTM32F10x_StdPeriph_Driver下的:
inc
文件夹、
src
文件夹复制到
FWLIB
文件夹中;
将STM32F10x_StdPeriph_Lib_V3.5.0ProjectSTM32F10x_StdPeriph_Template下的:
main.c
、
stm32f10x_conf.h
、
stm32f10x_it.c
、
stm32f10x_it.h
复制到
USER
文件夹中。
打开Keil uVision5,点击
Project
->
new uVision Project
,浏览到
0-Template
文件夹,输入工程名称,这里取
Template
,保存:
将会弹出设备选择框,如果没有安装Keil.STM32F1xx_DFP.2.1.0.pack软件包则不会显示STM32F1 Series,需要安装软件包后再重新打开Keil uVision5建立工程,这里
选择STM32F103C8
,点击OK:
将会弹出环境设置选框,直接点击右上角关闭即可:
至此,新工程已经建立好,下面进行配置
首先设置各个文件夹及文件,在
Target 1
上右击选择
Manager Project items
或者直接点击图标
在弹出的对话框里进行设置,将
Project Targets
修改为
Template
,在
Groups
中新建
STARTUP
、
USER
、
CMSIS
、
FWLIB
四个文件夹,完成后先不关闭,还要添加库文件,如图所示:
添加库文件,选中一个文件夹,点击Add Files:
在
STARTUP
中添加CMSISstartuparm
startup_stm32f10x_hd.s
(注意选择文件类型),点击
Add
添加后再点击Close关闭,如图所示:
同理在
USER
中添加USER
main.c
、
stm32f10x_it.c
;
在
CMSIS
中添加CMSIS
core_cm3.c
、
system_stm32f10x.c
;
在
FWLIB
中添加FWLIBsrc中
所有.c文件
。
添加完成后点击OK,左侧工程文件树状图如图:
然后对工程进行设置,在
Template
上右击选择
Options for Target ‘Template’
或者直接点击图标:
在弹出的对话框中:
Target
选项卡中设置晶振频率为8MHz(与最小系统板晶振频率一致):
Output
选项卡中勾选
Create HEX File
,即生成下载用的.hex程序文件:
C/C++
选项卡中Define添加
USE_STDPERIPH_DRIVER
,Include Paths中添加路径:
.CMSIS;.FWLIBinc;.USER
:
然后打开main.c文件,删除原有内容,添加代码:
#include "stm32f10x.h"int main(void){ while(1);}
即完成了模板工程的建立,可以进行编译,结果如下:
没有报错的话(
0 Error(s), 0 Warning(s)
)就说明工程建立好啦(~ ̄▽ ̄)~
下面用程序测试一下
通过威廉希尔官方网站 原理图可知,蓝色最小系统板上LED对应控制管脚为PB8,也就是GPIOB的8引脚,且当引脚输出低电平时,LED亮:
在main.c中输入下列代码:
#include "stm32f10x.h"int main(void){ GPIO_InitTypeDef GPIOInitStruct; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); GPIOInitStruct.GPIO_Pin = GPIO_Pin_8; GPIOInitStruct.GPIO_Mode = GPIO_Mode_Out_PP; GPIOInitStruct.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOB, &GPIOInitStruct); GPIO_ResetBits(GPIOB, GPIO_Pin_8); while(1);}
编译通过,
0 Error(s), 0 Warning(s)
连接好最小系统板的UART1,并拔去跳帽,打开
mcuisp.exe
,点击
搜索串口
选择正确的串口,选择生成的
Template.hex
程序文件,点击
开始编程
进行下载:
下载完成后,
插上跳帽重新上电或者按下复位键
,程序运行,绿色LED亮(红色为电源指示灯):
完结撒花✿✿ヽ(°▽°)ノ✿
STM32F103介绍
STM32F系列是
意法半导体(ST)公司
的32位ARM微控制器,内核采用Cortex-M3,其它方面的说明可以查阅相关资料。
STM32F103C8T6最小系统板
这里用的是笔者购买的两款STM32F103C8T6的最小系统板,如下图:
两款最小系统板很相似,左侧都是JLink插口,晶振频率均为8MHz,右侧布置有
供电接口
、
复位按键
、
启动方式选择跳帽
(图中绿色和红色的小东西,下载程序用),并且把引脚在周围引出。黑色的板子把
OLED
接口留了出来并且右侧多设置了一个按键,蓝色的板子则是给出了
串口
等接口。
STM32F103C8T6命名说明
[tr]符号说明[/tr]
STM32
ST公司采用ARM Cortex-M3内核的32位微控制器
F
芯片子系列
103
增强型系列
C
引脚数,T:36,C:48,R:64,V:100,Z:144,I:176
8
内部Flash容量(单位:字节),6:32K,8:64K,B:128K,C:256K,D:384K,E:512K,G:1M
T
芯片封装,H:BGA,T:LQFP,U:VFQFPN
6
工作温度,6: -40 ~ 85℃,7: -40 ~ 105℃
因此
STM32F103C8T6
即代表ST公司采用ARM Cortex-M3内核的增强型32位微处理器,引脚数为48,内部
Flash容量为64KBytes
,芯片封装为LQFP,正常工作温度为-40 ~ 85℃。
说明:Flash容量16 ~ 32K为小容量,64 ~ 128K为中等容量,256 ~ 512K为大容量。
开发环境搭建
这里使用Keil uVision5,具体安装就略过了(嘿嘿)。
安装完成后打开软件,是这样滴:
但是Keil uVision5并不带有STM32F103的软件包(Software Packs),因此需要在安装结束后再安装
Keil.STM32F1xx_DFP.2.1.0.pack
软件包(这个网上搜一搜应该能找得到,或者私信我给你发也行),直接双击安装就行,安装完成后再重新打开Keil uVision5就完成了。
建立第一个工程
STM32可以
直接控制寄存器进行程序开发
,但要求对芯片的寄存器掌握熟悉,并且开发速度会比较慢,但优点是运行效率更高;对于刚入门或者为了开发方便的同志们来说,采用
库开发
相对更舒服一些,并且可以在程序定型后再将库开发的版本转换成寄存器版本。在这里将使用官方库进行开发。
获取官方库
使用库开发让人放心的一点就是,这个库是
意法半导体(ST)公司
官方给出的,并且Free(嘿嘿)。
打开ST官网,找到
产品
->
微控制器
->
STM32主流MCU
然后找到
工具与软件
->
嵌入式软件
->
MCU及MPU嵌入式软件
->
STM32 Standard Peripheral Libraries
因为选用的是STM32F10x系列,所以根据描述和支持器件的说明,往下拉找到
STSW-STM32054
,点击打开,再点击
Open software page
下拉找到
获取软件
,注册或者登录ST官网就可以下载官方库了。
下载得到的官方库解压:
编写程序时主要用到其中的
Libraries
文件夹。
stm32f10x_stdperiph_lib_um.chm
是帮助文档,对后续开发十分有帮助,可以方便的查阅
数据结构
、
函数说明
等。
建立工程
推荐单独建立一个工程文件夹用于存放所有程序,并在此文件夹下新建
0-Template
文件夹用于保存工程模板,以后只需要复制工程模板就可以进行下一个程序的编写,而无需再次配置工程。
下面的
关键步骤
会进行标记,其它文字为说明性文字。
在
0-Template
文件夹下新建如下三个文件夹:
CMSIS
、
FWLIB
、
USER
:
其中CMSIS与官方库文件夹名称一致,为Cortex Microcontroller Software Interface Standard的缩写;FWLIB为Firmware Library即固件库缩写,存放STM32各类外设函数;USER存放用户编写的程序文件。文件夹命名并无要求,看个人习惯。
复制库文件
复制完成后,各个文件夹中如图:
将STM32F10x_StdPeriph_Lib_V3.5.0LibrariesCMSISCM3CoreSupport下的:
core_cm3.c
、
core_cm3.h
复制到
CMSIS
文件夹中;
将STM32F10x_StdPeriph_Lib_V3.5.0LibrariesCMSISCM3DeviceSupportSTSTM32F10x下的:
startup
文件夹、
stm32f10x.h
、
system_stm32f10x.c
、
system_stm32f10x.h
复制到
CMSIS
文件夹中;
将STM32F10x_StdPeriph_Lib_V3.5.0LibrariesSTM32F10x_StdPeriph_Driver下的:
inc
文件夹、
src
文件夹复制到
FWLIB
文件夹中;
将STM32F10x_StdPeriph_Lib_V3.5.0ProjectSTM32F10x_StdPeriph_Template下的:
main.c
、
stm32f10x_conf.h
、
stm32f10x_it.c
、
stm32f10x_it.h
复制到
USER
文件夹中。
打开Keil uVision5,点击
Project
->
new uVision Project
,浏览到
0-Template
文件夹,输入工程名称,这里取
Template
,保存:
将会弹出设备选择框,如果没有安装Keil.STM32F1xx_DFP.2.1.0.pack软件包则不会显示STM32F1 Series,需要安装软件包后再重新打开Keil uVision5建立工程,这里
选择STM32F103C8
,点击OK:
将会弹出环境设置选框,直接点击右上角关闭即可:
至此,新工程已经建立好,下面进行配置
首先设置各个文件夹及文件,在
Target 1
上右击选择
Manager Project items
或者直接点击图标
在弹出的对话框里进行设置,将
Project Targets
修改为
Template
,在
Groups
中新建
STARTUP
、
USER
、
CMSIS
、
FWLIB
四个文件夹,完成后先不关闭,还要添加库文件,如图所示:
添加库文件,选中一个文件夹,点击Add Files:
在
STARTUP
中添加CMSISstartuparm
startup_stm32f10x_hd.s
(注意选择文件类型),点击
Add
添加后再点击Close关闭,如图所示:
同理在
USER
中添加USER
main.c
、
stm32f10x_it.c
;
在
CMSIS
中添加CMSIS
core_cm3.c
、
system_stm32f10x.c
;
在
FWLIB
中添加FWLIBsrc中
所有.c文件
。
添加完成后点击OK,左侧工程文件树状图如图:
然后对工程进行设置,在
Template
上右击选择
Options for Target ‘Template’
或者直接点击图标:
在弹出的对话框中:
Target
选项卡中设置晶振频率为8MHz(与最小系统板晶振频率一致):
Output
选项卡中勾选
Create HEX File
,即生成下载用的.hex程序文件:
C/C++
选项卡中Define添加
USE_STDPERIPH_DRIVER
,Include Paths中添加路径:
.CMSIS;.FWLIBinc;.USER
:
然后打开main.c文件,删除原有内容,添加代码:
#include "stm32f10x.h"int main(void){ while(1);}
即完成了模板工程的建立,可以进行编译,结果如下:
没有报错的话(
0 Error(s), 0 Warning(s)
)就说明工程建立好啦(~ ̄▽ ̄)~
下面用程序测试一下
通过威廉希尔官方网站 原理图可知,蓝色最小系统板上LED对应控制管脚为PB8,也就是GPIOB的8引脚,且当引脚输出低电平时,LED亮:
在main.c中输入下列代码:
#include "stm32f10x.h"int main(void){ GPIO_InitTypeDef GPIOInitStruct; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); GPIOInitStruct.GPIO_Pin = GPIO_Pin_8; GPIOInitStruct.GPIO_Mode = GPIO_Mode_Out_PP; GPIOInitStruct.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOB, &GPIOInitStruct); GPIO_ResetBits(GPIOB, GPIO_Pin_8); while(1);}
编译通过,
0 Error(s), 0 Warning(s)
连接好最小系统板的UART1,并拔去跳帽,打开
mcuisp.exe
,点击
搜索串口
选择正确的串口,选择生成的
Template.hex
程序文件,点击
开始编程
进行下载:
下载完成后,
插上跳帽重新上电或者按下复位键
,程序运行,绿色LED亮(红色为电源指示灯):
完结撒花✿✿ヽ(°▽°)ノ✿
举报
更多回帖
rotate(-90deg);
回复
相关问答
STM32F103
stm32f103
如何烧录程序?怎么进行编程和
环境
搭建
的?
2021-09-29
4576
请问基于
STM32F103
开发
版的模型怎么
搭建
?
2021-11-22
833
请问一下怎样去
搭建
一种
STM32F103
编译
环境
呢
2021-12-15
1258
请问
STM32F103
是如何在IAR
环境
下去添加printf函数的
2021-12-01
993
野火霸道
STM32F103
怎么用?求试用案例
2021-04-02
4311
STM32F103
开发
板有什么优点
2021-05-23
3739
STM32F103
换成
STM32F
100cb的芯片,连led都点不亮了,求大神帮助
2014-08-23
7167
STM32F103
/
STM32F
407通用
开发
板主要的模块功能有哪些
2021-12-17
1639
STM32F103
开发
板的内部资源有哪些
2021-10-19
3431
如何
搭建
STM32
CubeMX系列的
开发
环境
?
2021-11-23
883
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
英国威廉希尔公司网站
william hill官网 版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分