【stm32学习笔记】Keil5+stm32cubemx安装使用教程(准备步骤)

本文详细介绍了STM32开发的基础步骤,包括Keil5的安装、注册及包的获取,以及STM32CubeMX的安装和配置。Keil5是一款集成开发环境,用于编写代码并支持编译和烧录。STM32CubeMX则是ST公司提供的配置软件,简化了参数设置。文中还提供了相关软件和安装包的下载链接,为STM32初学者提供了一条清晰的学习路径。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本片文章将主要介绍keil5和cube的安装以及使用流程,所有百度网盘密码均为fire
共享文件均只为学习使用,请在下载后24小时内删除,严禁商用使用共享文件产生的一切后果与作者无关


(一)keil5+mdk

(1)keil是什么?

通俗的来说keil就是用来写代码的,不管是写什么代码肯定都需要一个IDE

比如说理工专业的基础课一般都会有C语言或者python等课程,可能用过Code::Blocks,Eclipse,Visual Studio等软件,keil与他们类似,只是它同时集成了编译、烧录等一系列功能,同时具有一些自己特有的标识符。

(2)keil5的安装

2.1 安装包

keil uVision5的安装包:
官方链接
官方链接其实下载速度对于非校园网等限制速度的环境并不慢并且保证是最新正版

非官方网盘链接
提取码:fire

2.2 安装步骤

1.点开安装包后点击next
在这里插入图片描述
2.勾选agree后点击next
在这里插入图片描述
3.点击browse更改目录
在这里插入图片描述
4.随便写写东西上去,否则不能next,写好后点击next进行安装
在这里插入图片描述
5.安装后会弹出一个是否安装,点击是
在这里插入图片描述
在这里插入图片描述
6.完成安装
如果不希望后续接到消息取消这个勾选,否则后续可能会收到更新通知等
在这里插入图片描述
在这里插入图片描述

2.3 获取package并安装

安装好keil5之后并不能直接使用,因为keil是一个通用性的IDE,需要让keil知道你使用的是什么芯片,所以需要安装对应的包。
首次双击点开keil后会弹出这个画面,这个是安装包的获取画面,这里有所有的安装包,但是由于获取速度很慢,一般不适用它进行获取安装包
在这里插入图片描述

所有的包都是可以去官网下载的,附上我常用的F1和F4的安装包
F1xx+F4xxx安装包链接
F1xx安装包链接
F4xx安装包链接
提取码:fire
这里以F1xx的安装包为例进行展示过程
安装过程十分简单,只需要双击打开安装包后会自动安装
在这里插入图片描述
由于我们在上一步进行过设置,所以他会自动安装到我们设置的目录当中
在这里插入图片描述
单击next就可以完成安装了
在这里插入图片描述
在这里插入图片描述

(3)Keil5的注册

在上述步骤中我们完成了keil5的安装以及使用准备,但是免费版的keil只提供一定大小以内的工程编写,对于大型工程便不能使用,我们通常需要注册便我们学习stm32。

下载好软件后我们以管理员身份点开keil,File–>License Management
在这里插入图片描述
复制CID号
在这里插入图片描述
管理员身份打开注册软件,将我们的CID输入进去,选择ARM点击Generate后复制生成的字母串

在这里插入图片描述

将字母串粘贴回我们的keil的New License ID Code,并点击Add LIC,在列表中出现信息就是成功了
在这里插入图片描述


(二)stm32cubemx+java(下文简称cube)

(1)cube 是什么?

cube时ST公司为开发者开发的一套快速配置软件,以往我们需要手动设置的许多参数,都可以用cube进行配置,极大方便我们开始一个项目的配置。

(2)cube的安装

2.1 Java的安装

由于cube依托于Java,我们必须先进行Java(不一定需要最新)的安装
同样可以前往官方进行下载,这里给出Java8u301版本的安装包提取码:fire
点开安装软件后可以选择更改目录(不是必须,小硬盘用户友好)
在这里插入图片描述
点击更改后进行下一步即可自动安装
在这里插入图片描述
注意安装完成后Java会自动提示你更新,点击链接了解如何取消
在这里插入图片描述

2.2 cube安装

Java安装完成后我们便可以进行cube的安装了

官网链接
百度网盘cube安装包6.3.0链接
提取码:fire
双击cube安装软件,会有一个解压的过程,耐心等待一下,一步步来就行
在这里插入图片描述
在这里插入图片描述
只需勾选第一个,第二个看自己心情
在这里插入图片描述
可以点击Browse更改安装地址
在这里插入图片描述
如果更改了地址,它会弹出一个警告,可以自行翻译,按YES就行
在这里插入图片描述
这里非专业需求什么都不用改,会进行安装
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.3 cube配置

cube安装好之后同样时不能直接使用的,它与keil一样属于stm32通用软件,需要安装相应的文件包才能对你的芯片进行配置

