STM32(1)—点亮一个LED

推挽模式下,高低电平均有推挽模式PP

开漏模式下,高电平没有驱动能力

#include "stm32f10x.h"                  // Device header
#include "Delay.h"

int main (void) // main函数是一个int型返回值,void参数的函数
{
	RCC_APB2PeriphClockCmd(  RCC_APB2Periph_GPIOA,ENABLE);//开启寄存器的时钟
	
	GPIO_InitTypeDef GPIO_Initstructure;
	GPIO_Initstructure.GPIO_Mode=GPIO_Mode_Out_PP;
	GPIO_Initstructure.GPIO_Pin=GPIO_Pin_0;
	GPIO_Initstructure.GPIO_Speed=GPIO_Speed_50MHz;//至此结构体的定义完成!
	GPIO_Init(GPIOA,&GPIO_Initstructure);
	


//	GPIO_ResetBits(GPIOA,GPIO_Pin_0);
	while(1)
	{	GPIO_SetBits(GPIOA,GPIO_Pin_0);
		Delay_ms(10);
		GPIO_ResetBits(GPIOA,GPIO_Pin_0);
		Delay_ms(10);
		GPIO_WriteBit(GPIOA,GPIO_Pin_0,Bit_RESET);
		Delay_ms(5000);
		GPIO_WriteBit(GPIOA,GPIO_Pin_0,Bit_SET);
		Delay_ms(5000);
	}

}


点亮STM32一个LED灯,需要进行硬件连接和代码实现等操作。 ### 硬件连接 一般需明确开发板上LED灯对应的引脚,如有的开发板只有一个LED灯可供编程,只需实现对PB0即GPIOB.0引脚的配置和操作,PB0设置低电平LED点亮,高电平LED熄灭[^1]。 ### 代码实现 #### 工程文件设置 1. 在工程文件目录下创建一个文件HARDWARE,在里面创建一个小文件用来存放.c和.h文件。 2. 在Keil中点击创建两个文件,并编写代码,分别存为.c和.h形式存到LED文件下。 3. 右键工程,在第二个添加文件HARDWARE,并添加led.c到该文件下。 4. 点击魔术棒,在c/c++中的include path添加LED的头文件路径。编译后,会在左侧工程栏出现对应的.c和.h文件,创建工程的步骤完成[^4]。 5. 本次教学对STM32的GPIO外设操作,需在工程中添加stm32f10x_gpio.c和stm32f10x_rcc.c文件,对GPIO操作的函数都在stm32f10x_gpio.c中,stm32f10x_gpio.h是函数的申明及一些选项配置的宏定义。还需在KEIL5中把新建的HARDWARE下的led文件的路径包括进来[^3]。 #### 代码编写 1. **led.c文件**:对GPIO和时钟进行初始化配置,.c文件中必须包含 `#include “stm32f10x.h”` 头文件。初始化的函数名(如led_init)可以随便命名,但需要在led.h中声明,而且在.c文件中必须要包含该头文件[^4]。 2. **主函数**: ```c #include “stm32f10x.h” #include “led.h” #include “delay.h” // 假设延时函数头文件为delay.h int main(void) { led_init(); // 初始化刚才配置的函数 delay_init(); // 初始化延时函数 while(1) { // 用库函数写程序时,函数可以直接从相应的.h文件中寻找 // 例如配置GPIO输出低电平点亮LED GPIO_ResetBits(GPIOB, GPIO_Pin_0); // 假设LED连接在PB0 delay_ms(1000); // 延时1秒 GPIO_SetBits(GPIOB, GPIO_Pin_0); // 输出高电平熄灭LED delay_ms(1000); // 延时1秒 } } ``` 3. **配置端口**:配置RCC(HSE与LSE,按照原理图配置,如果没有两个都选第三个),配置System Core(sys - Debug(serial Wire)),选择Pinout view(PB0 - GPIO output)[^5]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值