历史上的今天
返回首页

历史上的今天

今天是:2024年09月19日(星期四)

正在发生

2018年09月19日 | STM32CubeMX教程之简介及基本使用

2018-09-19 来源:eefocus

STM32CubeMX是意法半导体推出的图形化配置工具,通过傻瓜化的操作便能实现相关配置,最终能够生成C语言代码,支持多种工具链,比如MDK、IAR For ARM、TrueStudio等。尤其值得一提的是,TrueStudio已经被ST收购,提供完全免费的版本,并且,通过插件式安装,可以将STM32CubeMX集成在一个IDE,使用十分方便。如下图:


图1 TrueStudio中的STM32CubeMX

接下来将分步骤介绍使用STM32CubmeMX及MDK、STM32CubmeMX及TrueStudio进行STM32程序设计。

一、新建工程(方式1 使用ST官方的开发板)

打开STM32CubmeMX,在主界面选择New Project,在弹出来的对话框中可以选择基于芯片创建工程还是基于特定开发板创建工程,如图2。


图2  芯片或者开发板选择

此处,我们选择Board Selector,并进一步选择我使用的开发板NUCLEO-F401RE,选中后如图3所示。


图3 开发板或者芯片选择

双击该开发板选项,会提示是否采用默认模式初始化所有外设,我选择YES,结果如图4所示。



图中可见,已经完成了初步的配置,并且用不同的颜色进行标识。在左边树状图中,如果该外设能够正常使用,则为绿色,比如本例中的USART2,如果是部分冲突,则会以黄色警告图标的方式进行提醒,比如,此处的ADC1。将鼠标移至黄色叹号处,可以看到图5所示文字。告诉开发人员,ADC1与PA5以及USART2的当前配置冲突了,因为我们现在将PA5配置为输出、USART2配置为异步串行通信了。点开ADC1前面的加号,则能更清晰看到具体冲突的ADC通道,如图6所示。

图5  ADC1警告

图6 ADC1具体冲突的地方

同样的,我们将鼠标光标放在上,可以看到,图7所示提示。告诉我们I2C2不可用,因为PB3脚已经映射为SYS_JTDO-SWO。


图7 冲突导致某功能不能使用

由于本例使用了默认配置进行初始化,我们需要做的工作就少了许多,在下一章节中将介绍更接近于实际应用的工程创建方式。

二、项目设置

与很多软件一样,STM32CubeMX也可以进行工程的设置,通过菜单Project->Settings便可进入图8所示工程设置对话框。


图8 Project Settings

点击Code Generator,进行进一步配置,如图9所示。





图9 代码生成设置

如果后续不需要新增其他外设,建议Copy necessary,如果后续需要新增其他外设又可能不再用STM32CubeMX,建议Copy all,如果不太会复制到其他地方或者大家的库都放在同一个路径,可以选用Reference,比较节约硬盘空间。

三、修改代码

所有自己编写的代码请放在/* USER CODE BEGIN XXX */   /* USER CODE END XXX */之间,比如我们需要新增加的头文件,放在/* USER CODE BEGIN Includes */  /* USER CODE END Includes */之间,需要增加的全局变量放在/* USER CODE BEGIN PV */ /* USER CODE END PV */之间等。


图10 自己编写代码的区域

本例实现LED灯LD2以1Hz频率连续闪烁,在while(1)中增加如下代码即可。

/* USER CODE BEGIN WHILE */

  while (1)

  {

 

  /* USER CODE END WHILE */

 

  /* USER CODE BEGIN 3 */

     HAL_GPIO_TogglePin(LD2_GPIO_Port,LD2_Pin);

     HAL_Delay(500);

  }

  /* USER CODE END 3 */


四、配置下载工具

在工程文件右键,进行相关配置,如图11所示。


图11 仿真工具配置

一切OK,编译,下载,便可验收成果了,祝君顺利!欢迎交流


推荐阅读

史海拾趣

Fenghua (HK) Electronics Ltd公司的发展小趣事

人才是企业发展的重要保障。Fenghua (HK) Electronics Ltd高度重视人才队伍建设,通过校园招聘、社会招聘等多种渠道吸引优秀人才加入公司。公司提供了完善的培训体系和晋升机会,激发了员工的积极性和创造力。同时,公司注重营造良好的企业文化氛围,让员工在工作中感受到归属感和成就感。

Deutron Electronics Corp公司的发展小趣事

