历史上的今天
返回首页

历史上的今天

今天是:2024年10月13日(星期日)

正在发生

2018年10月13日 | STM32CubeMX系列教程

2018-10-13 来源:eefocus

STM32Cube 是一个全面的软件平台,包括了ST产品的每个系列。平台包括了STM32Cube 硬件抽象层(一个STM32抽象层嵌入式软件,确保在STM32系列最大化的便携性)和一套的中间件组件(RTOS, USB, FatFs, TCP/IP,  Graphics, 等等).

  • 直观的STM32微控制器的选择和时钟树配置

  • 微控制器图形化配置外围设备和中间件的功能模式和初始化参数

  • C代码生成项目覆盖STM32微控制器的初始化符合IAR™,Keil的™和GCC编译器。

对于新的产品设计,我们强烈推荐使用STM32Cube来加速你的开发过程,并为以后的产品平台移植打下良好的基础。

1.新建工程
打开STM32cubeMX软件,点击New Project。选择对应开板MCU(STM32F103ZET6)。

STM32CubeMX系列教程

选择工程后进入工程界面,如下图所示。

STM32CubeMX系列教程

2.  配置外设。

RCC设置,选择HSE(外部高速时钟)为Crystal/Ceramic Resonator(晶振/陶瓷谐振器)

STM32CubeMX系列教程

GPIO口功能选择,PF6,PF7,PF8,PF9为LED1-LED4.找到对应管脚设置为GPIO_Output模式。(黄色引脚为该功能的GPIO已被用作其他功能,可以忽略。绿色表示管脚已使用)

3. 时钟配置

        时钟配置采用图形配置,直观简单。各个外设时钟一目了然。STM32最高时钟为72M,此处只有在HCLK处输入72,软件即可自动配置。(RCC选择外部高速时钟)。

STM32CubeMX系列教程

4.功能外设配置

STM32CubeMX系列教程

在配置框我们可以看到有几个区域,分别对应的功能设置如下

  • Multimedia(多媒体):音频视频、LCD

  • Control(控制):定时器

  • Analog(模拟):DAC、ADC

  • Connectivity(通讯连接):串口、SPI 、I2C、USB、ETH

  • SYStem(系统):DMA(直接存储器存取)、GPIO、NVIC、RCC、看门狗

  • middlewares(中间件): FreeRTOS、FATFS、LwIP、USB

此工程中DMA没用的不用配置,NVIC(嵌套中断向量控制器(Nested Vectored Interrupt Controller))配置中断优先级。RCC不用配置。

STM32CubeMX系列教程

  • GPIO Pin Level (管脚状态):低电平

  • GPIO mode (管脚模式 ):推挽输出

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

  • User Label (用户标签):LED1

更改用户标签,管脚配置图会显示管脚的标签。

 

STM32CubeMX系列教程

4.  功耗计算

这个根据配置的外设计算功耗,不用理会。

STM32CubeMX系列教程

5. 生成工程报告

点击Project –>Generate Reports或者点击快捷图标生成报告。系统会提示先创建一个工程项目。点击Yes设置工程。

STM32CubeMX系列教程

输入工程名,选择工程路径(注意不要出现中文,否则可能出错)。工具链/IDE选择MDK-ARM V5。最后面可以设置堆栈大小,此处默认不作修改。

STM32CubeMX系列教程

在Code Generator中找到Generated files框,勾选Generated periphera initialization as a pair of '.c/.h' files per IP。外设初始化为独立的C文件和头文件。

STM32CubeMX系列教程


点击生成报告,工程目录下会生成txt文件和pdf文件,里面记录了我们刚才的设置。

6.   生成工程代码

点击Project –>Generate Code或者点击快捷图标生成工程代码。

STM32CubeMX系列教程

点击Open Project打开工程。到此就配置好工程外设初始化。

STM32CubeMX系列教程

点击Build按钮,Build Optput信息框会输出没有错误没有警告。

6.   添加应用程序

在gpio.c文件中可以看到LED管脚的初始化函数。

STM32CubeMX系列教程

在stm32f1xx_hal_gpio.h头文件中可以看到GPIO的操作函数。

STM32CubeMX系列教程

在main函数中的while循环中添加LED流水灯效果的应用程序。

STM32CubeMX系列教程

重新编译程序,点击下载到Open103Z-C开发板。如果提示错误,可以点击图标对Option for Target 的Dubug选项进行修改。(图上选的是ST-LINK)

STM32CubeMX系列教程

点击Settings->Flash Download勾选 Reset and Run选项。这样程序下载后自动启动运行,不用再按一下复位或者重新上电才能运行。STM32CubeMX系列教程

程序下载到Open103Z-C开发板。可以看到LED1~LED4依次被点亮,实现流水灯的效果。


总结:STM32Cube提供了固件库,用户可直接调用固件库函数来开发,并且可以很好的实现STM32-MCU全系列的代码一致性。同时STM32CubeMX工具提供的可视化引脚、外设、时钟等配置功能,可以帮助快速完成工程的建立、初始化。大大降低了开发者的工作量。

    后续我们会结合微雪Open746I-C开发板,通过STM32cubeMX系列教程讲解如何学习STM32F7系列的片上外设。通过STM32F7系列的学习,可以让各位更快的掌握其他系列的使用方法。


推荐阅读

史海拾趣

Continental公司的发展小趣事

