stm32cubeMX使用HAL库点亮LED流水灯

本文详细介绍了如何使用STM32CubeMX安装HAL库,并结合Keil新建项目,通过配置GPIO端口,实现LED流水灯效果。通过设置系统时钟、选择晶振以及配置调试界面,观察到GPIO端口的正确输出波形,验证了程序的正确性。STM32CubeMX简化了点灯流程,提高了开发效率。
摘要由CSDN通过智能技术生成

一、安装STM32CubeMX

(1)管理员身份运行安装程序,点击next:
在这里插入图片描述
(2)点击"I accept the terms of this license agreement",接着选择Next:
在这里插入图片描述
直接点NEXT,其他不用设置 之后开始安装:
在这里插入图片描述
安装完成,点Done退出:

在这里插入图片描述

二、安装HAL库

STM32 HAL固件库是Hardware Abstraction Layer的缩写,中文名称是:硬件抽象层。HAL库是ST公司为STM32的MCU最新推出的抽象层嵌入式软件,为更方便的实现跨STM32产品的最大可移植性。HAL库的推出,可以说ST也慢慢的抛弃了原来的标准固件库,这也使得很多老用户不满。但是HAL库推出的同时,也加入了很多第三方的中间件,有RTOS,USB,TCP / IP和图形等等。
和标准库对比起来,STM32的HAL库更加的抽象,ST最终的目的是要实现在STM32系列MCU之间无缝移植,甚至在其他MCU也能实现快速移植。
并且从16年开始,ST公司就逐渐停止了对标准固件库的更新,转而倾向于HAL固件库和 Low-layer底层库的更新,停止标准库更新,也就表示了以后使用STM32CubeMX配置HAL/LL库是主流配置环境;
(1)打开安装好的STMCubeMX

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用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); } ``` 请注意,以上代码仅为示例,具体的代码实现可能会因为使用的库和工具而有所不同。请根据实际情况进行相应的修改和调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值