编辑推荐: |
本文介绍了如何入门STM32(标准库),包括安装开发工具、安装仿真器驱动、创建工程、配置工程、添加文件、编写代码、编译程序和下载程序等步骤。希望可以帮助初学者快速掌握STM32的基础知识和开发技巧。
本文来自于CSDN,由火龙果软件Linda编辑、推荐。 |
|
前言
在物联网时代,嵌入式系统的应用越来越广泛,而STM32作为业内领先的嵌入式芯片之一,受到了越来越多开发者的关注和喜爱。然而,对于初学者来说,学习STM32还是有一定难度的,需要具备一定的电子、嵌入式系统的基础知识。
STM32是一款非常强大的嵌入式芯片,它的应用领域非常广泛。在学习STM32的过程中,首先需要掌握的是基本的硬件知识和编程语言,然后才能深入学习STM32的应用和开发。本教程将手把手教你如何入门STM32(标准库),让你快速掌握STM32的基础知识和开发技巧。
本教程包含丰富的实例代码和实验,每一节都附有详细的图文解释和操作步骤,让初学者能够轻松理解和掌握。
最后,希望本教程能够成为初学者STM32学习的得力助手,也希望读者在学习过程中能够不断探索、实践和创新,不断提高自己的技能水平。
步骤一:准备工作
硬件
STM32开发板(本文章使用STM32F103VET6芯片)
仿真烧录下载器(本文章使用 ST-LINK V2 下载器) (你也可以使用其他开发板芯片和仿真下载器,不妨碍继续阅读本文章)
软件
Keil MDK-ARM开发工具
STM32标准库
步骤二:安装Keil MDK-ARM开发工具
本文章使用Keil5(MDK)开发平台,但你可以用STM32CubeIDE、或VScode,根据个人使用喜好开发。
如果你没安装Keil5(MDK)软件(如果你已经安装跳过),提供以下链接参考下载:
首先需要下载Keil MDK-ARM开发工具,并且安装好。安装过程中需要选择安装的组件,选择CMSIS和Device
Support即可。
安装教程 :Keil5安装教程(包含C51与MDK共存)WIN10 亲测可用
网盘下载:Keil5 MDK 下载 提取码:1234
步骤三:创建工程
创建文件夹
先下载标准库: 标准库下载 提取码:1234
下载到桌面上,右击该压缩包进行解压
解压完了后,新建文件夹,命名随意,但最好不用中文,防止出现不明错误。然后在建好的文件夹再以下文件夹并命名(方便移植标准库)
如图:
文件夹释义:Core(架构Cortex®-M3内核)、Fwlib(标准库中的.c和.h头文件)、Project(用来放工程)、Startup(芯片启动文件)、User(用户文件,用来放主函数)
新建完成后进行库移植
1.Core移植
打开文件夹 路径:“STM32F10x_StdPeriph_Lib_V3.5.0”-“Libraries”-“CMSIS”-“CM3”-“CoreSupport”,然后右击长按选中两个-“core_cm3.c”和“core_cm3.h”,选中后右击复制粘贴到“Test”-“Core”的文件夹中
然后退回到“CM3”文件夹中
打开文件夹 路径:“CM3”-“DeviceSupport”-“ST”-“STM32F10x”,然后右击长按选中三个“stm32f10x.h”和“system_stm32f10x.c”和“system_stm32f10x.h”,选中后复制粘贴到“Test”-“Core”的文件夹中
2.Fwlib移植 (这个就比较简单了)
返回到“STM32F10x_StdPeriph_Lib_V3.5.0”中-“Libraries”-“STM32F10x_StdPeriph_Driver”-然后右击长按选中两个-“inc”和“src”,选中后右击复制粘贴到“Test”-“Fwlib”的文件夹中。
inc:是标准库里的.h文件
src:是标准库里的.c文件
3.Startup(启动文件移植)
返回到 文件路径如下:“STM32F10x_StdPeriph_Lib_V3.5.0”- “Libraries”-“CMSIS”-“CM3”-"DeviceSupport"-“ST”-“STM32F10x”-“startup”,然后选中全部一起复制到“Test”-“Startup”文件夹中
4.User移植
打开文件夹“User” -右击选择新建文本文档,然后重命名为“main.c”。
打开文件夹 “STM32F10x_StdPeriph_Lib_V3.5.0”->“Project”
-“STM32F10x_StdPeriph_Template”
然后选中“stm32f10x_conf.h”和“stm32f10x_it.c”和“stm32f10x_it.h”和“system_stm32f10x.c”复制到文件夹“Test”-“User”中
步骤四:配置工程
双击打开Keil5(MDK)
在Keil MDK-ARM开发工具中,选择File->New Project,然后选择工程路径,输入工程名称即可创建工程。
建工程中,它会弹一个让你选择芯片的弹窗,本文章使用STM32F103VET6芯片,所以选图中“STM32F103VE”
假如你的开发板芯片是“STM32F103C8T6”,那么你应该选择图中“STM32F103C8”
点OK后会跳出一个“Manage Run-Time Environment”的窗口,不用理会,直接叉掉。
然后按图步骤继续--
将STM32标准库中的源文件和头文件添加到工程中,例如:stm32f0x.h、stm32f0x_gpio.h、stm32f0x_rcc.h等。
注意: 图下在给“Startup”添加文件中选择了“startup_stm32f10x_hd”启动文件,芯片容量不同,“STM32F103VET6”容量512KB,属于高容量
假如你使用 “STM32F103C8T6”芯片,容量为64KB,属于中容量,应选择“startup_stm32f10x_md”
双击工程中“main.c”,然后对该文件右击选择“lnsert '#include file”-“stm32f10x.h”,快速添加头文件。然后在8296行代码复制USE_STDPERIPH_DRIVER
复制后打开小魔术棒-点击“C/C++”在“Define”框粘贴,然后在"Include
Pahs"添加头文件路径,然后新建-选择文件路径添加进去:“Test”文件夹中的“Core”、“Fwilb/inc”、“Startup”、“User”,这几个文件夹。
把以下代码复制到main.c中,再点Bulid编译,以下是编译成功图片
步骤五:编写代码
通过编译后,继续入门第一课 点个灯
首先看看自己的开发板原理图有没有LED灯,如图
这个原理图中LED一头接1K上拉电阻通往PB5引脚,另一头接去GND。得知该LED高电平点亮,低电平熄灭。
如果你的开发板的LED是其他引脚,例 PA5,也是一样原理能点灯。
开始配置,在main.c中添加代码 :
打开“stm32f10x_rcc.h”,把这个函数:
“void RCC_APB2PeriphClockCmd(uint32_t RCC_APB2Periph,
FunctionalState NewState);”
Q:复制到主函数函数里,为什么要用这个函数呢?
A:这个RCC是内部时钟,必须开时钟才能运行,GPIOB在APB2总线上,所以选这个函数。
函数里面的第一个形参是选择GPIO位置,我的开发板PB5口,所以选择RCC_APB2Periph_GPIOB。
然后,函数里面的第二个形参是使能端,ENABLE就是打开,DISABLE就是关闭。
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
然后就是GPIO配置
打开“stm32f10x_gpio.h”,把这个函数:
void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef*
GPIO_InitStruct);
这个函数需要引出结构体进行配置,再赋给这个函数.
第一个形参是GPIO位,如果你是PA5即GPIOA,本文章是PB5即GPIOB
第二个形参是结构体变量名,这个结构体跟枚举差不多,直接&上结构体变量地址就行了
GPIO_Init(GPIOB, &GPIO_InitStructure); //PB5
例 :GPIO_Init(GPIOA, &GPIO_InitStructure); //PA5
GPIO_InitTypeDef中要引出3个结构体进行配置
第一个是GPIO工作模式,LED一般都是推挽输出 ,具体内容参考STM32入门-GPIO端口的八种工作模式
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//设置为推挽输出
第二个是GPIO引脚,因为原理图是PB5,所以直接改后面的数字就可以了
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
第三个是速度,一般直接50Mhz
GPIO_InitStructure.GPIO_Speed =GPIO_Speed_50MHz;
配置好了,最后就是直接置1点亮(高电平)
直接调函数就可以置高电平了
void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);//GPIO设置为高电平
第一个参数为 GPIO位置,假如是PA5,那就GPIOA。如果是PB5,那就GPIOB.
第二个参数是引脚位置,GPIO_Pin_x(x:引脚位置,例:PB5 = GPIO_Pin_ 5).
GPIO_SetBits(GPIOB, GPIO_Pin_5);//PB5
步骤六:下载程序
后面就是通过仿真烧录器下载,将ST-LINK V2仿真器连接到STM32芯片上,然后在Keil MDK-ARM开发工具中选择Flash->Download,将程序下载到芯片中。
打开小魔术棒-Debug
如果你是芯片是64KB的,下载时候这个位置要选择合适的Flah 参考网站:STM32下载程序
成功点亮截图
代码奉上
GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; GPIO_InitStructure.GPIO_Speed =GPIO_Speed_50MHz; GPIO_Init(GPIOB, &GPIO_InitStructure); GPIO_SetBits(GPIOB, GPIO_Pin_5);
|
总结
本教程介绍了如何入门STM32(标准库),包括安装开发工具、安装仿真器驱动、创建工程、配置工程、添加文件、编写代码、编译程序和下载程序等步骤。希望可以帮助初学者快速掌握STM32的基础知识和开发技巧。
没有人一开始是大佬,都是从小白入门的.谢谢阅读!
|