你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

查看: 9440|回复: 15

STM32LCD 显示代码网友共享专贴

[复制链接]

134

主题

4489

回帖

239

蝴蝶豆

版主

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

使用道具 举报

134

主题

4489

回帖

239

蝴蝶豆

版主

最后登录
2020-12-9
 楼主| 发表于 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[13];
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[13]={0};
const u16 PlanColor[11]={
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

MP3_Driver.rar

下载

1.21 KB, 下载次数: 102

回复 支持 反对

使用道具 举报

134

主题

4489

回帖

239

蝴蝶豆

版主

最后登录
2020-12-9
 楼主| 发表于 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[8];
//#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[8]={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[5],DateBuffer[6],DateBuffer[7]);   
}
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=DateBuffer[0]0)||((RM-DateBuffer[6])>9)) //将时间写入E2
 {
    RTC_SAVELED();
    DateBuffer[5]=RH;
       DateBuffer[6]=RM;
    DateBuffer[7]=RS;      
    EE_BlockWrite(0,DateBuffer);
    Delay_1ms(50);
    RTC_SAVELED();
 }
 else if((RM==0)&&(RH==0)&&(RS==0))
 {
    RTC_SAVELED();
    DateBuffer[5]=RH;
       DateBuffer[6]=RM;
    DateBuffer[7]=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***************************************/
 

Timer.rar

下载

2.12 KB, 下载次数: 101

回复 支持 反对

使用道具 举报

0

主题

9

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
发表于 2010-4-17 00:08:14 | 显示全部楼层

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

在做触摸屏,谢谢楼主的共享
回复 支持 反对

使用道具 举报

1

主题

5

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
发表于 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
回复 支持 反对

使用道具 举报

0

主题

7

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
发表于 2010-4-26 20:55:03 | 显示全部楼层

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

hao,ding!!
回复 支持 反对

使用道具 举报

0

主题

12

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
发表于 2010-5-12 08:44:01 | 显示全部楼层

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

这个不错!


回复 支持 反对

使用道具 举报

0

主题

7

回帖

0

蝴蝶豆

新手上路

最后登录
2018-9-28
发表于 2010-5-25 17:20:14 | 显示全部楼层

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

应当给与奖励,可惜我没有积分
回复 支持 反对

使用道具 举报

134

主题

4489

回帖

239

蝴蝶豆

版主

最后登录
2020-12-9
 楼主| 发表于 2010-5-26 09:03:26 | 显示全部楼层

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

谢谢楼上支持。
回复 支持 反对

使用道具 举报

1

主题

10

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
发表于 2010-5-30 16:23:09 | 显示全部楼层

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

楼主能不能把LCD驱动的代码贡献出来呢,想了解一些这方面的知识
回复 支持 反对

使用道具 举报

关于 意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
13245底部标题123相同标题
12底部标题123相同标题
33333底部标题123相同序号
3435底部标题-无链接
关注我们
st-img 微信公众号
st-img 手机版