随着环保意识的日益提高,Deutron Electronics Corp也积极响应环保号召,致力于实现绿色生产和可持续发展。公司采用环保材料和生产工艺,减少了对环境的污染。同时,公司还加大了对节能减排的投入,提高了资源利用效率。这些努力使得Deutron Electronics Corp在行业内树立了良好的环保形象,也为公司的长期发展奠定了坚实基础。

ATM [Advanced Technical Materials]公司的发展小趣事

然而,随着ATM的普及,安全问题也日益凸显。黑客攻击、恶意软件植入等事件时有发生,给ATM的安全运营带来了挑战。为了应对这些挑战,ATM行业加强了技术研发和安全防护,采用更加先进的加密技术和安全机制,确保用户的资金安全。

以上五个故事虽然不直接涉及ATM公司的具体发展,但展示了ATM技术在电子行业中的发展历程和重要事件。这些故事反映了ATM从诞生到广泛应用,再到技术创新和安全挑战的整个过程,也展示了电子行业在推动ATM发展中的重要作用。

Graseby Infrared公司的发展小趣事
在进行任何维修或检查前,必须先切断电源,确保电路处于安全状态。
Heidenhain Corp公司的发展小趣事

面对电子行业日益增长的自动化需求,海德汉公司凭借其丰富的自动化解决方案,助力多家电子企业实现了生产线的智能化升级。某大型电子制造厂采用海德汉的自动化控制系统和光栅尺技术,对生产线进行了全面改造。改造后的生产线实现了从原材料上料到成品下线的全自动化作业,大大提高了生产效率和产品质量稳定性。同时,通过集成海德汉的MES系统,实现了生产数据的实时监控和追溯,为企业的精细化管理提供了有力支持。

Bytes公司的发展小趣事

Bytes公司在追求经济效益的同时,也积极履行社会责任。公司注重环保和可持续发展,采用环保材料和工艺,降低产品对环境的影响。同时,公司还积极参与公益事业,捐赠资金和物资支持教育、扶贫等事业。这些举措使得Bytes公司赢得了社会的广泛认可和尊重。

请注意,这些故事框架仅供参考,您可以根据具体公司的实际情况和发展历程进行调整和补充。同时,由于我无法获取实时数据和信息,因此建议您在编写具体故事时参考相关公司的官方资料和市场分析报告。

问答坊 | AI 解惑

matlab珍藏实例大分享

分享几个大学期间的matlab实例分享,大家有兴趣学matlab的可以拿来参考,较多的用到GUI界面设计~~~ MATLAB界面制作总结1. 7以上版本的matlab,控件pushbutton背景颜色修改以后并没有什么明显效果,只是按钮的边缘显示为所设置的背景颜色。  ...…

查看全部问答>

请教CE如何读取nandflash容量

    最近遇到一个问题,不知道如何读取系统所在nandflash的容量。目前我们系统ms不知道自己flash有多大,不停的copy文件进去就会把nk.bin所在的区域冲掉,然后系统就挂掉了。不知道有么有大哥遇到过?…

查看全部问答>

现在从网络接收H.264视频流,然后在WinCE上边解码边播放,请给个思路呀!

现在从网络接收H.264视频流,然后在WinCE上边解码边播放,请给个思路呀!…

查看全部问答>

送分了进者有份啊

现有项目 个人 团队皆可合作 最好在广州或者深圳 有意邮件yqb_box@163.com 或者QQ:437395559 在PDA上做应用软件开发 PDA支持读卡器 条码扫描 CDMA GSM 网络 GPS 打印机等 应用相对简单 在PDA上能录入数据 检索服务器上的相关信息 驱动设备 设备 ...…

查看全部问答>

抗干扰复位电路

此图是单片机抗干扰电路 请问它都抗了哪些方面的干扰,原理是什么…

查看全部问答>

有人要热敏打印机驱动不,可以联系xgx_a1@163.com

有人要热敏打印机驱动不,可以联系xgx_a1@163.com…

查看全部问答>

现在对430的时钟有点迷糊,希望高人指点?

ACLK,MCLK,SMCLK三个什么意思理解,可是有什么具体的关系,求指点?…

查看全部问答>

c1602在usb仿真器调试下不亮

我用的是f149的板子,在上面驱动1602,程序都对,就是使用usb仿真器时lcd不亮,用那种usb线直接供电的时候它倒是亮,不知道什么原因。求大侠指教啊…

查看全部问答>

刚画了个简单的51仿PLC电路,各位大大们帮看一下哈!

我是新手,刚画了个简单的51仿PLC电路,想做个板子试试,但不知有没有什么问题,所以请大家帮指点一下。…

查看全部问答>