双击点开cube,它会弹出一个弹窗,可以自行翻译,我选择拒绝它的美好服务
在这里插入图片描述
点击Help->Manage embedded software packages
可能会打不开,显示xxx正在使用,稍等几分钟就🆗
在这里插入图片描述
点开后是这个页面,根据自己的芯片选择最新的包,这里以F1进行距离,勾选后点击install便可自动下载安装(也可根据已有包进行安装)
在这里插入图片描述
在这里插入图片描述
稍等片刻它会自动下载完成,随后安装包左边框就会变成绿色
在这里插入图片描述
在这里插入图片描述
至此完成了进行stm32开发的初步准备工作,下一个笔记会以F407点亮流水灯展示完整的开发流程(含如何使用cube进行配置,GPIO知识等),大家喜欢的话点个赞收藏关注三联一下吧~
后续链接如果失效可以留言或者私信,亦可发邮件至huomuW@163.com

STM32CubeMax是一个基于STMicroelectronics STM32微控制器的软件开发套件,它提供了一系列库文件和驱动程序,方便用户快速上手STM32的硬件操作。Keil5则是STM32的官方集成开发环境(IDE)。 要通过PWM控制LED实现1s和3s的呼吸灯效果,并通过按键切换周期,首先你需要做的是设置GPIO作为输入用于接收按键信号,另一组GPIO作为PWM输出连接到LED。这里是一段简单的示例代码: ```c #include "stm32f4xx.h" #include "stm32f4xx_gpio.h" #include "stm32f4xx_tim.h" // 定义定时器、GPIO和按键相关的宏 #define LED_PIN GPIO_Pin_0 #define KEY_PIN GPIO_Pin_1 #define KEY_GPIO_PORT GPIOB #define PWM_TIM TIM2 #define PWM_CHANNEL TIM_CHANNEL_1 // 定义PWM的频率和占空比范围 #define PWM_FREQ_HZ 1000 // 1kHz #define MIN_DUTY_CYCLE 5 // % (最小5%) #define MAX_DUTY_CYCLE 95 // % (最大95%) void setup_PWM(uint32_t period_ms) { RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE); // 启动TIM2时钟 TIM_TimeBaseInitTypeDef timerConfig; timerConfig.TIM_Prescaler = (CPU_CLOCK_HZ / 1000) - 1; // 计算周期计数器分频 timerConfig.TIM_CounterMode = TIM_CounterMode_Up; // 上升沿计数 timerConfig.TIM_Period = ((period_ms * 1000) / PWM_FREQ_HZ) - 1; // 设置周期 timerConfig.TIM_ClockDivision = TIM_CKD_DIV1; timerConfig.TIM_RepetitionCounter = 0; TIM_TimeBaseInit(&PWM_TIM, &timerConfig); TIM_ARRPreloadConfig(&PWM_TIM, ENABLE); // 预装载寄存器 TIM_Cmd(&PWM_TIM, ENABLE); // 启动定时器 TIM_OCInitTypeDef ocConfig; ocConfig.TIM_OCMode = TIM_OCMode_PWM1; // 输出模式为PWM ocConfig.TIM_OutputState = TIM_OutputState_Enable; // 开启输出 ocConfig.TIM_OCPolarity = TIM_OCPolarity_High; // 输出高电平 ocConfig.TIM_OutputCompare = (MAX_DUTY_CYCLE * (PWM_FREQ_HZ / 1000)) - 1; // 设置占空比上限 TIM_OC1Init(&PWM_TIM, &ocConfig); TIM_OC1PreloadConfig(&PWM_TIM, ENABLE); // 启用预装载 } void toggle_LED(void) { TIM_OC1Cmd(&PWM_TIM, !TIM_OC1StateGet(&PWM_TIM)); // 切换PWM输出状态 } int main(void) { GPIO_InitTypeDef gpioConfig; gpioConfig.GPIO_Pin = LED_PIN | KEY_PIN; gpioConfig.GPIO_Mode = GPIO_Mode_AF_PP; //推挽输出 gpioConfig.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(KEY_GPIO_PORT, &gpioConfig); EXTI_InitTypeDef extiConfig; extiConfig.EXTI_Line = KEY_PIN; extiConfig.EXTI_Mode = EXTI_Mode_Interrupt; extiConfig.EXTI_Trigger = EXTI_Trigger_Rising; extiConfig.EXTI_LineCmd = ENABLE; EXTI_Init(&extiConfig); while (1) { if (EXTI_GetITStatus(KEY_PIN) != RESET) // 检查按键是否按下 { toggle_LED(); // 按键触发LED周期切换 EXTI_ClearITPendingBit(KEY_PIN); // 清除中断标志 } // 调整PWM周期,例如切换到1秒和3秒 setup_PWM(current_period == 1000 ? 1000 : 3000); current_period = (current_period + 1) % 2; // 循环切换周期 } } ```
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值