STM32-led点灯实验(控制pc13亮灭,并且实现闪烁)

一般来说,控制gpio外设需要三个步骤,缺一不可
1.开启外设时钟
2.设置外设工作模式
3.控制引脚高低电平

在这里插入图片描述
这是pc13的电路图,经电路分析,需要pc13引脚输出低电平时,指示灯才会亮,高电平或者高阻态时,指示灯不会亮,所以可以用推挽输出或开漏输出,但是开漏输出会更好一些。

#include "stm32f10x.h"                  // Device header

int main(void){
	//1.先开启GPIOC外设时钟
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);
	//定义结构体
	//2.设置外设工作模式,分析,根据pc13的电路分析,得出需要将gpioc的13号引脚设置成开漏输出模式,输出速率不需要太高,20MHZ够用
	GPIO_InitTypeDef GPIO_Init_Struct;
	//赋值
	GPIO_Init_Struct.GPIO_Mode = GPIO_Mode_Out_OD ;//使用开漏输出,因为pc13接的是vcc
	GPIO_Init_Struct.GPIO_Pin = GPIO_Pin_13;
	GPIO_Init_Struct.GPIO_Speed = GPIO_Speed_2MHz;
	GPIO_Init(GPIOC, &GPIO_Init_Struct);
	//3.控制引脚高低电平。将pc13点亮,即数据输出寄存器写0,引脚输出低电平,led亮,写1,引脚高阻态,led灭
    while(1){
		GPIO_ResetBits(GPIOC,GPIO_Pin_13);//setbits是写1,resetbits是写0
		Delay_Ms(100);                    //这个delay函数是自己写的,要包含头文件delay.h
		GPIO_SetBits(GPIOC,GPIO_Pin_13);
		Delay_Ms(100);
    }
}
stm32pc13指示灯没有闪烁可能有多种原因。引用提到了使用CLion和STM32CubeMX实现PC13LED闪烁。你可以按照以下步骤进行检查和排除故障: 1. 确保你的硬件连接正确。检查PC13引脚是否正确连接到LED并且LED是否正常工作。 2. 确保你的软件配置正确。使用CLion和STM32CubeMX生成的代码中,检查是否正确配置了PC13引脚作为输出,并且是否正确设置了闪烁的逻辑。 3. 检查你的代码是否正确。请确保你的代码中有正确的控制指令来实现LED闪烁。可以检查是否正确设置了GPIO引脚的状态和延迟时间。确保没有其他代码或配置冲突导致LED无法闪烁。 如果你已经检查了上述步骤,并且问题仍然存在,你可以尝试以下方法进一步解决问题: 1. 检查系统时钟配置。确保系统时钟配置正确,并且与你的代码中的延迟时间匹配。如果时钟配置不正确,可能会导致LED无法正确闪烁。 2. 检查中断配置。如果你的代码中使用了中断,确保中断配置正确,并且没有阻塞LED闪烁的正常执行。 3. 检查电源供应。确保供电电压稳定,并且满足芯片的要求。不稳定或不足的电源供应可能导致芯片无法正常工作。 以上是一些常见的排查步骤,请根据你的具体情况逐一尝试,并确定导致PC13指示灯没有闪烁的具体原因。如果问题仍然存在,请提供更多的细节,以便我们可以提供更精确的帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值