历史上的今天
返回首页

历史上的今天

今天是:2025年07月18日(星期五)

正在发生

2019年07月18日 | STM32CubeMX代码生成和点亮LED

2019-07-18 来源:eefocus

所需工具STM32CubeMX和Keil5


1、先打开STM32CubeMX软件,点击New Project新建工程;


2.在搜索框中搜索你的项目芯片;



3、搜索出来有两个不同封装的芯片,写程序没区别,但是这个软件可以生成IO说明文档,可能会导致文档与实际封装差异。选择确定后双击~;

4、创建完工程,简单介绍一下功能;


5、先配置时钟树,我使用的F429最大支持180M时钟,我配置为最大时钟。



6、我的板子LED是接在PA11上的,在搜索栏上搜索PA11,芯片PA11会一闪一闪的。


7、点击PA11引脚,会出现下面画面,我们选择GPIO_Output

8、当PA11选择作为输出时,外设USB功能会无法使用,软件会通过红色的叉号提示引脚冲突;


9.点击Configuration>>GPIO,进行详细的外设配置。


10.详细参数配置,如下图,完成后点击OK.


11.工程设置,填好工程名、工程路径;最重要的是选择编程工具,如果忘了选可以点击project>>settings重新选择。



12.打开工程,根据你在工程设置中选择的编程工具打开。


13.图片第三点是十分重要,很多新手没注意,以为可以在工程里面随便找个空白的地方就可以写自己的代码,当通过STM32CubeMX重新生成代码的时候,就发现自己辛辛苦苦写的代码没有了,找不回来了,一瞬间回到解放前欲哭无泪(我何尝不是这样过来的,哎...~!)。通过STM32CubeMX生成的模板代码必需按照模板的规范写,打开工程你就看到有很多的地方写着 


/* USER CODE BEGIN 2 */



添加自定义代码


 


  /* USER CODE END 2 */


所有的自定义代码一定要放在这中间。避免代码重生成删除,代码添加在BEGIN和END间就好了。


没吃过这种亏的同学可以自己做一下测试,毕竟我说的再多不如自己随便在BEGIN和END外写点代码试试效果。(hahaha...)

14.在main函数的while中添加如下代码:


  /* Infinite loop */

  /* USER CODE BEGIN WHILE */

  while (1)

  {

  /* USER CODE END WHILE */

 

  /* USER CODE BEGIN 3 */

  HAL_GPIO_TogglePin(LED_GPIO_Port, LED_Pin); //LED取反

  HAL_Delay(1000); //延时1秒

  }

  /* USER CODE END 3 */

 


15.请测试,把代码写在BEGIN和END外,如下:


  /* Infinite loop */

  /* USER CODE BEGIN WHILE */

  while (1)

  {

  /* USER CODE END WHILE */

  HAL_GPIO_TogglePin(LED_GPIO_Port, LED_Pin); //LED取反

  HAL_Delay(1000); //延时1秒

  /* USER CODE BEGIN 3 */

 

  }

  /* USER CODE END 3 */

然后关闭KEIL5;打开STM32CubeMX点击完毕后open project;最后看看while内的代码变化(手动滑稽);



16.赶着下班差点忘了,每次做完一个项目写文档都是一个十分痛苦的过程,可意会不可言传。这个软件可以生成一下我们使用外设的相关信息文档适当减轻我们的压力,嘻嘻...(我也是一个热爱写文档的三好程序员)。


推荐阅读

史海拾趣

芯力微(CHI Power)公司的发展小趣事

随着公司业务的不断拓展,芯力微逐渐将目光投向国际市场。公司积极参与国际交流与合作,与国际知名企业建立了良好的合作关系。通过引进国际先进技术和管理经验,芯力微不断提升自身的核心竞争力。同时,公司还积极参加国际展会和论坛等活动,展示自身实力和产品优势,为国际化战略的实施奠定了坚实的基础。

General Industrial Controls ( GIC )公司的发展小趣事
固定输出版本包括3.3V、5V、12V,可调版本可以输出小于37V的各种电压。
Hamamatsu公司的发展小趣事
电感器的额定电流应大于电路中的最大电流值以确保其不会过热或损坏。对于LM2596电路来说,由于能够输出最大3A的驱动电流,因此所选电感器的额定电流应至少为3A的1.2倍以上以确保安全。
Eastman Kodak Company公司的发展小趣事

