发表于 2010-4-12 23:14:27

STM32LCD 显示代码网友共享专贴

        本帖主要是针对STM32LCD功能的汇总,也希望各位网友在这里发布自己的想法和实现的图片,让我们共同学习和使用STM32。
        目前LCD的显示主要是使用UCOS+GDI,或者裸机奔跑。我目前在使用的是裸机奔跑,对于GUI在学习中,也希望大家能够提供一些关于GUI学习的资料和例程。谢谢大家的支持。
     更多资料可能未及时更新,欢迎大家访问我的博客来阅读,谢谢大家的支持。
     我的博客地址:https://www.eefocus.com/caihong0217/blog/

发表于 2010-4-12 23:36:02

回复:STM32LCD 显示代码网友共享专贴

下面的程序是我利用STM32的LCD显示屏代码。主要是显示的是MP3频率。如图:

 
#ifndef __MP3_Driver_h
#define __MP3_Driver_h
extern u8 PlanNuming;
extern u8 PlanDraw;
extern u8 PlayNow;
extern u16 MP3data;
void MP3_fre(u16 x,u16 y,u16 num);
extern void MP3_Fres(u16 *Nums);
extern void MP3_Plan(u16 PlanNum,u16 *Nums);
 
#endif
 
#include "stm32f10x_lib.h"              // STM32F10x Library Definitions
#include "LCD.h"
#include "Timer.h"
#include "XP_driver.h"
u8 PlanNuming;
u8 PlanDraw=0;
u16 MP3data={0};
const u16 PlanColor={
0x3DA8,0x3DA8,0x3DA8,0x4648,0x4F08,0x4FA8,0x4F08,0x4648,0x3DA8,0x3DA8,0x3DA8
};
u8 PlayNow=0;

/*******************************************************************************
* Function Name  :
* Description    :
* Input          :
* Output         :
* Return         : None
*******************************************************************************/
void MP3_fre(u16 x,u16 y,u16 num)
{
   u8 n,i,lennum=0;     
  
  
   if((num>0)&&(num16)&&(num160)&&(num1600)&&(num16000)&&(num

发表于 2010-4-12 23:39:32

回复:STM32LCD 显示代码网友共享专贴

下面的代码是我用来显示日期的代码,我没有使用时间戳,使用的是算法来实现日期的变换和时间显示。其中RTC是中断,为1秒1次。下图是我的日期图。

 
#ifndef __Timer_H
#define __Timer_H
#define  Timer_1s       1000;
#define  Timer_500s     500;
#define  Timer_250s     250;
#define  Timer_125ms    125;
extern u8 DateBuffer;
//#define  Time_FlashAddr 0x08000100;
extern u32 TimerNum;
extern void RTC_Configuration(void);
extern void RTC_TimeSet(u8 HH,u8 MM,u8 SS);
extern void RTC_EETimeRead(void);
extern void RTC_EETimeRead(void);
extern u8   DataMonth(u16 Year,u8 M);
extern void RTC_DateSet(u16 Y,u8 M,u8 D,u8 Week,u8 HH,u8 MM,u8 SS);
extern void RTC_TimeRead(void);
extern void RTC_It(void);
#endif
 
#include "stm32f10x_lib.h"              // STM32F10x Library Definitions
#include "LCD.h"
#include "Timer.H"
#include "IOmenu.h"
#include "I2C.H"
u8 DateBuffer={20,9,1,1,7,0,0,0};
u32 TimerNum; 

/*******************************************************************************
* Function Name  : RTC_Configuration
* Description    : RTC配置
* Input          :
* Output         :
* Return         : None
*******************************************************************************/
void RTC_Configuration(void)
{
  RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE);
  PWR_BackupAccessCmd(ENABLE);
  BKP_DeInit();
     
  RCC_RTCCLKConfig(RCC_RTCCLKSource_HSE_Div128);
  RCC_RTCCLKCmd(ENABLE);
  RTC_WaitForSynchro();
  RTC_WaitForLastTask();
  RTC_ITConfig(RTC_IT_SEC, ENABLE);
  RTC_WaitForLastTask();
  RTC_SetPrescaler(93750); /* RTC period = RTCCLK/RTC_PR = (93.750 KHz)/(RTC+1) */  
  RTC_WaitForLastTask();
}
/*******************************************************************************
* Function Name  : RTC_TimeSet
* Description    : RTC时间设置
* Input          : HH:输入小时,MM:输入分钟,SS:输入秒
* Output         :
* Return         : None
*******************************************************************************/
void RTC_TimeSet(u8 HH,u8 MM,u8 SS)
{
   u32 TimeCount;
   TimeCount=HH*3600+MM*60+SS;
           
   RTC_WaitForLastTask();  
   RTC_SetCounter(TimeCount); 
   RTC_WaitForLastTask();
}
/*******************************************************************************
* Function Name  : RTC_TimeRead
* Description    : RTC时间设置
* Input          : HH:输入小时,MM:输入分钟,SS:输入秒
* Output         :
* Return         : None
*******************************************************************************/
void RTC_EETimeRead(void)
{
    EE_PageRead(0,DateBuffer,8);
 RTC_TimeSet(DateBuffer,DateBuffer,DateBuffer);   
}
u8 DataMonth(u16 Year,u8 M)
{
   if((M==1)||(M==3)||(M==5)||(M==7)||(M==8)||(M==10)||(M==12))
   {return(1);}
   else if((M==4)||(M==6)||(M==9)||(M==11))
   {return(2);}
   else if((M==2)&& (Year%4!=0))
   {return(3);}
    else if((M==2)&& (Year%4==0))
   {return(4);}
   else {return(0);}
}
void DataSet(void)
{
  u16 Y;
  u8 M,D,Week,Ms;
  EE_PageRead(0,DateBuffer,8);
 
  Y=DateBuffer0)||((RM-DateBuffer)>9)) //将时间写入E2
 {
    RTC_SAVELED();
    DateBuffer=RH;
       DateBuffer=RM;
    DateBuffer=RS;      
    EE_BlockWrite(0,DateBuffer);
    Delay_1ms(50);
    RTC_SAVELED();
 }
 else if((RM==0)&&(RH==0)&&(RS==0))
 {
    RTC_SAVELED();
    DateBuffer=RH;
       DateBuffer=RM;
    DateBuffer=RS;      
    EE_BlockWrite(0,DateBuffer);
    Delay_1ms(50);
    RTC_SAVELED();
 }
 LCD_Str(255,2,Time,Black,Grey);
 }
