历史上的今天
返回首页

历史上的今天

今天是:2025年08月05日(星期二)

正在发生

2019年08月05日 | STM32Cube工具学习笔记(一)Cube配置

2019-08-05 来源:eefocus

前几周接触到了STM32CubeMX这个工具,以下简称Cube,先简单介绍一下这个工具吧。


STM32CubeMX是ST出的一款免费的开发工具,近几年ST也在一直大力推这个工具,也在推行新的HAL库(an STM32 abstraction layer embedded software ensuring maximized portability across the STM32 portfolio)硬件抽象层API。使用HAL库开发的好处是方便用户在不同的芯片平台上移植代码。


Cube的作用是通过图形化的配置生成基础的工程文件,生成的文件包含了芯片初始化代码,现支持IAR、MDK、TureSTUDIO等IDE, 对于用惯了使用标准库开发的我来说我觉得还是非常方便的。


先说一下用Cube配置STM32工程的过程: 

我这边常用的IDE是KEIL 5 相信大部分人都用的是这个环境,我常用MCU是STM32F103这个系列,也是烂大街的ARM入门级的单片机。


首先打开软件: 

这里写图片描述

界面看上去非常简洁,下面直接点击下面的蓝色字体 New Project就会弹出下面的界面: 

这里写图片描述

可以看到这里有一个芯片的选型界面,可以针对不同的应用可以选择不同芯片进行开发,方便用户选型。 

双击目标芯片后会弹出下面的界面:


这里写图片描述

这边就是Cube主要的配置界面,可以看到左边的可以对内部的一些外设资源进行配置,右边是目标芯片的pin mapping 看上去还是非常直观的,点击相应的引脚还能看到引脚的一些复用功能,非常有利于新手开发,不用一直查手册去找对应引脚的功能。


1.先配置一下一下芯片的外部时钟源、RCC时钟和单片机调试接口,先让单片机工作起来: 

STM32F103有两个时钟源:HSE(高速时钟)和LSE(低速时钟)这 两个时钟信号分别由外部的晶体振荡器产生,先找到对应的引脚并将其设置为对应的功能 

 这里写图片描述 

两个晶体振荡器一共是四个引脚,配置完后,对应的引脚显示绿色 

在左边的功能配置中找到RCC,HSE和LSE都选择Crystal 

 这里写图片描述 

配置完RCC后找到SYS,Debug调试模式选择Serial Wire(SW),时基源选择SysTick(系统时钟),PA13和PA14这两个引脚配置成SW模式的SWCLK和SWDIO这边引脚的配置就结束了。


2.点击第二个选项卡Clock Configuration进入时钟配置 

进入之后直接可以看到芯片内部的时钟树 

这里写图片描述

这边的配置比较简单根据实际的工作需求可以选择不同时钟频率。


3.进入下一个Configuration界面,这个配置可以理解为一个总体的配置 

 这里写图片描述 

这里可以配置串口、中断、DMA等外设的具体参数,这边由于没用到任何其他外设这边就不需要对这边的配置进行修改,保持默认就可以了。


4.最后一个Power Consumption Calculator 功耗计算器,这边可以根据芯片频率和选择外设的数量和种类计算出一个大概的功耗。


现在一个简单的基本芯片工作配置就结束了,之后就是要生成对应的工程模板 

点击Project -> Setting 

 这里写图片描述 

进入配置页面: 

 这里写图片描述 

填一个项目名称,把Toolchain/IDE 更改成MDK-ARM V5 其他选项保持默认


进入第二个选项卡:Code Generator代码生成 修改如下 

 这里写图片描述 

为了减少编译文件,这里选择只拷贝必要的库文件到项目中,勾选为每个外设生成对应的 .c和.h文件,这样方便对每个外设的代码进行管理和修改。 

到此所有配置结束 点击Project -> Generate Code 后,Cube会在之前设置的目录下生成工程文件: 

 这里写图片描述 

