html5模板网站,建设银行官网网站员工招聘,sem竞价开户,seo怎么快速提高排名LED部分的原理图 led前面有锁存器#xff0c;这是为了防止led会受到lcd的干扰#xff08;lcd也需要用到这些引脚#xff09;。
每次想要对led操作#xff0c;就需要先打开锁存器#xff0c;再执行操作#xff0c;最后关闭锁存器。
这里需要注意的是#xff0c;引脚配置…LED部分的原理图 led前面有锁存器这是为了防止led会受到lcd的干扰lcd也需要用到这些引脚。
每次想要对led操作就需要先打开锁存器再执行操作最后关闭锁存器。
这里需要注意的是引脚配置为低电平时LED才会点亮。 具体操作
1配置
首先要在stm32CubeMX里面配置PD2为高电平目的是打开锁存器。
然后配置PC8-PC15都是高电平默认刚上电是关闭的。 这里给高电平但是不用上拉电阻。 2代码
这是截取的一小段代码。需要强调的是 一堆代码HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2,GPIO_PIN_RESET);LCD_Init();LCD_Clear(Black);LCD_SetBackColor(Black);LCD_SetTextColor(White);一堆代码 一定要在LCD初始化之前关闭锁存器。
这样LCD无论如何操作也不会对led造成干扰。 这就是你刚才配置的那个 锁存器和PC8-PC15。 3相关函数
void led_all_off() //关闭所有的LED灯
{HAL_GPIO_WritePin(GPIOD, GPIO_PIN_2, 1);HAL_GPIO_WritePin(GPIOC, GPIO_PIN_All, 1);HAL_GPIO_WritePin(GPIOD, GPIO_PIN_2, 0);
}void led_all_on() //打开所有的LED灯
{HAL_GPIO_WritePin(GPIOD, GPIO_PIN_2, 1);HAL_GPIO_WritePin(GPIOC, GPIO_PIN_All, 0);HAL_GPIO_WritePin(GPIOD, GPIO_PIN_2, 0);
}void led_on(int n) //只打开某一个LED灯(n取值为 1 ~ 8)
{HAL_GPIO_WritePin(GPIOD, GPIO_PIN_2, 1);HAL_GPIO_WritePin(GPIOC, GPIO_PIN_All, 1);HAL_GPIO_WritePin(GPIOC, GPIO_PIN_7 n, 0);HAL_GPIO_WritePin(GPIOD, GPIO_PIN_2, 0);
}void led_status(unsigned char c) //打开一部分LED灯(传入的8位数据分别控制8个灯)
{HAL_GPIO_WritePin(GPIOD, GPIO_PIN_2, 1);GPIOC - ODR (c 8);HAL_GPIO_WritePin(GPIOD, GPIO_PIN_2, 0);
}