随着汽车工业的发展,大陆集团开始将业务扩展到汽车轮胎领域。1901年,马牌轮胎首次与德国戴姆勒·奔驰汽车公司合作参加汽车竞赛,这标志着大陆集团正式进入汽车轮胎市场。仅仅三年后,大陆集团就生产出了全世界第一条带花纹的汽车轮胎,这一创新大大提高了轮胎的抓地力和安全性。1908年,大陆集团又生产出了全世界第一个可拆装的车轮,使车轮和车轴分开,由此大大节省了换轮胎的时间。这些技术创新使得大陆集团在汽车轮胎市场上占据了重要地位。

E-T-A Circuit Breakers公司的发展小趣事

在1980年代,E-T-A公司开始研发故障电流保护开关。这种设备能够检测和中断电气系统中的故障电流,有效防止电气设备的过载和短路。经过多年的技术积累和创新,E-T-A公司成功推出了具有高性能和可靠性的故障电流保护开关,并广泛应用于工业控制系统、建筑电气系统和住宅电气系统等领域。

Desco Tools公司的发展小趣事

随着技术的不断进步,Desco Tools公司不断进行技术创新和产品升级。公司投入大量研发资源,开发出了更加高效、可靠的防静电工具,如新型防静电工作服、无尘室专用工具等。这些产品不仅满足了市场对防静电工具日益增长的需求,还进一步巩固了公司在该领域的领先地位。

创基(CBI)公司的发展小趣事

面对日益激烈的国际竞争,CBI公司积极实施全球化战略,通过海外投资、并购等方式,不断扩大市场份额。同时,公司还注重本土化运营,根据不同地区的市场需求和消费者习惯,提供定制化的产品和服务。这一策略使CBI在全球范围内建立了完善的销售网络和售后服务体系,进一步巩固了市场地位。

Festo公司的发展小趣事

Festo公司成立于1925年,由Albert Fezer和Gottlieb Stoll两位创始人共同创立。最初,公司专注于木工机械和木工工具的生产,其品牌Festool在行业内享有盛誉。凭借对工艺的精湛掌握和对品质的严格把控,Festo迅速在木工机械领域崭露头角,为公司的后续发展奠定了坚实的基础。

天钰(FITIPOWER)公司的发展小趣事

作为一家以创新驱动的公司,Festo始终将创新作为公司发展的核心动力。近年来,Festo在研发领域的投资不断增加,推出了一系列具有颠覆性的新产品和解决方案。同时,Festo还积极响应全球可持续发展的趋势,致力于减少碳排放和提高能源效率。通过引入先进的能效措施和扩大光伏(PV)的使用,Festo成功实现了碳中和的目标,为电子行业的可持续发展做出了积极的贡献。

问答坊 | AI 解惑

超级火腿——确实是牛人,看看人家的工作地盘

全自己动手,他的博客:http://lea.hamradio.si/~s53mv/index.html 1MHz-2.5GHz reflectometer bridge 500MHz 10W dummy-load wattmeter ATC-transponder radar & DME-beacon simulator Low-power ATC-transponder for TCAS testing Exp ...…

查看全部问答>

关于 Tms320c5505 usb

请问一下, 我想把dsp采集到的数据通过usb传到电脑上, 大概有哪些步骤,我听说要在电脑上做文件系统的函数, 还要编写电脑驱动, 但是本人对这些东西完全没有一个整体的概念, 能人们请帮忙啊, 能不能介绍一下大概流程,然后当中需要软件的可不可 ...…

查看全部问答>

数控直流稳压电源完整论文

数控直流稳压电源完整论文…

查看全部问答>

嵌入式linux控制步进电机的转速

实验平台是华恒科技的ARM9-EDU实验箱,需要实现当箱上的小键盘输入1到5五个数字时,电机有五种不同的转速,并利用箱上的一个数码管显示输入的键值,同时利用箱上的16针扩展口接一个包含有5个LED的电路板,当小键盘输入1到5五个数字时,LED分别亮1到 ...…

查看全部问答>

如何 提高cross compile改错能力(哪里有相关资料可以看)求

如何 提高cross compile改错能力(哪里有相关资料可以看)求 小弟学习 这方面知识,发现有很多错误 不知道如何修改 有些错误,改了但缺不知道为什么,现在很困惑 请高手,有经验的前辈 指点下!谢谢…

查看全部问答>

急问:NMOS做开关,源极可否下拉电阻接地,导通时电压可以达到VDD=48V么

如题,我想要用NMOS做快速开关,源极下拉电阻接地,漏极接VDD=+48V,导通时将源极电压拉至+48V,不知道可不可以实现 如果可以的话,下拉电阻大概应该是多少,多谢多谢…

查看全部问答>

Visual Studio 2005 + pocket access 程序开发给些意见

Visual Studio 2005 + pocket access 程序开发给些意见 本人PDA   pocket PC 2003  + windows CE  5.0…

查看全部问答>

渥瑞达“3G移动开发”免费试听课于北京交通大学举行,欢迎大家光临!

渥瑞达“3G移动开发”免费试听课于北京交通大学举行,欢迎大家光临! 渥瑞达“3G移动开发”免费试听课于北京交通大学举行,欢迎大家光临! 详情请参见 www.neworigin.net 同时欢迎大家与我们的609期学员交流!这期学员已与2月11日毕业 ...…

查看全部问答>

发个IMX23的使用说明书

     发个IMX23的使用说明书。…

查看全部问答>

可靠性最好的LED驱动方法

LED本身的负载特性大大影响了用开关电源驱动它的可靠性。LED的负载特性,即伏安特性,属二极管特性。在一定区间内,LED两端电压的升高,使其电流的增长呈指数式,爆炸型的增长。故很多用开关电源驱动的LED的灯具,表现出很多不稳定特性。原因就是, ...…

查看全部问答>