STM32点亮LED

本文介绍了如何使用STM32单片机通过寄存器和库函数来实现LED的点亮,包括开启时钟、配置GPIO模式、使能及功能函数设置。电路中LED连接到PB1,添加延时可实现流水灯效果,移除延时则LED保持常亮。

点亮LED分以下几步:

1:开时钟
2:配置模式(关于GPIO口的8种模式,我主页找)
3:使能
4:功能函数

以下用寄存器和库函数两种方法实现

电路图中,LED引脚为PB1
代码如下:

寄存器版

void led_config(void) //配置
{
   
   
	//开B端口时钟
	RCC->APB2ENR |=(0x01<<3);//RCC->APB2ENR 外设时钟使能寄存器  GPIOB属于APB2时钟
	//配置模式  推挽输出  (0011  )
	//GPIOB->CRL  是端口配置地寄存器  配置I/O口
	//第一步,先把寄存器相应位清零,然后根据(推挽输出)把相应位置1
	GPIOB->CRL &=~
### 使用STM32微控制器点亮LED #### 准备工作 为了成功使用STM32微控制器点亮LED,需准备如下材料: - STM32开发板(如STM32F407ZGT6) - USB线用于连接电脑与开发板 - 开发工具链,包括STM32CubeIDE和STM32CubeMX #### 配置STM32CubeMX 启动STM32CubeMX并创建新项目,在软件中选择对应的STM32型号[^3]。 设置GPIO引脚模式为输出以便控制外部设备的状态变化。对于大多数情况,默认配置即可满足需求;若有特殊要求,则可根据实际情况调整参数设定。 完成初始化向导后生成工程文件,并将其导入到STM32CubeIDE环境中继续后续操作。 #### 编写程序代码 下面是一个简单的C语言源码片段,展示了如何利用标准外设库函数来驱动连接至指定端口上的单个发光二极管进行开关动作[^1]。 ```c #include "stm32f4xx_hal.h" int main(void){ HAL_Init(); // 初始化HAL库 __HAL_RCC_GPIOA_CLK_ENABLE(); // 使能GPIOA时钟 GPIO_InitTypeDef GPIO_InitStruct = {0}; /* 配置PA5为推挽输出 */ GPIO_InitStruct.Pin = GPIO_PIN_5; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); while (1) { HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_5); // 切换PA5电平状态 HAL_Delay(500); // 延迟500ms } } ``` 此段代码实现了每隔半秒钟切换一次PA5引脚高低电平的功能,从而达到让接在此处的LED灯闪烁的效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值