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

STM32LCD 显示代码网友共享专贴

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

举报

15个回答
废鱼 回答时间: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

废鱼 回答时间: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

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 显示代码网友共享专贴

谢谢楼上支持。
suyugangabcd 回答时间:2010-5-30 16:23:09

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

楼主能不能把LCD驱动的代码贡献出来呢,想了解一些这方面的知识
废鱼 回答时间:2010-6-22 17:20:10

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

回复第 10 楼 suyugangabcd于2010-05-30 08:23:09发表:
楼主能不能把LCD驱动的代码贡献出来呢,想了解一些这方面的知识 

https://www.stmcu.org.cn/bbs/article_244_102466.html
这个里面代码公布出来了。你可以到这里看看。
waterwj1984-174 回答时间:2010-7-26 18:54:09

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

能不能给分享一下原理性的东西呢
jason_77chen 回答时间:2010-8-9 13:33:53

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

谢谢啦,正好要学习这方面
废鱼 回答时间:2010-8-10 08:36:19

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

需要哪方面的内容,请跟帖留言。
芯片解密 回答时间:2010-8-12 11:30:04

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

不错,学习啦,我需要一些有关于它的技术资料

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版