STM32CubeMX建立自己的第一个工程文件(STM32F103C8T6最小单片机)

STM32CubeMX建立自己的第一个工程文件(STM32F103C8T6最小单片机)

附加说明:

如果没有安装Keil的同学,可以参考我的这篇文章进行Keil的安装。

【工具篇】Keil安装(Keil_C51和Keil_MDK共存)

如果没有安装STM32CubeMX的同学,可以参考我的这篇文章进行STM32CubeMX的安装。

【工具篇】STM32CubeMX软件介绍、获取并安装


项目分享:

百度网盘链接:LED程序源文件百度网盘链接

版本说明:

代码IDE:Keil μVision5 MDK-ARM(V5.37)

主控板:STM32F103C8T6

STM32CubeMX:V6.13.0
STM32CubeMX MCU Package:STM32F1 V1.8.6

单片机选择的是下面这款。

在这里插入图片描述
在这里插入图片描述

下面开始正式用STM32CubeMX建立自己的第一个工程文件,并点亮第一个LED。


STM32CubeMX建立自己的第一个工程文件

选择芯片型号

打开STM32CubeMX并点击“ACCESS TO MCU SELECTOR”(访问MCU选择器)。

Tips:如果长时间不使用会有一段更新,需要耐心等待,如果没有更新,直接进去了,不需要注意此条。

在这里插入图片描述

在英文输入法的情况下输入STM32F103C8T6,双击选择STM32F103C8T6。

Tips_01:

其中STM32F103C8T6和STM32F103C8T6TR的主要区别在于封装和包装形式:

  1. STM32F103C8T6
    • 标准型号,通常以托盘(Tray)形式供货。
    • 适用于批量生产,数量较大时使用。
  2. STM32F103C8T6TR
    • 后缀“TR”表示以卷带(Tape and Reel)形式供货。
    • 适合自动化贴片生产线,便于机器操作。

多带个TR,没有本质区别,因此,我们只需要选择STM32F103C8T6的就可以啦。

在这里插入图片描述

Tips_02:

如下黄色框中的蓝色五角星,将其点亮,下次再用相同芯片的时候可以直接在这里快速选择。

在这里插入图片描述

System Core的配置

System Core(系统核心)指的是单片机系统的核心部分,它是单片机正常运行的基础,包含了处理器内核以及与之紧密相关的关键组件和功能模块。这部分负责执行指令、处理数据、管理系统资源以及协调各个外设的工作,是整个单片机系统的 “大脑”。


我们只需要配置RCC和SYS,其中RCC主要是外部时钟源选择,SYS主要是配置Debug(调试)的选择和Timebase Source(时基源)的选择。


RCC的配置

RCC(Reset and Clock Control,复位和时钟控制):它是单片机中非常重要的一个模块,负责管理系统复位、时钟源选择和时钟信号的分配。RCC模块通常用于配置和控制单片机内部和外部的时钟源,以确保各个外设和处理器核心能够正常工作。


Tips:由于上面选择的单片机只有HSE(High Speed Clock,高速时钟)的引脚上接有一个8MHz的石英晶体无源晶振(下图红色区域)。

在这里插入图片描述
由于上一条Tips,所以只需要配置High Speed Clock(HSE)为Crystal/Ceramic Resonator(水晶/陶瓷谐振器),其他配置默认无需改动。
在这里插入图片描述

Tips:

其他英文意思分别为:

Disable(使无效)

BYPASS Clock Source(旁路时钟源)

Crystal/Ceramic Resonator(水晶/陶瓷谐振器)
在这里插入图片描述

SYS的配置

切换到SYS界面,其中只需要修改Debug(调试)为Serial Wire,Timebase Source(时基源)选择SysTick默认就可以。

Tips:这里因为我使用的是STLINK/DAP。所以选择Serial Wire。
在这里插入图片描述

Clock Configuration的配置

Clock Configuration(时钟配置),由于上面选择的单片机的外部晶振为8MHz,因此在Input frequency(输入频率)处输入8,单位默认是MHz。

1.修改Input frequency(输入频率)为8。(默认为8不变就行)

2.修改PLL Source Mux(锁相环源复用器)切换到HSE。

3.修改System Clock Mux(系统时钟复用器)切换到PLLCLK。

4.修改HCLK(MHz)为72,并按下键盘的“ENTER”确定。(其中HCLK为总线时钟)

