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

蓝桥杯嵌入式(STM32G431RBT6)入门第一天——点亮LED|CSDN创作打卡

首先创建LED和LED_test两个文件夹,一个用于存放自己编写的工程文件,一个用于存放STM32CubeMX生成的工程。

接着打开 STM32CubeMX点击图中按钮进入到选型界面,可能会有下载更新的弹窗,耐心等待即可。

在搜索框输入stm32g431rb会出现两个选项,选择STM32G431RBTx为我们的目标型号。

进入后先对RCC时钟进行配置,在高速时钟处选择晶体\陶瓷晶振,也就是外部晶振,选择后会看到芯片的两个引脚变成绿色。

接着查看官方提供的CT117E-M4产品手册找到 7.4 LED指示灯

查看原理图,八个LED指示灯由PC8-PC15这八个IO口控制,当IO口输出低电平时LED灯被点亮,输出高电平时LED熄灭。同时需要注意,使用了74HC573锁存器,只有在LE引脚为高电平时右端IO口的电平信号才会被传输到左端送给LED灯,所以在控制LED灯时要记得把LE引脚拉高后再拉低。

下面进入STM32CubeMX开始配置LED的GPIO。依次点击GPIO->PC8->GPIO_Output

即可将PC8作为一个输出IO口。

随后对PC9-PC15以及PD2进行同样的操作

下面开始配置IO口,点击中间的PC8即可对PC8进行配置,将其初始化为高电平,这样上电时LED处于不亮的状态,下面的几个选项分别为推挽输出、没有上拉和下拉、低速(默认即可),依次对PC9-PC15进行同样的设置,最后对PD2(即LE)需要初试化为低电平,这样刚上电时无法对LED的IO口进行控制。

下面开始时钟频率的配置,依照下图顺序即可将时钟频率配置为80MHz

下面进行文件保存的设置,

依次是进行命名LED_test,保存到我们新建的文件夹里面,应用程序结构选择Basic,使用的软件选择MDK-ARM(即keil,版本对照自己的版本进行选择,这里我是v5 )

随后进行代码的设置,②为包含所有的库文件,③为生成独立的.c以及.h文件,最后点击④生成工程文件。

打开工程编译后发现有一个错误,报此错误的原因是没有启动文件,有的时候STM32CubeMX会生成对应的启动文件,有的时候不会生成,不管有没有生成都需要自行进行添加。

如果已经生成了,会在工程目录下面,只需要双击①处将②中文件加入即可。

如果没有生成启动文件则需要找到官方提供液晶驱动例程找到startup_stm32g431xx.s,一般路径是 资源数据包_嵌入式(G431)_2021\5-液晶驱动参考例程\HAL_06_LCD\MDK-ARM\startup_stm32g431xx.s

将其复制到我们刚刚生成的工程文件中,然后用上面的步骤将其添加到工程当中。

返回keil,在main函数中写下如下几行代码即可得到闪烁的LED灯。

int main(void) { /* USER CODE BEGIN 1 */ /* USER CODE END 1 */ /* MCU Configuration--------------------------------------------------------*/ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ HAL_Init(); /* USER CODE BEGIN Init */ /* USER CODE END Init */ /* Configure the system clock */ SystemClock_Config(); /* USER CODE BEGIN SysInit */ /* USER CODE END SysInit */ /* Initialize all configured peripherals */ MX_GPIO_Init(); /* USER CODE BEGIN 2 */ /* USER CODE END 2 */ /* Infinite loop */ /* USER CODE BEGIN WHILE */ while (1) { /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15|GPIO_PIN_8 |GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_11|GPIO_PIN_12,GPIO_PIN_RESET); HAL_GPIO_WritePin(GPIOD, GPIO_PIN_2, GPIO_PIN_SET); HAL_GPIO_WritePin(GPIOD, GPIO_PIN_2, GPIO_PIN_RESET); HAL_Delay(500); HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15|GPIO_PIN_8 |GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_11|GPIO_PIN_12, GPIO_PIN_SET); HAL_GPIO_WritePin(GPIOD, GPIO_PIN_2, GPIO_PIN_SET); HAL_GPIO_WritePin(GPIOD, GPIO_PIN_2, GPIO_PIN_RESET); HAL_Delay(500); } /* USER CODE END 3 */ }

最后我们需要进行下载设置,点击菜单栏的小魔法棒

在Debug中选择CMSIS-DAP Debugger,随后点击Settings

在Falsh Download中将Reset and Run勾选上,这样程序下载进入单片机后会自动复位然后运行。

将程序下载进单片机,得到闪烁的小灯。

http://www.jsqmd.com/news/446808/

相关文章:

  • Web前端之监听元素的重叠度、设置所有元素的滚动条宽度都为0、节点布局的交叉状态、生成随机图片、阮一峰、标签、IntersectionObserver
  • 【解决】Ping 不是内部或外部命令,也不是可运行的程序或批处理文件
  • Python相关问题
  • 算法---LeetCode 剑指 Offer 26. 树的子结构
  • Web前端之上传文件夹、webkitdirectory
  • 通俗易懂解释知识图谱(Knowledge Graph)
  • Web前端之实现酷炫的仪表进度条、JavaScript动态设置Css属性值、标签元素属性选择器、hsl样式函数
  • 优先队列(priority_queue)总结
  • Web前端之实现累计功能、原生与UniApp版微信小程序两种方式实现、计算、累加、getElementById、innerHTML、Number
  • 在 SAP Kyma 上使用 Redis 服务
  • Web前端之鼠标悬浮,鼠标移入和鼠标移出、getElementById、onmouseover、onmouseout、mouseenter、mouseleave、hover
  • 读懂 Cost-Based Optimization:SAP HANA SQL 优化器如何用成本模型选出更快的执行计划
  • 这才是未来的“openclaw”
  • git 命令总结
  • postpresql 表结构修改、添加字段、外键、主键自增逻辑设置
  • 从扫描到索引:SAP HANA 查询处理路径与优化技巧的落地实战
  • 把运行在 Docker 容器内的 Microsoft SQL 服务器部署到 SAP Kyma 中
  • Python—1、基础篇
  • 读懂 SAP HANA 的 Optimized Logical Plan 与 Optimized Physical Plan:把优化器的思路“看见”
  • 在 SAP BTP Kyma Runtime 上使用 Redis 读取和存储数据
  • [从0开始学Java|第十二天]学生管理系统升级 - 详解
  • 服务端之nestJS常用异常类及封装自定义响应模块
  • ROS 摄像头参数标定
  • OBLITERATUS:解锁大模型无限潜力
  • 会穿搭才是真的美,聪明女人必学的搭配技巧,优雅高级又有气质
  • 为macOS Finder提供直观的剪切粘贴体验 - 实践
  • C#委托学习思维导图
  • 一、HTML简介与开发环境
  • 技术架构解析:如何构建高并发、合规的本地生活多平台抽佣系统
  • 小程序商城平台哪家强?做商城小程序选哪个制作平台? - 码云数智