# 点灯

# 所有一起点(0x88):
void Led_display(unsigned char ucLed)
{//熄灭所有灯
    HAL_GPIO_WritePin(GPIOC,GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15|GPIO_PIN_8|GPIO_PIN_9|
                      GPIO_PIN_10|GPIO_PIN_11|GPIO_PIN_12, GPIO_PIN_SET);
    
    HAL_GPIO_WritePin(GPIOC,ucLed<<8, GPIO_PIN_RESET);

    HAL_GPIO_WritePin(GPIOD, GPIO_PIN_2, GPIO_PIN_SET);   
    HAL_GPIO_WritePin(GPIOD, GPIO_PIN_2, GPIO_PIN_RESET);

}
# 单个点:
void led(uint8_t led,uint8_t mode)
{
    if (mode)
    	HAL_GPIO_WritePin(GPIOC,( GPIO_PIN_8<<(led-1)), GPIO_PIN_RESET);
    else
    	HAL_GPIO_WritePin(GPIOC,( GPIO_PIN_8<<(led-1)), GPIO_PIN_SET);

    HAL_GPIO_WritePin(GPIOD, GPIO_PIN_2, GPIO_PIN_SET);	
    HAL_GPIO_WritePin(GPIOD, GPIO_PIN_2, GPIO_PIN_RESET);
}
# 闪烁
uint16_t timer_5s;
uint16_t led_state = 0;

void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
	if (htim->Instance == TIM4)
    { 
        timer_5s++;
        led_state = !led_state
        if(timer_5s>=50)
        {
            timer_5s=0;//5s

        }
    }
}

# LCD显示

[!NOTE]

# 真题文档给的行数与LCD_DisplayStringLine(Line1,(uint8_t *)text);相差一位!!要减1!!!****
# 先锁存,低电平
	 HAL_GPIO_WritePin(GPIOD, GPIO_PIN_2, GPIO_PIN_RESET);
	 LCD_Init();
	 LCD_Clear(Black);
	 LCD_SetBackColor(Black);
	 LCD_SetTextColor(White);
# 再在 (49)LCD_Init(96)LCD_DisplayStringLine(109)LCD_Clear前后加这两段代码
	//开始
	uint16_t temp=GPIOC->ODR;
	//末尾
	GPIOC->ODR=temp;
# 显示代码
char text[20];
void Lcd_Show(void){
	sprintf(text,"   test   ");
	LCD_DisplayStringLine(Line1,(uint8_t *)text);
}