STM32LL库系列教程(二)——点亮LED灯

 **开发平台**  :  
 正点原子  探索者STM32F407ZET6
 cube mx:V 5.1.0
 keil uVision5

项目地址:https://github.com/liliang1918/STM32LL

注意:
本教程默认读者已经对stm32和cubemx软件有一定了解;
为节省篇幅,详细配置cubemx的步骤仅在此篇中说明,以后仅会简略介绍配置相关内容。
STM32LL库系列教程(二)——点亮LED灯
实验目的:学习cubemx LL库的配置方法;学会操作GPIO相关寄存器BSRR、ODR
实验现象:LED1每秒翻转一次;LED2每0.5秒翻转一次


下面开始配置cubemx,来进行程序的初始化。

1. 配置cubemx
1.1 配置时钟

RCC——HSE——Crystal/Ceramic Resonator(晶体/陶瓷谐振器)选择外部晶振

在这里插入图片描述
Clock Configuration——晶振频率选8M,与开发板相对应,主频开到最大168M

在这里插入图片描述

1.2 配置GPIO

板子上的LED为PF9、PF10控制,选择GPIO_Output
在这里插入图片描述

1.3 工程配置

1.3.1 选择keil
在这里插入图片描述
1.3.2 优化工程选项
在这里插入图片描述
1.3.3

*******重点:cubemx默认生成的是hal库的工程,必须在这里修改才能使用LL库 
*******有趣的是hal库和ll库是可以相互兼容的,可以单独给某个外设配置ll库或hal库

在这里插入图片描述

自此,对本工程的初始化就完成了。
下面开始编写代码,并介绍控制GPIO相关寄存器

2. 编写代码

代码很简单
在while(1)中自行添加这样几行
在这里插入图片描述
从名字中,不难看出这几行代码的作用,而在LL库本身的库文件中也有介绍他的作用:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
因而,想对LL库得心应手,就必须要经常看一看库文件以及参考手册。
回到上文,在这三个函数中,我们发现LL库,基本上都是通过static inline内联函数来操作寄存器,这样代码的效率可想而知。那BSRR和ODR是什么呢,让我们翻一下STM32F4xx中文参考手册

3.相关寄存器介绍
3.1 GPIO 端口置位/复位寄存器 (GPIOx_BSRR) (x = A…I)
首先是`BSRR`
S、R顾名思义,即置位,复位。
因此,对R写1,就是复位,该GPIO会输出0;
			对S写1,就是置位,输出高电平,而且,S优先级更高。
所以,对这个寄存器写数,就会改变GPIO的状态,从而,灯会闪烁。

在这里插入图片描述

3.2 GPIO 端口输出数据寄存器 (GPIOx_ODR) (x = A…I)

下面是ODR,这同样也是一个可以通过写入来改变GPIO状态的寄存器,
与BSRR比较大的区别就是,它可以直接对一位写0或1,控制输出;且,ODR的数是可以读出来的。
因此在函数LL_GPIO_TogglePin(GPIO_TypeDef *GPIOx, uint32_t PinMask);
是先读取ODR的值,确定输出状态,然后再取反,实现了每次输出会翻转的现象。
在这里插入图片描述

**感谢观看!**
  • 13
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
在使用STM32HAL点亮LED的例程中,可以使用HAL提供的函数来配置和控制GPIO引脚。具体步骤如下: 1. 首先,在代码中引入HAL的头文件,例如"stm32f4xx_hal.h"。 2. 初始化HAL,包括系统时钟、GPIO引脚等配置。 3. 使用HAL提供的函数来配置需要使用的GPIO引脚为输出模式,例如使用HAL_GPIO_Init函数。 4. 使用HAL提供的函数来控制GPIO引脚的电平,从而点亮LED。例如使用HAL_GPIO_WritePin函数将GPIO引脚置为高电平或低电平。 这样,通过以上步骤就可以使用STM32HAL点亮LED了。 <span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [STM32L151C8T6基于HAL点亮LED](https://download.csdn.net/download/David1230011/12746850)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [STM32_HAL_点亮LED](https://blog.csdn.net/m0_73066573/article/details/130649805)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值