野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7797|回复: 5

液晶屏使用串口出错

[复制链接]
发表于 2018-5-24 00:32:46 | 显示全部楼层 |阅读模式
如题,用串口接收数据,然后用液晶屏显示,但是第二次接收数据就会进入硬件错误,如果不用液晶屏显示,就不会出错,这是什么问题啊?
回复

使用道具 举报

发表于 2018-5-24 14:30:34 | 显示全部楼层
在main函数中初始化时,先初始化液晶再初始化串口就可以了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-5-24 20:49:41 | 显示全部楼层
我就是现初始化液晶屏,然后初始化串口。

  1. int main ( void )
  2. {
  3.         uint8_t num,RxBuff[count];
  4.         char disbuff[count];
  5.        
  6.         LED_GPIO_Config();
  7.        
  8.         ILI9806G_Init ();

  9.         Debug_USART_Config();               
  10.        
  11.         printf("TEST\r\n");

  12.         ILI9806G_GramScan ( 6 );
  13.        
  14.         LCD_Show();
  15.        
  16.         while ( 1 )
  17.         {
  18.                
  19.                 if(i==count)
  20.                 {
  21.                         i=0;
  22.                         for(num=0;num<count;num++)
  23.                                 RxBuff[num]=RxData[num];
  24.                         printf("*%s\n*",RxBuff);
  25.                         sprintf(disbuff,"RxBuff:%s",RxBuff);
  26.                         printf("disbuff:%s\n",disbuff);
  27.                         ILI9806G_ClearLine(LINE(8));       
  28.                         ILI9806G_DispStringLine_EN(LINE(8),disbuff);
  29.                 }
  30.         }
  31. }
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-5-24 20:50:04 | 显示全部楼层
本帖最后由 uStopRxy 于 2018-5-24 20:51 编辑

我就是现初始化液晶屏,然后初始化串口。
  1. int main ( void )
  2. {
  3.         uint8_t num,RxBuff[count];
  4.         char disbuff[count];
  5.         
  6.        LED_GPIO_Config();
  7.         
  8.         ILI9806G_Init ();

  9.         Debug_USART_Config();               
  10.         
  11.         printf("TEST\r\n");

  12.        ILI9806G_GramScan ( 6 );
  13.         
  14.         LCD_Show();
  15.         
  16.         while ( 1 )
  17.         {
  18.                
  19.                 if(i==count)
  20.                 {
  21.                         i=0;
  22.                         for(num=0;num<count;num++)
  23.                                 RxBuff[num]=RxData[num];
  24.                         printf("*%s\n*",RxBuff);
  25.                         sprintf(disbuff,"RxBuff:%s",RxBuff);
  26.                         printf("disbuff:%s\n",disbuff);
  27.                         ILI9806G_ClearLine(LINE(8));        /* 清除单行文字 */
  28.                         ILI9806G_DispStringLine_EN(LINE(8),disbuff);
  29.                 }
  30.         }
  31. }
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-5-24 20:50:48 | 显示全部楼层
flyleaf 发表于 2018-5-24 14:30
在main函数中初始化时,先初始化液晶再初始化串口就可以了

第二次串口发送就会出错
回复 支持 反对

使用道具 举报

发表于 2018-5-25 09:59:57 | 显示全部楼层
uStopRxy 发表于 2018-5-24 20:50
第二次串口发送就会出错

检查下你这是不是disbuff溢出了,而且disbuff定义成全局变量比较好,栈空间比较小,定义成局部变量一不小心就空间不足
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-5-12 19:00 , Processed in 0.029779 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表