当前位置: 首页 > news >正文

STM32CubeIDE新建项目过程记录备忘(二) GPIO输出demo:LED闪烁

利用前面创建好的基础模板项目文件,创建第一个应用项目,单片机的hello world:LED闪烁。

  • 打开模板文件

文件--从文件系统中打开项目:

在弹出的窗口中选择之前创建的模板项目文件并打开。

  • 复制粘贴新项目 

  • 在项目管理器,复制之前创建好的模板项目,粘贴为新项目,并重命名新项目。

  • 在项目管理器中对模板文件点右键,点“删除”,把它从项目管理器中删除。

记着别选择删除磁盘上的项目内容, 这样会将其删除。

  • 根据新项目名称,更改文件ioc文件的文件名:

  •  设置GPIO

        我手里的这块野火开发板,它的PA1、PA2、PA3分别接了一个LED,本项目就是使其依次点亮闪烁。

从原理图看出,由于各个LED使用了“上拉”的驱动方式,所以,GPIO输出低电平的时候LED点亮。

下面是设置GPIO的过程。

  • 双击项目中的ioc文件,打开配置界面:

 分别点击PA1、PA2、PA3,将其设置为GPIO_Output

在PA1上右键鼠标,点击Enter User Label,在弹出窗口输入PA1的用户标签(别名):LED_R

 

同样的方法,将PA2和PA3命名为LED_G和LED_B:

打开配置界面的左边:

        我希望刚启动完成初始化后的系统,各个LED处于熄灭状态,所以要将三个GPIO的初始电平设置为高电平输出。       

        使用windows选择文件通用的ctrl和shift键实现点选和片选,将需要设置的三个GPIO管脚全部选定,将GPIO output level批量设置为high,这样他们的初始电平就是高电平。GPIO管脚的其余设置保持默认就好了。默认值为:推挽、低速、无上拉和下拉。

我希望刚启动完成初始化后的系统,各个LED处于熄灭状态,所以要将三个GPIO的初始电平设置为高电平输出。 

  • 设置输出hex文件

默认不生成hex文件,需要在项目属性里设置:右键项目属性

  • 设置调试参数 

 分别点击黄色齿轮和甲壳虫生成代码和调试:


下面进入软件编程阶段。

  • 打开main.c

在main.c的主循环中加入代码:

HAL_GPIO_TogglePin(GPIOA, LED_R_Pin);      /* LED翻转 */
HAL_GPIO_TogglePin(GPIOA, LED_G_Pin);      /* LED翻转 */
HAL_GPIO_TogglePin(GPIOA, LED_B_Pin);      /* LED翻转 */
HAL_Delay(500);   /*延时*/

 保存,黄色齿轮,甲虫。

三个LED开始闪烁。

http://www.lryc.cn/news/605098.html

相关文章:

  • 2025 IT专业人才培养趋势与职业发展指南:技术+数据复合型能力的构建路径
  • 【Kubernetes 指南】基础入门——Kubernetes 201(一)
  • OpenEuler 安装 apache + php8 不解析php文件的处理
  • 微信小程序中实现页面跳转的方法
  • Python奇幻之旅:从零开始的编程冒险
  • cpp-httplib 线程安全
  • mybatis中的极易出现错误用法
  • Chroma安装教程
  • uni-app webview的message监听不生效(uni.postmessage is not a function)
  • 明智运用C++异常规范(Exception Specifications)
  • 监测预警系统:让园区更高效、更安全、更智能
  • [Python] -进阶理解10- 用 Python 实现简易爬虫框架
  • Android Animation Transitions:打造流畅的用户体验
  • 性能优化(一):时间分片(Time Slicing):让你的应用在高负载下“永不卡顿”的秘密
  • vue模块化导入
  • DooTask教育行业功能:开启高效学习协作新篇章
  • 学习嵌入式第十五天
  • 【PostgreSQL内核学习:WindowAgg 帧优化与节点去重】
  • 李宏毅2025《机器学习》-第九讲:大型语言模型评测的困境与“古德哈特定律”**
  • Linux 中,命令查看系统版本和内核信息
  • LNN+XGBoost:优化多层供应链订购:缓解牛鞭效应
  • 力扣209:长度最小的子数组
  • 光谱相机自动调焦曝光控制
  • 基于Rust与HDFS、YARN、Hue、ZooKeeper、MySQL
  • Linux 系统原理深度剖析与技术实践:从内核架构到前沿应用
  • npm run dev 启动项目 报Error: listen EACCES: permission denied 0.0.0.0:80 解决方法
  • Spring boot 打包成docker image 镜像
  • vue create 项目名 和 npm init vue@latest 创建vue项目的不同
  • 3GPP TS 38.331 V18.6.0 (2025-06)中文版
  • CMS框架GetShell