标题: 单片机C语言加了液晶初始化 串口就不发了 求帮忙看看是什么原因 [打印本页]

作者: 我在东北玩51    时间: 2021-5-17 15:17
标题: 单片机C语言加了液晶初始化 串口就不发了 求帮忙看看是什么原因
/*-----------------------------------------------

------------------------------------------------*/
#include<reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义
#include<stdio.h>
#include "delay.h"
#include "LCD12864.h"



/*------------------------------------------------
              串口通讯初始化
------------------------------------------------*/
void UART_Init(void)
{
    SCON  = 0x50;                        // SCON: 模式 1, 8-bit UART, 使能接收  
    TMOD |= 0x20;               // TMOD: timer 1, mode 2, 8-bit 重装
    TH1   = 0xFE;               // TH1:  重装值 9600 波特率 晶振 11.0592MHz  
    TR1   = 1;                  // TR1:  timer 1 打开                        
    //EA    = 1;                  //打开总中断
    //ES    = 1;                  //打开串口中断
        TI =1;
}
/*------------------------------------------------
                    主函数
------------------------------------------------*/
void main (void)
{                  


UART_Init();
printf("AT\n");
Delay(1000);
lcm_init();                        //液晶初始化
    welcome0(huawei);
                Delay(2000);//延时
        
    lcm_clr();            //清屏
        Clean_12864_GDRAM();         //清屏


while (1)         //主循环
  {
         printf("AT+CSQ?\n");
Delay(3000);


}
}
  加了lcm_init();                        //液晶初始化
    welcome0(huawei);
                Delay(2000);//延时
        
    lcm_clr();            //清屏
        Clean_12864_GDRAM();         //清屏这一部分就不运行了


作者: 黄youhui    时间: 2021-5-17 16:54

1.清屏函数卡主了,你不发清屏部分源码?
2.你的串口发送printf是使用while轮询的,你发送标志位清空了吗?
3.welcome0(huawei)你这个函数的形参是什么?huawei是什么?字符串,指针,变量?
4.lcm_init();  有没有while循环,比如IIC等待应答之类的。


作者: wulin    时间: 2021-5-18 11:16
从这只言片语看不出问题所在。有可能定时器T1在LCD12864.c中已被用到,你再初始化串口重复操作T1就覆盖了。
作者: jishu    时间: 2021-5-18 11:36
程序里初始化接口有问题,你把那个删除了就好了





欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1