STM32——为什么在程序不支持的情况下LED灯仍然亮着

    写了一个STM32串口的程序,想要用LED灯的亮灭来检测单片机是否将数据发送出去,以此来排查程序的错误,但在电脑收不到数据的情况下,灯却是亮着的。这是不符合逻辑的。



   
    然后我一条一条语句的排查,看是哪一条语句使得LED灯亮。没想到是灯的初始化函数的问题,我就拿着点亮LED灯的标准例程对照,发现它的初始化函数里面有一条赋给小灯的GPIO高电平的语句。这我才意识到LED的默认电平是低电平,也就是它的默认状态是亮的。
void LED_Init(void)
{
	GPIO_InitTypeDef GPIO_InitStruct;
	RCC_APB2PeriphClockCmd(DEBUG_RCC_APBXPeriph_LED_GPIOX, ENABLE);
	GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;
	GPIO_InitStruct.GPIO_Pin = GPIO_Pin_5;
    GPIO_InitStruct.GPIO_Speed =GPIO_Speed_10MHz;
	GPIO_Init(DEBUG_LED, &GPIO_InitStruct);
	GPIO_SetBits(DEBUG_LED,  GPIO_Pin_5);
}

    这是正点原子战舰板LED的电路图,可见在默认情况下LED0和LED1都是GPIO输出的低电平,发光二级管在正向电压的作用下被点亮。

这是正点原子战舰板LED的电路图,可见在默认情况下LED0和LED1都是GPIO输出的低电平,发光二级管在正向电压的作用下被点亮。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值