伊士曼柯达公司由发明家乔治·伊士曼于1880年创立,最初名为伊斯曼干版公司。伊士曼的初衷是提供一种更便捷、更经济的摄影方式,以满足大众对摄影的日益增长的需求。他通过不断的研发和创新,成功推出了易于使用的胶卷和相机,使摄影技术得以普及。这一创新不仅改变了摄影行业的格局,也为伊士曼柯达公司的后续发展奠定了坚实的基础。

Aleph America Corporation公司的发展小趣事

伊士曼柯达公司由发明家乔治·伊士曼于1880年创立,最初名为伊斯曼干版公司。伊士曼的初衷是提供一种更便捷、更经济的摄影方式,以满足大众对摄影的日益增长的需求。他通过不断的研发和创新,成功推出了易于使用的胶卷和相机,使摄影技术得以普及。这一创新不仅改变了摄影行业的格局,也为伊士曼柯达公司的后续发展奠定了坚实的基础。

General Semiconductor ( Vishay )公司的发展小趣事

1997年,Vishay正式进入分立半导体领域,收购了Lite-On Power Semiconductor公司65%的股份。这一举措标志着Vishay在半导体技术上的重大突破。随后,在1998年,Vishay又收购了TEMIC的半导体业务部分,包括特洛芬肯(Telefunken)和硅尼克斯(Siliconix)两家公司的大部分股份。这些收购为Vishay带来了先进的晶体管、二极管、光电子装置等半导体技术,进一步巩固了其在半导体领域的地位。

问答坊 | AI 解惑

【求助】USBASP制作中遇到的问题

我用的资料是从这下载的:https://bbs.eeworld.com.cn/thread-73210-1-8.html 板子上元件排布基本上也是参照照片上的,只是想在使用时,实验板的电源就用USB的VCC,所以去掉了J2。 烧固件时,用编程器烧的,USBASP板子连接电脑后,绿灯闪烁了三下 ...…

查看全部问答>

CPLD最实用的50例设计

详细说明:CPLD实用设计50例,非常经典的CPLD设计,包含50个实际的典型应用,涉及直流电机PWM驱动,编码等内容,有了这50例,举一反三,就会了很多应用 文件列表:   CPLD实用设计50例   ................\\基于DSP+CPLD的 ...…

查看全部问答>

5.0模拟器下有没有编辑注册表的软件

如题 类似WINXP下regedit的功能。 我现在编写程序写注册表好像都对,但是读的时候有时返回错误 GetLastError为1814。 我想找个软件看看我写进去的东西对不对。 另外,我把一个键保存在HKLM下 \\\\Drivers\\\\BuiltIn\\\\XXXX目录下, 那么 ...…

查看全部问答>

请教关于CE数据库同步的问题

各位神人好:     我想知道CE 数据库能否自动的将CE数据库中保存的数据插入更新到SQL Server中,并且不影响SQL Server数据库中之前保存的数据。               谢谢啦~我一定给分!…

查看全部问答>

刚开始学51,上传俩个刚做的仿真

看了单片机视频,现在上传自己用proteus做的仿真带程序,一个是流水灯,一个是数码管!希望能给提点意见。…

查看全部问答>

用STM32做音频项目,三种方案

现在用STM32做一个语音到站钟的项目,音质要求不高,就是报“一楼到了,上行”,“二楼是酒店”之类的语音,CPU上资源有PWM/DAC/IIS,通过上网查资料,网上解决的方案大体有以下三种: 1 PWM+SPI PWM模拟时钟时序,SPI传输数据,采用PCM编码 ...…

查看全部问答>

4X4的矩阵键盘

我用的是51学习板  ,这个板子P2口直接 4X4的键盘,  P1口控制数码管位选,P0口是段选。下面的数码管显示函数单独运行没有问题,直接给(0-99)的数就会直接显示。。。     我的思路就是把 4x4按下的相应代码 ...…

查看全部问答>

周计划提交

这是我写的,这是按照我的理解写的,不是很专业,我没有专业的设备,嘿嘿,示波器没有,没法测量各种波形了…

查看全部问答>

求毕设MSP430对温湿度采集程序

MSP430对温湿度采集程序,DTH11传感器,LCD1602显示屏,232串口…

查看全部问答>