项目文件在MKD-ARM文件夹下。 

打开项目编译没有问题 


这里写图片描述

这样Cube配置的部分就告一段了,使用还是非常方便的,避免以往繁琐的项目新建过程,往后的项目开发可能会经常用的这个工具。


推荐阅读

史海拾趣

Analogic Corporation公司的发展小趣事

Analogic Corporation 是一家总部位于美国马萨诸塞州的跨国公司,成立于1967年,主要从事医疗影像和航空安全领域的高性能技术产品的设计、制造和销售。以下是 Analogic Corporation 公司发展的相关故事:

  1. 成立与初期阶段:Analogic Corporation 成立于1967年,由 Bernard M. Gordon 博士和 Raymond J. Stata 博士等人共同创立。公司最初的业务重点是设计和制造用于医学影像诊断的模拟计算机设备。这些设备利用先进的模拟电子技术,帮助医生进行 X 射线、超声波和核磁共振成像等医学检查。

  2. 技术创新与产品优化:Analogic Corporation 在技术创新方面一直处于行业前沿。公司不断投入研发,并开发出一系列先进的医疗影像产品和航空安全技术。其产品包括 CT 扫描仪、核磁共振成像设备、安全检测设备等。这些产品以其高分辨率、高性能和可靠性而闻名,被广泛应用于医疗保健和安全检测领域。

  3. 市场拓展与全球业务:Analogic Corporation 在全球范围内建立了广泛的销售网络和合作伙伴关系。公司的产品远销世界各地,包括北美、欧洲、亚洲等地区。通过与国际合作伙伴的合作,Analogic Corporation 不断拓展业务范围,提升产品的市场占有率和影响力。

  4. 应用领域与客户合作:Analogic Corporation 的产品被广泛应用于医疗保健和航空安全领域。公司与全球各大医院、诊所、航空公司和安检机构等客户建立了长期稳定的合作关系。通过与客户的紧密合作,Analogic Corporation 不断了解市场需求,提供定制化的解决方案,满足客户的特定需求。

  5. 持续发展与未来展望:作为一家具有悠久历史和丰富经验的公司,Analogic Corporation 将继续致力于技术创新和产品研发,以满足不断变化的市场需求。公司将继续加强与客户和合作伙伴的合作关系,不断拓展业务领域,进一步提升产品性能和服务水平。在未来,Analogic Corporation 将继续保持行业领先地位,为客户提供更加优质和可靠的解决方案。

Baumer Electric Ag公司的发展小趣事

1966年,Baumer Electric Ag完成了从个体企业向股份公司的转型。同年,公司推出了测量开关和控制开关,这一创新产品为公司的成功发展奠定了坚实基础。股份制改革为公司带来了更多的资金和资源支持,加速了产品研发和市场推广的进程。

恒连电子(EVERCOM)公司的发展小趣事

在恒连电子的发展历程中,技术突破和产品创新始终是公司发展的核心动力。公司投入大量资金和资源进行技术研发,不断推出具有竞争力的新产品。其中,一款具有自主知识产权的智能芯片成为了公司的明星产品,不仅提升了产品的整体性能,还为公司带来了可观的利润。此外,恒连电子还注重产品的多元化发展,不断拓展产品线,满足市场的多样化需求。

Able Systems公司的发展小趣事

随着国内市场的逐渐饱和,Able Systems公司开始将目光投向国际市场。通过参加国际展览、建立海外销售渠道等方式,公司成功将产品推向了全球范围。同时,公司还积极与国际知名企业合作,共同开发新产品,进一步提升了公司在国际市场的竞争力。

Amaze Electronics Pte Ltd公司的发展小趣事

在追求经济效益的同时,Amaze Electronics也积极承担社会责任,注重环保和可持续发展。公司致力于开发环保型电子产品,采用环保材料和节能技术,减少产品对环境的影响。此外,公司还积极参与环保公益活动,推动社会对环保问题的关注和行动。这些举措不仅提升了公司的社会形象,也为公司的可持续发展奠定了坚实基础。


