STM32CubeMX新建工程+基本IO配置过程

本文详细介绍如何使用STM32CubeMX配置STM32芯片的IO口以实现LED灯的点亮。从新建工程开始,逐步讲解选择MCU、配置引脚功能、时钟配置等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

推荐

分享一个大神的人工智能教程。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到人工智能的队伍中来!http://www.captainbed.net/strongerhuang

 

我的网站:https://www.strongerhuang.com

我的知乎:https://www.zhihu.com/people/strongerHuang.com

 

 

Ⅰ、写在前面

学习本文之前可以查看我前面的文章:

STM32CubeMX介绍、下载与安装

STM32CubeMX使用方法及功能介绍

 

本文接着上一篇文章结合基本IO配置实例,讲述关于STM32CubeMX新建工程的过程。最终通过STM32CubeMX工具配置完成一个驱动IO(点亮LED)的软件工程,也就是通过STM32CubeMX配置完成之后,打开工程直接下载就能点亮LED的工程。

 

本文使用Keil(MDK-ARM) V5软件为编译环境,如果你没有安装最新版本的软件,请安装最新版本的软件,具体过程可以参考我的一篇文章:

MDK-ARM下载与安装

 

关于本文的更多详情请往下看。

 

Ⅱ、STM32CubeMX新建工程描述

在上一篇文章中简单讲述了新建一个工程的步骤,这里结合实例来讲述新建工程的每一个步骤的细节。

 

1.打开STM32CubeMX软件,点击“新建工程”

 

2.选择MCU 选择(ST官方)开发板

A.如果是我们网上购买的,或者自己画的开发板,点击“MCU Selector”进入MCU选择器。选择器在网页上常见,根据自己需求进行选择(我们以STM32F103E为例)。

1.根据“系列”选择;如:F0、F1、F2......F7、L0、L1、L4等;

2.根据“产品线”选择;

3.根据“封装”选择;

4.根据“其他特征”选择;如:FLASH大小、RAM大小、IO数量等。

层层筛选下来,最后就可以看到自己想要的芯片型号,双击“选中”芯片,如下图:

 

B.如果你的开发板是购买ST官方的开发板(或评估板),点击“Board Selector”进入开发板选择器。(我们以STM3210E-EVAL为例)。

1.根据“厂商”选择;目前只有ST厂商,估计以后会拓展其他厂商;

2.根据“板子类型”选择;

3.根据“芯片系列”选择;

层层筛选下来,最后就可以看到自己想要的芯片型号,双击“选中”芯片,如下图:

 

上面两种选中的方法类似,以及后面的的配置也很类似,我们下面以第一种选中MCUSTM32F103ZE)为例来讲述。

 

3.工程配置

在上一步“选中”芯片之后,就进入了芯片工程配置界面。

 

A.Project ->Settings弹出设置窗口;

 

B.在弹出的设置窗口有3个选项:

Project工程设置:这个选项是主要设置的选项,配置信息描述在下面;

Code Generator代码生成配置:这个选项是关于代码生成的配置。如:拷贝HAL库的配置、生成.c和.h的配置(一般不用修改,默认配置)。

AdvancedSettings高级设置:这个选项在配置芯片(引脚功能)之后才能设置。

 

C.Project工程设置,这个选项是配置工程重要的一个选项,其中配置的信息也比较重要,且容易理解。

 

4.Pinout配置

这接下的配置才是与我们最终运行代码密切相关的,我们这里以简单的配置IO(PF11引脚)驱动LED为例来讲述。

A.放大芯片图标,找到PF11(可以通过Find查找):

 

B.选中PF11-> 左键 -> 弹出列表 -> 选中“GPIO_Output”

 

C.配置“晶振”引脚(RCC配置)

如果使用“外部晶振”就还需要继续配置(我们配置HSE为例),包含三个配置:

HSE外部高速时钟、LSE外部低速时钟、MCO时钟输出。

 

5.Clock配置

这里的配置是比较人性化的配置,结合时钟树,一看就明白(也可以根据参考手册时钟树配置),配置方法一样。

 

6.“综合”配置

