stm32cubeMX使用HAL库点亮LED流水灯

stm32cubeMX使用HAL库点亮LED流水灯

一、HAL库介绍

HAL 库(Hardware Abstraction Layer,硬件抽象层)和标准库(Standard Peripheral Library,标准外设库,又称为 SPL)都是 STM32 微控制器的固件库。它们的主要区别在于结构和抽象级别。

1.HAL 库: HAL 库是 STMicroelectronics(ST)提供的较新的库。它提供了一套统一的 API,用于访问 STM32 系列微控制器的外设。HAL 库的目的是简化固件开发,让开发者更加关注应用层逻辑,而无需深入了解底层硬件。

HAL 库的特点:

跨平台支持:支持 STM32 全系列微控制器。
结构统一:为所有外设提供统一的 API 和驱动结构。
易于使用:简化了许多硬件操作,使得开发者可以快速上手。
与 STM32CubeMX 工具集成:STM32CubeMX 可以自动生成 HAL 库的初始代码,方便开发者配置硬件。

二、STM32CubeMX生成代码点亮LED流水灯

1.Java环境配置

使用快捷键WIN+R打开

在这里插入图片描述

输入java检测是否有配置环境(如图是有环境配置)

在这里插入图片描述

如果没有配置请参考:https://blog.csdn.net/weixin_50455331/article/details/126083021

2.安装STMCubeMX

官网网址:https://www.st.com/en/development-tools/stm32cubemx.html?sc=stm32cubemx

点击下载

在这里插入图片描述

(1)下载之后右键点击以管理员身份安装

在这里插入图片描述

一直Next
在这里插入图片描述

在这里插入图片描述
9501bdd255.png#pic_center)

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

(2)HAL库

打开STMCubeMX

在这里插入图片描述

在这里插入图片描述

(3)创建项目

点击红框

在这里插入图片描述

选择自己对应的芯片

在这里插入图片描述

设置

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

点击相应的引脚设置输出寄存器了,就是output那一项,一共选了三个,是PA4,PB9,PC15:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

(4)keil仿真调试

在这里插入图片描述

在while(1)中输入以下代码

``SystemClock_Config();//系统时钟初始化 MX_GPIO_Init();//gpio初始化 while (1) { HAL_GPIO_WritePin(GPIOA,GPIO_PIN_4,GPIO_PIN_RESET);//PA4亮灯 HAL_GPIO_WritePin(GPIOB,GPIO_PIN_9,GPIO_PIN_SET);//PB9熄灯 HAL_GPIO_WritePin(GPIOC,GPIO_PIN_15,GPIO_PIN_SET);//PC15熄灯 HAL_Delay(1000);//延时1s HAL_GPIO_WritePin(GPIOA,GPIO_PIN_4,GPIO_PIN_SET);//PA4熄灯 HAL_GPIO_WritePin(GPIOB,GPIO_PIN_9,GPIO_PIN_RESET);//PB9亮灯 HAL_GPIO_WritePin(GPIOC,GPIO_PIN_15,GPIO_PIN_SET);//PC15熄灯 HAL_Delay(1000);//延时1s HAL_GPIO_WritePin(GPIOA,GPIO_PIN_4,GPIO_PIN_SET);//PA4熄灯 HAL_GPIO_WritePin(GPIOB,GPIO_PIN_9,GPIO_PIN_SET);//PB9熄灯 HAL_GPIO_WritePin(GPIOC,GPIO_PIN_15,GPIO_PIN_RESET);//PC15亮灯 HAL_Delay(1000);//延时1s }

(5)电路连接

在这里插入图片描述

GND — GND
3v3 — 3v3
TXD — A10
RXD — A9

总电路:
红——B9
绿——C15
黄——A4

结果

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是使用STM32CubeMX点亮LED流水灯的步骤: 1. 打开STM32CubeMX软件,创建一个新的工程。 2. 在"Part Number"中选择STM32F103C8T6。 3. 在"Pinout & Configuration"选项卡中,选择一个可用的GPIO引脚作为LED的控制引脚。例如,选择PC13作为控制引脚。 4. 在"Configuration"选项卡中,将PC13配置为输出模式。 5. 在"Project"选项卡中,选择生成代码的IDE和工程类型。例如,选择MDK-ARM作为IDE,选择STM32Cube HAL作为库。 6. 点击"Project"选项卡下方的"Generate Code"按钮,生成初始化代码工程。 7. 打开生成的工程,在主函数中添加LED流水灯的代码。 以下是一个示例代码,用于点亮LED流水灯: ```c #include "stm32f1xx_hal.h" void SystemClock_Config(void); void GPIO_Init(void); int main(void) { HAL_Init(); SystemClock_Config(); GPIO_Init(); while (1) { HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_13); HAL_Delay(500); } } void SystemClock_Config(void) { RCC_OscInitTypeDef RCC_OscInitStruct; RCC_ClkInitTypeDef RCC_ClkInitStruct; __HAL_RCC_PWR_CLK_ENABLE(); __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1); RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE; RCC_OscInitStruct.HSEState = RCC_HSE_ON; RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE; RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL9; RCC_OscInitStruct.PLL.PREDIV = RCC_PREDIV_DIV1; HAL_RCC_OscConfig(&RCC_OscInitStruct); RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2; RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2; RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2); } void GPIO_Init(void) { GPIO_InitTypeDef GPIO_InitStruct; __HAL_RCC_GPIOC_CLK_ENABLE(); GPIO_InitStruct.Pin = GPIO_PIN_13; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); } ``` 请注意,以上代码仅为示例,具体的代码实现可能会因为使用的库和工具而有所不同。请根据实际情况进行相应的修改和调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值