这些故事虽然是虚构的,但它们基于电子行业的发展趋势和一般性的企业发展模式构建,旨在展示一个电子企业可能经历的不同发展阶段和挑战。请注意,这些故事并不针对任何特定的公司或事件,仅作为参考和启发。

Efficient Power Conversion公司的发展小趣事

随着EPC公司氮化镓技术的不断完善和成熟,其产品开始受到市场的广泛认可。无线电源传送、全自动汽车、高速移动通信等领域的企业纷纷采用EPC公司的氮化镓功率半导体器件,以提高其产品的性能和效率。EPC公司的市场份额逐渐扩大,成为氮化镓功率管理技术领域的领军企业。

问答坊 | AI 解惑

关于DirectDraw的StartVideo

在wince平台下,我们通过调用IDirectDrawVideoPort中的StartVideo函数,但是StartVideo调用不成功,不知有那位大侠帮小弟分析一个原因或可能出错的地方。以下是关于StartVideo的一些代码: memset(&g_vpInfo,0,sizeof(g_vpInfo));   //add ...…

查看全部问答>

S3C6410——同一时刻来两个外部中断会怎么样?

发现一个很奇怪的问题: S3C6410+WinCE6.0的系统,两个中断同一时刻来的时候,就出现丢数的现象。 详细情况是这样:做磁卡的驱动,有两个磁道:每个磁道有一个时钟线、一个数据线。               ...…

查看全部问答>

请问在WinCE EBOOT里如何实现TV输出?

我想在EBOOT中TV-OUT输出开机界面,请问怎么实现,谢谢!(我用的是WinCE6.0)…

查看全部问答>

请教一个关于framebuffer的操作问题?欢迎大家讨论

我现在把framebuffer设置为1280X720, 然后我在写buffer的时候,写进去的是一张:720X480的图片 这样的画这个图片只会显示在左上脚,我要如何设置才能让这个图片全屏显示?谢谢...…

查看全部问答>

推荐一个国赛控制类、电源类和通讯类技术交流QQ群

本帖最后由 paulhyde 于 2014-9-15 09:30 编辑 如标题,这几个类型的技术问题在电子工程师技术交流QQ群应该可以讨论得起来。 QQ群号:12425841  …

查看全部问答>

[求助]请问6720与SRAM的接口问题[已解决 附接线方法]

6720接STC的256*16 SRAM,一上电SRAM就发热,9V下总电流100多mA 硬件上没有短路,换了一片SRAM还是这样 如果让DSP处于复位状态SRAM就不会发热,电流也变的正常 请有经验的朋友帮忙看一下哪里有问题 我的接法是 SRAM  D0~D15   ...…

查看全部问答>

今天颁奖的情况。给我们不能去的爆爆啊 - -奖品是什么

本帖最后由 paulhyde 于 2014-9-15 03:35 编辑   求图求奖品  哈哈 = =|||  …

查看全部问答>

德州仪器:Stellaris? AC 感应电机参考设计套件

本帖最后由 dontium 于 2015-1-23 13:14 编辑 参考设计:Stellaris® AC 感应电机参考设计套件 型号:RDK-ACIM   AC 感应电机概述 AC 感应电机 (ACIM) 是消费电子类应用和工业应用中最受欢迎的电机。此电机高度可靠,设计简单,其没 ...…

查看全部问答>

【QT 编程】---多功能Web查询系统

前几天做了一个多功能Web查询系统,还不是很完善。功能基本可以全部实现,现在想和大家一起来分享一下!说明一点,本人上传的代码提供“技术支持、免费服务”大家可以去看看代码或者运行一下。。。。还要很多地方需要改进,希望大家多给建议。。。 ...…

查看全部问答>