当前位置:   article > 正文

C C++最新手把手教你STM32入门教程(标准库)_stm32教程,2024年最新你还看不明白_c++ stm32

c++ stm32

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

步骤一:准备工作

  • 硬件
  1. STM32开发板(本文章使用STM32F103VET6芯片)
  2. 仿真烧录下载器(本文章使用 ST-LINK V2 下载器)

(你也可以使用其他开发板芯片和仿真下载器,不妨碍继续阅读本文章)

  • 软件
  1. Keil MDK-ARM开发工具
  2. 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编译,以下是编译成功图片

#include "stm32f10x.h"                  // Device header

int main(void)
{

}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7


步骤六:编写代码

通过编译后,继续入门第一课   点个灯

首先看看自己的开发板原理图有没有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);

img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

nitTypeDef* GPIO_InitStruct);

[外链图片转存中…(img-WzFWmhgi-1715729865615)]
[外链图片转存中…(img-59fqUk7B-1715729865616)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/684114
推荐阅读
相关标签
  

闽ICP备14008679号