27,508
社区成员




经过测试多次发现 LCD_DisplayStringLine函数放到while外面是可以正常显示的,但放到循环中无显示且led(0x02)函数所控制的灯泡发出十分微弱的光,尝试过加入延时函数灯泡亮度恢复正常但屏幕仍无显示。代码如下
int main(void)
{
HAL_Init();
LCD_Init();
LCD_Clear(White);
LCD_SetBackColor(Black);
LCD_SetTextColor(White);
LCD_DisplayStringLine(Line0,(uint8_t*)"hello world");
SystemClock_Config();
MX_GPIO_Init();
while (1)
{
lcd_prco();
}
}
void lcd_prco(void){
sprintf(buf,"shijian:%d",shijian);
LCD_DisplayStringLine(Line2,(uint8_t *)buf);
led(0x02);
}
//lcd函数库中的
void LCD_DisplayChar(u8 Line, u16 Column, u8 Ascii)
{
Ascii -= 32;
LCD_DrawChar(Line, Column, &ASCII_Table[Ascii * 24]);
}
void LCD_DisplayStringLine(u8 Line, u8 *ptr)
{
u32 i = 0;
u16 refcolumn = 319;//319;
while ((*ptr != 0) && (i < 20)) // 20
{
LCD_DisplayChar(Line, refcolumn, *ptr);
refcolumn -= 16;
ptr++;
i++;
}
}
求各位大神解惑