OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6666|回复: 5

想实现显示屏上文字向上滚动的操作,哪位大大能帮忙啊

[复制链接]

1

主题

6

帖子

0

精华

新手上路

积分
30
金钱
30
注册时间
2013-3-14
在线时间
0 小时
发表于 2013-3-17 13:45:06 | 显示全部楼层 |阅读模式

我在编写stm32实现can总线通信的程序,在循环模式下,传输的数据比较多,屏幕无法全部显示,于是就想在每次显示数据之前加入一个可以将之前的数据向上推移的程序。哪位大大能给出程序么?或者给点其他的建议。
部分程序如下,比较简单,我是初学者,红字部分是我想加入的地方。请问有其他好的建议么。
#include "sys.h"
#include "usart.h"  
#include "delay.h" 
#include "led.h"
#include "beep.h"   
#include "key.h"   
#include "exti.h"   
#include "wdg.h"  
#include "timer.h"    
#include "tpad.h"
#include "oled.h"    
#include "lcd.h"
#include "usmart.h" 
#include "rtc.h"   
#include "wkup.h" 
#include "adc.h"  
#include "dac.h"  
#include "dma.h"  
#include "24cxx.h"  
#include "flash.h"  
#include "rs485.h"  
#include "can.h"  

int main(void)
{  
 u8 key;
 u8 i=0,t=0,j=0,k=0;
 u8 date[2][16]={{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16},{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}};
 u8 cnt;
 u8 canbuf[8];
 u8 res;
 u8 mode=1;//CAN工作模式;0,普通模式;1,环回模式

  Stm32_Clock_Init(9); //系统时钟设置
 uart_init(72,9600);   //串口初始化为9600
 delay_init(72);       //延时初始化
 LED_Init();      //初始化与LED连接的硬件接口
 LCD_Init();       //初始化LCD
 usmart_dev.init(72); //初始化USMART  
 KEY_Init();    //按键初始化    
  CAN_Mode_Init(1,8,7,5,mode);//CAN初始化,波特率450Kbps   

  OINT_COLOR=RED;//设置字体为红色
 LCD_ShowString(60,50,200,16,16,"WarShip STM32"); 
 LCD_ShowString(60,70,200,16,16,"CAN TEST"); 
 LCD_ShowString(60,90,200,16,16,"ATOM@ALIENTEK");
 LCD_ShowString(60,110,200,16,16,"2012/9/11");
 LCD_ShowString(60,130,200,16,16,"LoopBack Mode"); 
 LCD_ShowString(60,150,200,16,16,"KEY0:Send WK_UP:Mode");//显示提示信息  
   OINT_COLOR=BLUE;//设置字体为蓝色  
 LCD_ShowString(60,170,200,16,16,"Count:");   //显示当前计数值 
 LCD_ShowString(60,190,200,16,16,"Receive Data:");  //提示收到的数据 
 
  while(1)
 {
  key=KEY_Scan(0);
  if(key==KEY_RIGHT)//KEY0按下,发送一次数据
  { 
     for(k=0;k<2;k++)
     {
        for(j=0;j<2;j++)
           {
         for(i=0;i<8;i++)
          {
          canbuf=date[k][i+8*j];//填充发送缓冲区
              }
       res=Can_Send_Msg(canbuf,8);//发送8个字节
       if(res)LCD_ShowString(60+80,190,200,16,16,"Failed");  //提示发送失败
        else LCD_ShowString(60+110,190,200,16,16,"OK");    //提示发送成功 
       key=Can_Receive_Msg(canbuf);
           if(key)//接收到有数据
              {   
               LCD_Fill(60,270,130,310,WHITE);//清除之前的显示
                 for(i=0;i<key;i++)
                 LCD_ShowxNum(i*32,210+20*j,canbuf,2,16,0X80); //显示数据
           }
                //屏幕向上滚动 40

         }
   }         
  }else if(key==KEY_UP)//WK_UP按下,改变CAN的工作模式
  {   
   mode=!mode;
   CAN_Mode_Init(1,8,7,5,mode);//CAN普通模式初始化,普通模式,波特率450Kbps
     OINT_COLOR=RED;//设置字体为红色
   if(mode==0)//普通模式,需要2个开发板
   {
    LCD_ShowString(60,130,200,16,16,"Nnormal Mode ");    
   }else //回环模式,一个开发板就可以测试了.
   {
     LCD_ShowString(60,130,200,16,16,"LoopBack Mode");
   }
    OINT_COLOR=BLUE;//设置字体为蓝色
          
  }  
  
  t++;
  delay_ms(10);
  if(t==20)
  {
   LED0=!LED0;//提示系统正在运行 
   t=0;
   cnt++;
   LCD_ShowxNum(60+48,170,cnt,3,16,0X80); //显示数据
  }    
 }
 }


 

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-3-17 17:33:52 | 显示全部楼层
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

1

主题

6

帖子

0

精华

新手上路

积分
30
金钱
30
注册时间
2013-3-14
在线时间
0 小时
 楼主| 发表于 2013-3-18 11:17:55 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
有没有什么函数可以直接调用啊,新手c语言也比较弱,痛苦啊。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-3-18 13:45:16 | 显示全部楼层
没...
回复 支持 反对

使用道具 举报

头像被屏蔽

243

主题

429

帖子

0

精华

禁止发言

积分
1067
金钱
1067
注册时间
2011-12-23
在线时间
17 小时
发表于 2013-3-18 13:50:31 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

1

主题

6

帖子

0

精华

新手上路

积分
30
金钱
30
注册时间
2013-3-14
在线时间
0 小时
 楼主| 发表于 2013-3-18 19:07:38 | 显示全部楼层
回复【5楼】panpan312:
---------------------------------
好,我摸索着试试看,谢谢了哈
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-22 20:21

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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