单片机连lcd1602,为什么亮一会就灭了

本来两个都亮,过了一会,就都灭了,请问这是什么原因呢?
单片机用的stm32,没有写相关程序

代码或者原理图提供一下

  • 关于该问题,我找了一篇非常好的博客,你可以看看是否有帮助,链接:STM32如何在LCD上显示单词、文字、图片等
  • 除此之外, 这篇博客: 基于STM 32、矩阵键盘和独立键盘实现LCD显示的智能计算器(带括号的加减乘除运算、混合四则运算)——普中科技单片机开发试验仪嵌入式开发中的 4.2 主要变量和函数 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • // 主要变量
    typedef unsigned char BYTE;
    typedef unsigned char BOOL; 
    BYTE dis1[] = {"H               "};  //显示字符
    BYTE dis2[] = {"                "};
    BYTE dis_buf=0;            //显示缓存
    BYTE temp;               //中间变量
    BYTE key;                //键顺序码
    BYTE fuhao=32; //存储符号
    BYTE flag=0;  //判断是否结束
    BYTE flag_buf=0; //缓存键值
    BYTE flag_fuhao=0;//符号的flag
    BYTE j,m,n;  //循环计数索引
    int i=0;  //循环计数索引
    int operand[15] = {0};                //数字数组,初始化
    int  top_num = -1;  //数组末尾
    BYTE oper[15] = {0};                  //操作符数组,初始化
    int top_oper = -1;   //数组首部
    BYTE* temp_p;                            // 数组指针
    BYTE* str = dis1;//字符串指针
    BYTE dest[15];//字符数组,存储结果
    
    // 主要函数
    void RCC_Configuration(void);//RCC初始化
    void NVIC_Configuration(void);  //NVIC初始化
    void NOP(void);     //延时周期
    void Delay(vu32 nCount);   //延时程序
    void delay0(BYTE x);      //延时子程序
    void keyscan(void);      // 矩阵键盘扫描子程序
    void duli_keyscan(void);    //独立按键扫描子程序
    void keydown(void);       //判断键盘键是否按下
    void calculate(void);         //判断键盘键是否按下
    void result2char(void);   //计算表达式的值
    void LCD(void); //LCD显示
    int insert_operand(int *operand , int * top_num ,BYTE num);//数据压入数据栈 
    int insert_oper (BYTE * oper , int *top_oper , char ch);//操作符压入符号栈
    int compare(BYTE *oper , int *top_oper , BYTE ch);//比较操作服优先级
    int deal_date(int *operand ,BYTE *oper ,int *top_num, int *top_oper);//进行数据运算