请教一下stm32开发板LCD显示函数放到while循环里失效问题

2401_84132260 2025-01-24 20:26:45

经过测试多次发现  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++;
    }

}

求各位大神解惑

 

...全文
135 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

27,508

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