【STM32CubeMX】HAL库LED点灯

一、STM32开发环境搭建

(一)安装jdk环境

由于STM32CubeMX是Java实现的,需要安装jdk。通过链接进入jdk官网:

Java Downloads | Oracleicon-default.png?t=N7T8https://www.oracle.com/java/technologies/javase-downloads.html进入之后,选择Java archive选项

点击Java SE,选择8u202 and earlier这个版本的 

点击下载最下方Windows x64的jdk环境

(注:在点击下载之后,会弹出一个Oracle账户登录,没有注册需要先注册) 

下载完成后,找到文件,双击安装 

(二)安装STM32CubeMX

1.下载安装 

通过链接进入官网下载STM32CubeMX 

https://www.st.com/en/development-tools/stm32cubemx.htmlicon-default.png?t=N7T8https://www.st.com/en/development-tools/stm32cubemx.html 选择Windows版本下载

右键选择管理员身份运行 

开始安装

 勾选同意选项 ,点击Next 

勾选已阅读,点击Next

自行选择下载目录,点击Next 

 点击确定

点击Next 

点击Next 

安装完成,点击Done 

2.安装固件库  

选择help,点击Manage... 

找到STM32F1, 下载1.8.5版本固件库 

(注: 在点击Install之后,会弹出一个注册界面,未注册则需要先进行注册) 

二、HAL库利用GPIO端口完成2只LED灯的周期闪烁

 (一)STM32CubeMX创建项目

1.新建file,创建新项目 

2.点击搜索并选择芯片STM32F103C8T6 

3.双击创建 

4.选择SYS 

 5.选择RCC

6.选择GPIO,点击输出设置GPIO_Output,此处我选择PA15,PB0,PC13三个端口 

7.将三个端口设置为高电平High 

8.Clock Configuration设置 

9.Project Manager设置 

10.各板块完成设置后使用keil打开 

(二)keil中修改main.c代码 

while(1)中输入代码,然后点击编译生成Hex文件,进行烧录 

  HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_RESET);  // 灯1亮 
  HAL_Delay(1000); // 延时1s
  HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_SET);  // 灯1灭
	
  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_15, GPIO_PIN_RESET);  // 灯2亮
  HAL_Delay(1000); // 延时1s
  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_15, GPIO_PIN_SET);  // 灯2灭
	  
  HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_RESET);  // 灯3亮
  HAL_Delay(1000); // 延时1s
  HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_SET);  // 灯3灭

 这里有两个while(1),注意要将代码放在后面那一个

  

三、采用中断模式操控LED灯亮灭

(一)STM32CubeMX创建项目 

SYS和RCC的配置不变,GPIO端口配置和中断配置作如下修改 

中断配置可选用上升沿和下降沿,这里我们默认选择上升沿,即:按下开关灯亮,松开开关灯灭 

 点击NVIC配置中断,勾选如图两个选项

 

(二)keil中修改main.c代码 

void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
	
	switch(GPIO_Pin){
		case GPIO_PIN_0:
			if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_0) == GPIO_PIN_RESET)
				HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_5);
		break;
		case GPIO_PIN_1:
			if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_1) == GPIO_PIN_RESET)
				HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_6);
		break;
	}
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值