/*******************************************************************************
* Function Name  : RTC_It
* Description    :
* Input          :
* Output         :
* Return         : None
*******************************************************************************/
void RTC_It(void)
{
 NVIC_InitTypeDef NVIC_InitStructure;
    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
    NVIC_InitStructure.NVIC_IRQChannel = RTC_IRQChannel;
    NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority =6;
    NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
    NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
    NVIC_Init(&NVIC_InitStructure);
 }
 
 /****************************E N D***************************************/
 

abcyhl 发表于 2010-4-17 00:08:14

RE:STM32LCD 显示代码网友共享专贴

在做触摸屏,谢谢楼主的共享

老欧 发表于 2010-4-23 21:35:38

回复:STM32LCD 显示代码网友共享专贴

回复第 1 楼 安 于2010-04-12 15:14:27发表:
        本帖主要是针对STM32LCD功能的汇总,也希望各位网友在这里发布自己的想法和实现的图片,让我们共同学习和使用STM32。
        目前LCD的显示主要是使用UCOS+GDI,或者裸机奔跑。我目前在使用的是裸机奔跑,对于GUI在学习中,也希望大家能够提供一些关于GUI学习的资料和例程。谢谢大家的支持。
     更多资料可能未及时更新,欢迎大家访问我的博客来阅读,谢谢大家的支持。
     我的博客地址:https://www.eefocus.com/caihong0217/blog/
 

kankan

lee19871987 发表于 2010-4-26 20:55:03

RE:STM32LCD 显示代码网友共享专贴

hao,ding!!

lin_best 发表于 2010-5-12 08:44:01

回复:STM32LCD 显示代码网友共享专贴

这个不错!


wwf52 发表于 2010-5-25 17:20:14

RE:STM32LCD 显示代码网友共享专贴

应当给与奖励,可惜我没有积分

发表于 2010-5-26 09:03:26

RE:STM32LCD 显示代码网友共享专贴

谢谢楼上支持。:L

suyugangabcd 发表于 2010-5-30 16:23:09

RE:STM32LCD 显示代码网友共享专贴

楼主能不能把LCD驱动的代码贡献出来呢,想了解一些这方面的知识
页: [1] 2
查看完整版本: STM32LCD 显示代码网友共享专贴