【STM32】HAL库LED点灯

目录

一、STM32中HAL库函数开发方法

二、STM32CubeMX的安装

三、STM32Cube完成两个LED灯闪烁

1.新建项目

2.配置项目

3.Keil函数修改

4.实验结果

四、采用中断模式控制LED灯点亮

1.配置项目

2.Keil函数修改

一、STM32中HAL库函数开发方法

  基于HAL库的开发方式,其实质是仍然是通过操作底层寄存器来实现相应功能,只是将寄存器操作进行了封装,以函数形式提供给开发人员使用。

  HAL库开发模式需要用到两个软件:STM32CubeMX用于外设功能模块的参数配置、生成相应编译器的工程代码;编译器用于应用程序的开发。

HAL库的接口函数

类型函数原型功能描述
初始化及复位函数HAL_GPIO_Init()GPIO**初始化函数**
HAL_GPIO_DeInit**()**复位选定的端口引脚到初始状态
引脚功能**操作函数**HAL_GPIO_ReadPin**()**读取选定的端口引脚的电平状态
HAL_GPIO_WritePin**()**设置选定的端口引脚输出高电平或低电平
HAL_GPIO_TogglePin()设置选定端口引脚的电平状态翻转
HAL_GPIO_LockPin()当端口引脚电平状态改变时保持锁定时的值
HAL_GPIO_EXTI_IRQHandler()外部中断处理函数
HAL_GPIO_EXTI_Callback()中断回调函数

二、STM32CubeMX的安装

点击Next,同意协议后点击Next,然后选择对应安装位置。

若遇到下图情况直接点击确定。

安装成功后打开STM32Cube进行固件库安装

选择对应的固件库进行安装

三、STM32Cube完成两个LED灯闪烁

1.新建项目

2.配置项目

进行输出端口设置,选择PA3,PA4为GPIO_Output;

配置SYS:

配置RCC:

配置GPIO:

设置为High

时钟配置:

项目建立:

3.Keil函数修改

在main.c文件中给while循环添加如下代码

	  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_3, GPIO_PIN_RESET); 
	  HAL_Delay(1000);
	  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_3, GPIO_PIN_SET);
	  
	  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4, GPIO_PIN_RESET);
	  HAL_Delay(1000); // ??1s
	  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4, GPIO_PIN_SET);

stlink链接过后先编译程序再进行烧录

4.实验结果

线路连接:

实验效果:

四、采用中断模式控制LED灯点亮

1.配置项目

配置SYS:

配置RCC:

配置GPIO:

2.Keil函数修改

在mian.c中添加以下代码

void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) 
{ 
	if( GPIO_Pin == B1_EXTI_Pin )
		{
			HAL_GPIO_TogglePin(LD5_GPIO_Port, LD5_Pin); 
		}
}

注:B1_EXTI指PB15;LED5指PA5

参考博客: STM32中断和基于HAL库的LED流水灯_stm32按键中断控制灯闪烁-CSDN博客

STM32基于HAL库流水灯实验_hel库安装教程中文版-CSDN博客

  • 18
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要使用STM32 HAL库实现手机蓝牙点灯功能,首先需要将蓝牙模块与STM32微控制器相连接。可以通过UART串口通信方式将蓝牙模块与STM32相连。 接下来,需要使用STM32 HAL库中提供的蓝牙通信函数来实现与手机之间的蓝牙通信。通过蓝牙协议栈可以实现手机与STM32之间的数据交互。 在STM32的应用程序中,需要配置蓝牙模块的相应参数,例如蓝牙模块的波特率以及通信模式等。可以使用HAL库中提供的函数来配置蓝牙模块。 当手机发送控制指令给STM32时,STM32通过蓝牙模块接收指令。接收到指令后,STM32根据指令来控制LED灯的状态。可以使用HAL库中提供的GPIO控制函数来控制LED的点亮与熄灭。 在STM32的中断服务程序中,需要编写相应的代码来解析手机发送的指令。需要根据指令来判断是要点亮LED还是熄灭LED。在收到指令后,再通过GPIO控制函数来控制LED的状态。 最后,通过蓝牙模块将STM32的控制结果反馈给手机,手机可以通过接收到的数据来判断LED是否成功点亮或熄灭。 总之,通过STM32 HAL库的蓝牙功能以及GPIO控制函数,可以实现手机蓝牙点灯的功能。具体的实现步骤包括配置蓝牙模块、接收解析手机指令、控制LED状态以及反馈控制结果给手机等。 ### 回答2: 要使用STM32 HAL库来控制手机蓝牙点灯,首先需要确保你的STM32芯片支持蓝牙功能。在开始之前,确保你已经安装好了HAL库和相关的开发环境。 接下来,你需要创建一个HAL工程,并添加蓝牙相关的库。在主函数中,初始化蓝牙模块,并设置相应的参数。你可以使用HAL库提供的函数来初始化并配置蓝牙。 为了点亮手机上的LED灯,你需要通过蓝牙连接手机,并发送一个特定的命令给手机。你可以在HAL库中使用蓝牙通信函数,与手机进行数据通信。 首先,通过蓝牙进行设备搜索,找到你的手机并连接到它。一旦连接成功,你可以使用HAL库提供的函数来发送一个命令给手机,以点亮手机上的LED灯。例如,你可以发送一个特定的字符串“LED ON”给手机,告诉它要点亮LED灯。 手机接收到命令后,你需要在手机端编写一个蓝牙应用程序来接收并处理这个命令。当手机接收到“LED ON”这个命令后,它就会执行相应的操作来点亮LED灯。 总体来说,使用STM32 HAL库来控制手机蓝牙点灯的过程分为两部分:在STM32端初始化并配置蓝牙,通过蓝牙与手机进行数据通信;然后在手机端编写一个应用程序来接收和处理来自STM32的命令,从而控制手机上的LED灯。 ### 回答3: 要实现手机蓝牙点灯的功能,可以使用STM32 HAL库来控制蓝牙模块和LED灯。首先需要在STM32开发环境中导入HAL库,并配置蓝牙模块和LED灯的硬件相关参数。 在代码中,首先需要进行蓝牙模块的初始化设置。通过HAL库提供的函数,可以配置蓝牙模块为主模式或从模式,并设置蓝牙名称和其他相关参数。在初始化之后,可以通过HAL库提供的蓝牙发送函数,与手机进行通信。 然后,需要配置LED灯的硬件相关参数。使用HAL库提供的GPIO初始化函数,将LED灯连接到特定引脚上,并设置引脚的模式和状态。 接下来,在蓝牙通信的代码中,可以设置一个特定的指令,用于控制LED灯的开关状态。当手机收到这个指令后,通过蓝牙模块发送给STM32控制器。 在STM32控制器的代码中,通过接收到的指令来控制LED灯的开关状态。使用HAL库提供的GPIO输出函数,可以将引脚设置为高电平或低电平,从而点亮或关闭LED灯。 最后,需要在主函数中进行一些初始化操作和循环检测蓝牙接收情况。通过HAL库提供的蓝牙接收函数,可以获取手机发送的指令。根据不同的指令,通过调用LED控制函数,实现点灯或熄灭。 总之,通过STM32 HAL库,我们可以实现手机蓝牙点灯的功能。使用蓝牙模块与手机通信,通过控制LED灯的开关状态,实现点灯或熄灭的效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值