在这里插入图片描述

LED的引脚配置

回到Pinout & Configuration界面,点击右侧图形化芯片的PC13引脚并设置为GPIO_Output模式。

在这里插入图片描述

上述的单片机的LED是用低电平驱动的电路。

在GPIO的选择框中选中PC13,并按照以下修改。


GPIO output level(GPIO输出电平):High(这个决定单片机上电的初始该引脚的初始状态,由于是低电平驱动的,所以高电平为LED灭,低电平为LED亮)


GPIO mode(GPIO模式):Output Push Pull(Output Push Pull,推挽输出)


GPIO Pull-up/Pull-down(GPIO上拉/下拉):Pull-up(上拉)


Maximum output speed(最大输出速度):Low(低)


User Lable(用户标签):LED

在这里插入图片描述

Project Manager的配置

Project的配置

1.切换到Project Manager界面。

2.转到Project选项卡。

3.Project Name(项目名字):修改为Project。(可以选择自己喜欢的名字,不用非要选择Project,但是后期不好修改。我一般喜欢用Project,而直接修改外部文件名为自己喜欢的名字,之后会有演示)

4.Project Location(项目位置):选择自己喜欢的位置保存项目。

5.Application Structure(应用程序结构):我选择的是Advanced(高级的)。(这个结构会把Inc和Src合并到Core里面,其他的也有些许不同,我个人比较喜欢这个结构)

6.Toolchain Folder Location(工具链文件夹位置):默认是Project Location(项目位置)下你的Project Name(项目名字)。

7.Toolchain/IDE(工具链/Integrated Development Environment,集成开发环境):我选择的是Keil MDK-ARM V5.32

在这里插入图片描述

Code Generator的配置

1.转到Code Generator选项卡。

2.将所有选项全部勾选。
在这里插入图片描述

Tips:

1.Generate peripheral initialization as a pair of ‘c/.h’ fles per peripheral

为每个外设生成一对‘c/.h’文件初始化外设


2.Backup previously generated files when re-generating

重新生成时备份以前生成的文件


3.Keep User Code when re-generating

重新生成时保留用户代码


4.Delete previously generated files when not re-generated

删除以前生成的未重新生成的文件

STM32CubeMX平台下的最后一步

点击右上角的GENERATE CODE(生成代码)。

在这里插入图片描述
选择Open Project(打开项目)。
在这里插入图片描述

STM32CubeMX项目结构

在这里插入图片描述
其中,Drivers的BSP是用户自己建立的文件。

至此,STM32CubeMX配置就完毕了,但是要点亮第一个LED灯,还需要在Keil上进行一些配置。

Keil的配置

调试器的配置

按照下图顺序修改Debug。

因为我使用的是"DAP Debugger",所以我选择CMSIS-DAP Debugger。

如果你是STLINK,就选择ST-Link Debugger。

如果你是JLINK,就选择J-Link /J-TRACE Cortex。

最后,千万不要直接点右上角的“X”,需要点左下角的“OK”,才会保存配置并生效。(不要问我怎么知道的,嘿嘿)
在这里插入图片描述

main.c文件的撰写

找到main.c文件,在main函数的while(1)循环里面输入。

// 将LED引脚设置为低电平
HAL_GPIO_WritePin(LED_GPIO_Port, LED_Pin, GPIO_PIN_RESET);
// 延时200ms
HAL_Delay(200);
// 将LED引脚设置为高电平
HAL_GPIO_WritePin(LED_GPIO_Port, LED_Pin, GPIO_PIN_SET);
// 延时200ms
HAL_Delay(200);

在这里插入图片描述
注意,以上屏幕的黄色字迹!!!

这样就会得到一个LED以200ms闪烁了。


除此之外,按照我个人的“Keil项目规则”,又重新修改了一下代码结构,主函数修改如下。
优快云链接:Keil项目规则
在这里插入图片描述

工程文件名修改

上述提到了,命名的说法,我就以这个为例,我想修改这个文件名字为LED,就可以直接修改最外层的文件名字为“LED”就可以。


参考文献

STM32单片机开发入门(一)STM32F103C8T6小系统板电路原理图分析_stm32f103c8t6原理图-优快云博客


因本人能力有限,文中有错误之处还请谅解,也欢迎大家发邮箱进行勘误:
Email:ren_zhaofu@126.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值