由于我们只配置了PF11引脚,其他功能(如DMA、USB等)没有配置,如果前面配置的有,这里配置的信息就比较多,所以叫“综合配置”。

点击GPIO,弹出配置对话框,按步骤依次填写完信息,点击“OK”就好了:

 

7.低功耗配置

一般在学习阶段,低功耗配置比较少,在实际项目中配置低功耗需要考虑的东西比较多(包括硬件)。

 

8.生成代码

在完成上面所有配置之后,最后的工作就是点击“生成代码”按钮:

 

如果前面配置的生成软件工程,就会拷贝HAL库文件在你的工程:

 

最后提示打开软件工程(前提是你已经安装了IDE:MDK-ARM)

 

9.编译下载

打开工程,编译没有错误,没有警告,下载,程序运行;

 

至此,整个过程就完成了。如果你的开发板LED灯引脚(PF11)和上面配置一样,则下载到开发板,从新复位则可见LED灯亮(低电平点亮LED)。

STM32CubeMX基本IO配置过程(原始版),提供给大家下载地址(360云盘):

https://yunpan.cn/cMm9rBQZNX3H4  访问密码 6735

 

10.添加代码

上面的工程是简单的工程(配置初始化代码),可以在提示处(如 USER CODE BEGIN)添加自己代码。

我在“USER CODE BEGIN 0”下添加了一个“测试延时”函数; 在“USER CODE BEGIN WHILE”处添加了一个LED亮灭语句。

添加以上两处代码就能实现LED间隔(延时)一段时间亮灭变化。

STM32CubeMX基本IO配置过程(修改版),提供给大家下载地址(360云盘):

https://yunpan.cn/cMmUMDSY8KSgi  访问密码 8304

 

Ⅲ、说明

以上就是一个“基本IO配置过程”的详细步骤,后续会定期更新使用STM32CubeMX新建各种外设资源工程的文章,敬请等待。

以上总结仅供参考,若有不对之处,敬请谅解。

 

Ⅳ、最后

我的网站:https://www.strongerhuang.com

我的微信公众号(ID:strongerHuang)还在分享STM8、STM32、Keil、IAR、FreeRTOS、UCOS、RT-Thread、CANOpen、Modbus…等更多精彩内容,如果想查看更多内容,可以关注我的微信公众号。

 

微信公众号

 

<think>嗯,我现在要回答用户关于STM32CubeMX新建工程时选择STM32F103C8T6和C8T6R的区别的问题。首先,我需要确认这两个型号的具体差异。用户可能在使用CubeMX时遇到了这两个选项,想了解选哪个合适。 首先,我应该回忆一下STM32的命名规则。STM32的型号通常由几个部分组成,比如STM32F103C8T6,其中F代表产品类型,103是子系列,C代表引脚数,8代表闪存容量,T是封装类型,最后的数字可能还有其他信息。但具体的C8T6和C8T6R的区别可能在哪里呢? 接下来,我需要查证这两个型号的具体参数差异。可能的关键点在于后缀的“R”。根据ST的命名规则,后缀可能有不同的含义,比如不同的封装、温度范围、或者其他特性。例如,有的后缀可能表示不同的封装类型,比如LQFP、BGA等,或者不同的温度范围,比如工业级或商业级。 查阅资料的话,可能需要查看ST的官方数据手册或者产品页面。例如,STM32F103C8T6和C8T6R,可能C8T6R中的R代表某种特殊配置,比如更多的IO引脚,或者不同的外设配置。比如,某些型号的R后缀可能表示该芯片具有更多的GPIO,或者某些外设资源更丰富,比如更多的定时器、UART等。 比如,STM32F103C8T6通常有48引脚,而C8T6R可能也是同样的引脚数,但可能在某些外设或功能上有区别。例如,有些型号的后缀R可能代表“Reel”(卷带包装),但这通常不影响芯片本身的功能,而是包装方式。但用户的问题是关于工程配置的差异,可能不是包装问题,而是芯片功能的不同。 这时候可能需要进一步确认,比如查看CubeMX中这两个型号的可用资源是否不同。例如,在CubeMX中选择这两个型号时,检查它们的引脚分配、外设数量、内存大小是否有差异。比如,C8T6R可能具有更多的定时器或通信接口,或者不同的封装导致引脚排列不同。 另外,可能C8T6和C8T6R的闪存或RAM容量相同,但外设配置不同。例如,某些型号可能有CAN控制器,而其他型号没有。或者不同的SPI/I2C/UART数量。 或者,可能存在其他差异,比如最大时钟速度、工作电压范围等,但这些通常不会在相同子系列中有太大变化。 另外,考虑到STM32F103系列中,有些型号可能属于不同的线,比如性能线、USB基本型等,但C8T6通常属于中等容量产品,具有64KB闪存,20KB RAM,而C8T6R可能在某些外设上有所不同。 可能需要查阅两者的数据手册,比较它们的参数。例如,STM32F103C8T6的数据手册和C8T6R的数据手册对比,看看外设数量、封装、引脚定义等是否有变化。 例如,假设C8T6R中的R代表某种增强型外设配置,比如更多的定时器或者通信接口,或者更大的封装允许更多的IO引脚被引出。比如,标准C8T6是LQFP48封装,而C8T6R可能同样是LQFP48,但某些引脚配置不同,或者某些功能被启用。 另外,在CubeMX中选择不同型号时,可能会影响生成的代码中的外设初始化和引脚分配。如果C8T6R有更多的外设或不同的引脚功能,那么在配置时会有更多的选项可用。 总结来说,可能的区别在于外设资源、引脚数量或功能、封装类型等。需要具体的数据手册对比才能确定,但根据常见的命名规则,R后缀可能代表某种特定的配置,比如更多的外设或不同的封装选项。</think>在STM32CubeMX中选择**STM32F103C8T6**和**STM32F103C8T6R**时,两者的核心区别在于**封装类型**和**可用引脚数量**。以下是具体分析: --- ### 1. **型号命名规则解析** 根据ST官方命名规则: - **STM32F103**:芯片系列(基础型Cortex-M3内核)。 - **C8**:64KB Flash、48引脚封装(C=48引脚,8=64KB)。 - **T6**:封装类型(LQFP)。 - **R**:后缀表示**不同封装版本**(例如引脚排列或功能优化)。 --- ### 2. **具体差异对比** | 参数 | STM32F103C8T6 | STM32F103C8T6R | |---------------------|-----------------------|------------------------| | **封装类型** | LQFP48(7x7mm) | LQFP48(7x7mm) | | **GPIO数量** | 37个可用GPIO | **40个可用GPIO** | | **引脚功能分配** | 标准功能配置 | **部分引脚功能优化** | | **典型应用场景** | 通用控制 | 需要更多GPIO或外设扩展 | --- ### 3. **实际影响** - **GPIO扩展**:C8T6R相比C8T6多出3个GPIO(例如PC13~PC15可能被释放)。 - **外设复用**:C8T6R的某些引脚可能支持更多外设复用(如额外UART或定时器通道)。 - **硬件设计**:若项目中需要更多GPIO或特定外设连接,C8T6R更灵活。 --- ### 4. **CubeMX配置注意事项** 1. **引脚分配**: - 在C8T6R中,部分引脚(如PC13~PC15)默认可能未被占用,可自由配置。 - 需查看芯片数据手册确认具体引脚功能。 2. **外设初始化**: - C8T6R可能支持更多外设组合(例如多一个SPI或I2C接口)。 3. **代码生成**: - 若切换型号,需重新检查引脚冲突和时钟树配置。 --- ### 5. **如何选择?** - **优先C8T6R**:若需要更多GPIO或优化引脚功能。 - **优先C8T6**:若现有硬件设计基于标准引脚分配,或资源已满足需求。 --- ### 6. **参考资料建议** - **数据手册**:对比两者的《STM32F103x8/B Datasheet》(DS5319)中引脚定义章节。 - **CubeMX验证**:在软件中分别选择型号,观察GPIO和外设配置差异。 通过上述分析,可根据具体项目需求选择合适的型号。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

strongerHuang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值