OpenEdv-开源电子网

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

ST7565驱动IC驱动12864液晶

[复制链接]

163

主题

1223

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1461
金钱
1461
注册时间
2014-5-21
在线时间
339 小时
发表于 2015-1-28 13:25:05 | 显示全部楼层 |阅读模式
留着自用(未使用硬件SPI)

ST7565驱动版12864液晶.rar

1.46 MB, 下载次数: 10305

彼高丽者,边夷贱类,不足待以仁义,不可责以常礼。古来以鱼鳖畜之,宜从阔略。若必欲绝其种类,恐兽穷则搏。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

163

主题

1223

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1461
金钱
1461
注册时间
2014-5-21
在线时间
339 小时
 楼主| 发表于 2015-1-28 13:27:38 | 显示全部楼层
该液晶原厂手册

JLX12864G-1016中文说明书.pdf

552.51 KB, 下载次数: 2191

彼高丽者,边夷贱类,不足待以仁义,不可责以常礼。古来以鱼鳖畜之,宜从阔略。若必欲绝其种类,恐兽穷则搏。
回复 支持 反对

使用道具 举报

163

主题

1223

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1461
金钱
1461
注册时间
2014-5-21
在线时间
339 小时
 楼主| 发表于 2015-1-28 16:47:46 | 显示全部楼层
本帖最后由 cornrn 于 2018-11-24 22:39 编辑

效果图
彼高丽者,边夷贱类,不足待以仁义,不可责以常礼。古来以鱼鳖畜之,宜从阔略。若必欲绝其种类,恐兽穷则搏。
回复 支持 反对

使用道具 举报

163

主题

1223

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1461
金钱
1461
注册时间
2014-5-21
在线时间
339 小时
 楼主| 发表于 2015-1-28 16:50:59 | 显示全部楼层
STM32F030F4驱动12864程序

stm32f030f4最小系统驱动lcd12864.rar

1.04 MB, 下载次数: 2041

彼高丽者,边夷贱类,不足待以仁义,不可责以常礼。古来以鱼鳖畜之,宜从阔略。若必欲绝其种类,恐兽穷则搏。
回复 支持 反对

使用道具 举报

163

主题

1223

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1461
金钱
1461
注册时间
2014-5-21
在线时间
339 小时
 楼主| 发表于 2015-1-28 16:53:40 | 显示全部楼层
最小系统电路图
QQ图片20140610193808.jpg

LED-PA4.rar

945.66 KB, 下载次数: 1115

彼高丽者,边夷贱类,不足待以仁义,不可责以常礼。古来以鱼鳖畜之,宜从阔略。若必欲绝其种类,恐兽穷则搏。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

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

使用道具 举报

1

主题

4

帖子

0

精华

新手入门

积分
28
金钱
28
注册时间
2015-3-26
在线时间
0 小时
发表于 2015-3-26 17:35:08 | 显示全部楼层
楼主,我的液晶屏是JLX12864g-086.  可以用这个程序吗? 你用的是STM32F103的 哪个型号的芯片?谢谢~~  还有这个液晶屏是不是只有通过SPI 才能和单片机通信?问的问题比较小白,还请楼主讲解啊~~
回复 支持 反对

使用道具 举报

163

主题

1223

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1461
金钱
1461
注册时间
2014-5-21
在线时间
339 小时
 楼主| 发表于 2015-3-28 09:15:34 | 显示全部楼层
回复【7楼】图桠:
-------------------------------
看看程序就明白了,和哪个型号的STM32没什么关系,我在STM32L STM32F1 STM32F030都驱动过LCD两个文件 lcd.h lcd.c看看就知道了,很简单的
 根据你系统时钟调整一下delay(x)函数时间,都可以显示
彼高丽者,边夷贱类,不足待以仁义,不可责以常礼。古来以鱼鳖畜之,宜从阔略。若必欲绝其种类,恐兽穷则搏。
回复 支持 反对

使用道具 举报

1

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
136
金钱
136
注册时间
2014-11-11
在线时间
19 小时
发表于 2015-4-14 16:46:45 | 显示全部楼层
我用了下你的程序,显示字母没问题,但显示汉字,会出现乱码,不知道是哪里问题
回复 支持 反对

使用道具 举报

163

主题

1223

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1461
金钱
1461
注册时间
2014-5-21
在线时间
339 小时
 楼主| 发表于 2015-4-14 16:51:39 | 显示全部楼层
回复【9楼】497632925:
---------------------------------
你字库不对吧,用这个取模
彼高丽者,边夷贱类,不足待以仁义,不可责以常礼。古来以鱼鳖畜之,宜从阔略。若必欲绝其种类,恐兽穷则搏。
回复 支持 反对

使用道具 举报

163

主题

1223

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1461
金钱
1461
注册时间
2014-5-21
在线时间
339 小时
 楼主| 发表于 2015-4-14 16:52:20 | 显示全部楼层
宋体 新宋体 12号 就可以,其他字号之间摸索吧,也不难

zimo221.exe

267.5 KB, 下载次数: 1190

彼高丽者,边夷贱类,不足待以仁义,不可责以常礼。古来以鱼鳖畜之,宜从阔略。若必欲绝其种类,恐兽穷则搏。
回复 支持 反对

使用道具 举报

163

主题

1223

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1461
金钱
1461
注册时间
2014-5-21
在线时间
339 小时
 楼主| 发表于 2015-4-14 16:52:55 | 显示全部楼层
回复【7楼】图桠:
---------------------------------
可以
彼高丽者,边夷贱类,不足待以仁义,不可责以常礼。古来以鱼鳖畜之,宜从阔略。若必欲绝其种类,恐兽穷则搏。
回复 支持 反对

使用道具 举报

1

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
136
金钱
136
注册时间
2014-11-11
在线时间
19 小时
发表于 2015-4-14 17:04:47 | 显示全部楼层
直接用的你里面的汉字自模,都是乱码,还没还没找出问题
回复 支持 反对

使用道具 举报

1

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
136
金钱
136
注册时间
2014-11-11
在线时间
19 小时
发表于 2015-4-14 17:05:06 | 显示全部楼层
不知道哪里有问题
回复 支持 反对

使用道具 举报

163

主题

1223

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1461
金钱
1461
注册时间
2014-5-21
在线时间
339 小时
 楼主| 发表于 2015-4-14 22:21:07 | 显示全部楼层
回复【14楼】497632925:
---------------------------------
看看规律
彼高丽者,边夷贱类,不足待以仁义,不可责以常礼。古来以鱼鳖畜之,宜从阔略。若必欲绝其种类,恐兽穷则搏。
回复 支持 反对

使用道具 举报

1

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
136
金钱
136
注册时间
2014-11-11
在线时间
19 小时
发表于 2015-4-15 08:41:30 | 显示全部楼层
嗯,好的,谢谢了
回复 支持 反对

使用道具 举报

1

主题

4

帖子

0

精华

新手入门

积分
28
金钱
28
注册时间
2015-3-26
在线时间
0 小时
发表于 2015-4-20 09:35:06 | 显示全部楼层
回复【8楼】cornrn:
---------------------------------
en 调好了  谢谢 楼主!
回复 支持 反对

使用道具 举报

1

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
136
金钱
136
注册时间
2014-11-11
在线时间
19 小时
发表于 2015-4-21 10:12:43 | 显示全部楼层
楼主:你的程序到底是针对ST7565写的,还是晶联的显示屏,好像晶联的屏不是ST7565哟
回复 支持 反对

使用道具 举报

163

主题

1223

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1461
金钱
1461
注册时间
2014-5-21
在线时间
339 小时
 楼主| 发表于 2015-4-21 13:05:48 | 显示全部楼层
回复【18楼】497632925:
---------------------------------
是一样的,不过IC名字不一样功能一样的IC
彼高丽者,边夷贱类,不足待以仁义,不可责以常礼。古来以鱼鳖畜之,宜从阔略。若必欲绝其种类,恐兽穷则搏。
回复 支持 反对

使用道具 举报

1

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
136
金钱
136
注册时间
2014-11-11
在线时间
19 小时
发表于 2015-4-21 15:23:42 | 显示全部楼层
用DisplayChinese();可以显示汉字,
回复 支持 反对

使用道具 举报

1

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
136
金钱
136
注册时间
2014-11-11
在线时间
19 小时
发表于 2015-4-21 15:24:09 | 显示全部楼层
但显出的是无规则乱码
回复 支持 反对

使用道具 举报

1

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
136
金钱
136
注册时间
2014-11-11
在线时间
19 小时
发表于 2015-4-21 15:44:07 | 显示全部楼层
回复【17楼】图桠:
---------------------------------
你用的是那款液晶屏,我用的液晶屏怎么调都是乱码呀,请教了
回复 支持 反对

使用道具 举报

1

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
136
金钱
136
注册时间
2014-11-11
在线时间
19 小时
发表于 2015-4-22 11:38:31 | 显示全部楼层

这中情况是怎么回事


这种情况是怎么回事呀

回复 支持 反对

使用道具 举报

1

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
136
金钱
136
注册时间
2014-11-11
在线时间
19 小时
发表于 2015-4-22 11:39:45 | 显示全部楼层
显示的文字是  :方寸之间精彩尽显
回复 支持 反对

使用道具 举报

163

主题

1223

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1461
金钱
1461
注册时间
2014-5-21
在线时间
339 小时
 楼主| 发表于 2015-4-22 12:50:58 | 显示全部楼层
回复【24楼】497632925:
---------------------------------
取模时候上下颠倒一下呗,你看看我函数就知道怎么改了,移植也要看懂啊
彼高丽者,边夷贱类,不足待以仁义,不可责以常礼。古来以鱼鳖畜之,宜从阔略。若必欲绝其种类,恐兽穷则搏。
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

新手上路

积分
27
金钱
27
注册时间
2013-6-5
在线时间
1 小时
发表于 2015-11-18 22:14:20 | 显示全部楼层
楼主用的是外部吗?时钟频率多少?
回复 支持 反对

使用道具 举报

163

主题

1223

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1461
金钱
1461
注册时间
2014-5-21
在线时间
339 小时
 楼主| 发表于 2015-11-19 10:22:57 | 显示全部楼层
回复【26楼】victory0702:
---------------------------------
8MHSE delay自己调调就知道了,官方手册有时间,然后直接根据内部频率设置延时
彼高丽者,边夷贱类,不足待以仁义,不可责以常礼。古来以鱼鳖畜之,宜从阔略。若必欲绝其种类,恐兽穷则搏。
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

新手上路

积分
27
金钱
27
注册时间
2013-6-5
在线时间
1 小时
发表于 2015-11-19 12:27:51 | 显示全部楼层
楼主用的外部8M HSE的话,咱们来看看你在Delay.c中定义的滴答定时器的初始化代码:
void Delay_Init(u8 SYSCLK)
[mw_shl_code=c,true]/**************************************************** 函数功能:延时初始化 输入参数:SYSCLK : 系统时钟(72)MHZ 输出参数:无 备 注:无 *****************************************************/ void Delay_Init(u8 SYSCLK) { SysTick->CTRL &=~BIT(2);//选择外部时钟 SysTick->CTRL &=~BIT(1);//关闭定时器减到0后的中断请求 fac_us = SYSCLK/8;//计算好SysTick加载值 fac_ms = (u16)fac_us*1000; }[/mw_shl_code]
[mw_shl_code=c,true]在system_stm32f0xx.c中可以查到F0系列启动时内核时钟采用外部时钟,系统时钟经锁相环倍频到48MHZ,[/mw_shl_code] [mw_shl_code=c,true]This file configures the system clock as follows: *============================================================================= * System Clock Configuration *============================================================================= * System Clock source | PLL(HSE) *----------------------------------------------------------------------------- * SYSCLK | 48000000 Hz *----------------------------------------------------------------------------- * HCLK | 48000000 Hz[/mw_shl_code]
明显楼主也知道这点,故在main函数中初始化用的SYSCLK也是48MHZ,Delay_Init(48);
但是貌似void Delay_Init(u8 SYSCLK) 函数输入为72MHZ延时才对吧,

因为系统滴答校准值固定位9000,当系统滴答时钟设为9MHz,才产生1ms时间基准.所以楼主的延时时间不对....
再者,貌似这个本来很精确的滴答定时楼主只用来点灯用,而LCD驱动所用的延时楼主是这样定义的:

[mw_shl_code=c,true]void Delay(unsigned short tick) { unsigned char j,k; for(j=0;j<tick;j++) for(k=0;k<110;k++); }[/mw_shl_code]
用的是循环延时的方法,这个相对滴答定时器来说不大准,而且既然定义了滴答定时器却没用也有点浪费。

现在说我的问题,我现在用STM32F207来移植楼主的程序,液晶啥也不显示,我估计问题在延时时间上,207的外部时钟25M,系统启动时的SYSCLK跑到120M,我调了下DELAY函数的值也没有显示出来,我猜测Delay的延时差不多2-5ms即可,楼主的delay时长用的是:
[mw_shl_code=c,true]void WriteToLCD(unsigned char data, unsigned char flg) { unsigned char i; GPIO_ResetBits(LCD_GPIO, LCD_CS); if(flg) { GPIO_ResetBits(LCD_GPIO, LCD_RS); } else { GPIO_SetBits(LCD_GPIO, LCD_RS); } for(i=0;i<8;i++) { GPIO_ResetBits(LCD_GPIO, LCD_SCLK); if(flg)Delay(2); if(data&0x80) { GPIO_SetBits(LCD_GPIO, LCD_SDA); } else { GPIO_ResetBits(LCD_GPIO, LCD_SDA); } GPIO_SetBits(LCD_GPIO, LCD_SCLK); data <<= 1; } }[/mw_shl_code]
我的207还是没能让LCD显示出字来



回复 支持 反对

使用道具 举报

163

主题

1223

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1461
金钱
1461
注册时间
2014-5-21
在线时间
339 小时
 楼主| 发表于 2015-11-19 12:46:46 | 显示全部楼层
回复【28楼】victory0702:
---------------------------------
哎,我从来不用那个滴答时钟的,要是你费用,ucos的延时也可以啊,下面我贴一下我,基于ucosiii的LCD12864驱动。还有这个delay大致调一下延时不够加点就好了,哪里需要精确,初始化而已。
彼高丽者,边夷贱类,不足待以仁义,不可责以常礼。古来以鱼鳖畜之,宜从阔略。若必欲绝其种类,恐兽穷则搏。
回复 支持 反对

使用道具 举报

163

主题

1223

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1461
金钱
1461
注册时间
2014-5-21
在线时间
339 小时
 楼主| 发表于 2015-11-19 12:48:19 | 显示全部楼层
你说的delay.c我没有用,原子写的。我用的就一个循环延时
[mw_shl_code=c,true] ---------------------------------------------------------------------------------- ********************************************************************************************************/ #include "app.h" #include "lcd.h" #include "stdlib.h" #include "picture.h" #define LCD_CS_ENABLE GPIO_ResetBits(LCD_GPIO, LCD_CS) /* 片选 */ #define LCD_CS_DISABLE GPIO_SetBits(LCD_GPIO, LCD_CS) #define OpenLCDDsply() WriteToLCD(OPEN_LCD_CMD, SET) /* 开显示 */ #define CloseLCDDsply() WriteToLCD(CLOSE_LCD_CMD, SET) /* 关显示 */ typedef enum {LCD_DATA = 0,LCD_CMD = !LCD_DATA }LCD_DAT; /* LCD数据格式 */ extern OS_TICK StartRecordTick; /******************************************************************************************************** ** 函数名称: LCDTask ** 功能描述: LCD任务 ** 输  入: parg:参数传递入口 ** 输  出: 无 ** 全局变量: 无 ** 调用模块: ********************************************************************************************************/ void LCDTask(void *parg) { OS_ERR err; LCDDAT *msg,dat; OS_MSG_SIZE size; CPU_INT32U tmp; APP_ARG *p_arg = (APP_ARG *)parg; while(1) { msg = (LCDDAT *)OSQPend (p_arg->pLCDQ,0,OS_OPT_PEND_BLOCKING,&size,NULL,&err); if(OS_ERR_NONE == err && msg != NULL){ Mem_Copy(&dat,msg,size); ClearScreen(); /* 清屏 */ OpenLCDDsply(); /* 打开显示 */ switch(dat.pic) /* 检索邮件 */ { case DisplayInfoLCD: tmp = OSTimeGet(&err); if(OS_ERR_NONE == err){ tmp /= OSCfg_TickRate_Hz; } break; case EcgMarkLCD: DisplayChinese(4,48,EcgMark,2); break; case ShutDownFinishLCD: DisplayChinese(4,32,ShutDownFinish,4); OSQDel(p_arg->pLCDQ,OS_OPT_DEL_ALWAYS,&err); break; case RecordingLCD: DisplayChinese(4,32,Recording,4); break; case SystemNormalLCD: DisplayChinese(3,32,DriverNormal,4); DisplayChinese(5,32,PressRecord,4); break; case FlashDiyLCD: DisplayChinese(4,32,FlashDiy,4); break; } OSTimeDlyHMSM(0,0,DISPLAY_DELAY_TIME,0,OS_OPT_TIME_DLY,&err); if(dat.period)CloseLCDDsply(); } } } /********************************************************************************************************* ** 函数名称: LCDInit ** 功能描述: 初始化LCD模块 ********************************************************************************************************/ void LCDInit(void) { GPIO_ResetBits(LCD_GPIO, LCD_RESET); GPIO_SetBits(LCD_GPIO, LCD_RESET); WriteToLCD(0xE2, LCD_CMD); WriteToLCD(0x2c, LCD_CMD); /*升压步聚1*/ WriteToLCD(0x2e, LCD_CMD); /*升压步聚2*/ WriteToLCD(0x2f, LCD_CMD); /*升压步聚3*/ WriteToLCD(0x24, LCD_CMD); /*粗调对比度,可设置范围20~27*/ WriteToLCD(0x81, LCD_CMD); /*微调对比度*/ WriteToLCD(0x1a, LCD_CMD); /*微调对比度的值,可设置范围0~63 1f*/ WriteToLCD(0xa2, LCD_CMD); /*1/9偏压比(bias)*/ WriteToLCD(0xc8, LCD_CMD); /*行扫描顺序:从上到下*/ WriteToLCD(0xa0, LCD_CMD); /*列扫描顺序:从左到右*/ WriteToLCD(0x40, LCD_CMD); /*起始行:从第一行开始*/ ClearScreen(); WriteToLCD(0xaf, LCD_CMD); /*开显示*/ } /********************************************************************************************************* ** 函数名称: WriteToLCD ** 功能描述: 写数据进LCD ** 输  入: data:写数据 ** flg:标识。(0,数据)(1,命令) ********************************************************************************************************/ void WriteToLCD(CPU_INT08U data, CPU_INT08U flg) { CPU_INT32U i; LCD_GPIO->BSRRH = LCD_CS; (flg>0)?(LCD_GPIO->BSRRH = LCD_RS)LCD_GPIO->BSRRL = LCD_RS); for(i=0;i<8;i++){ LCD_GPIO->BSRRH = LCD_SCLK; ((data&0x80)>0)?(LCD_GPIO2->BSRRL = LCD_SDA)LCD_GPIO2->BSRRH = LCD_SDA); LCD_GPIO->BSRRL = LCD_SCLK; data <<= 1; } } /********************************************************************************************************* ** 函数名称: ClearScreen ** 功能描述: 清除屏幕 ********************************************************************************************************/ void ClearScreen(void) { CPU_INT32U i,j; for(i=0;i<9;i++) { LCD_GPIO->BSRRH = LCD_CS; WriteToLCD(0xb0+i,LCD_CMD); WriteToLCD(0x10,LCD_CMD); WriteToLCD(0x00,LCD_CMD); for(j=0;j<132;j++){ WriteToLCD(0x00,LCD_DATA); } } } /********************************************************************************************************* ** 函数名称: LCDAddr ** 功能描述: LCD地址偏移,内部使用 ** 输  入: page:页,column:列 ********************************************************************************************************/ void LCDAddr(CPU_INT08U page,CPU_INT08U column) { LCD_GPIO->BSRRH = LCD_CS; column--;page--; WriteToLCD(0xb0+page,LCD_CMD); WriteToLCD(((column>>4)&0x0f)+0x10,LCD_CMD); WriteToLCD(column&0x0f,LCD_CMD); } /********************************************************************************************************* ** 函数名称: DisplayStr ** 功能描述: 显示字符串 ** 输  入: page:页,column:列,text:文本指针 ********************************************************************************************************/ void DisplayStr(CPU_INT16U page,CPU_INT16U column,char *text) { CPU_INT32U i=0,j,k,n; while(text>0x00) { if((text>=0x20)&&(text<=0x7e)) { j=text-0x20; for(n=0;n<2;n++) { LCDAddr(page+n,column); for(k=0;k<8;k++) { WriteToLCD(ascii_table_8x16[j][k+8*n],RESET); } } i++; column+=8; } else { i++; } } } /********************************************************************************************************* ** 函数名称: DisplayStr ** 功能描述: 显示汉字 ** 输  入: page:页,column:列,dp:文本指针,Num:汉字数目 ********************************************************************************************************/ void DisplayChinese(CPU_INT08U page,CPU_INT08U column,CPU_INT08U *dp,CPU_INT08U Num) { CPU_INT32U i,j,k; for(k=0;k<Num;k++) { for(j=0;j<2;j++) { LCDAddr(page+j,column+(k*16)); for (i=0;i<16;i++) { WriteToLCD(*dp++,LCD_DATA); } } } } /********************************************************************************************************* ** 函数名称: DisplayRecordTime ** 功能描述: 显示记录时间 ** 输  入: page:页,column:列,time:时间,date:日期 ********************************************************************************************************/ //void DisplayRecordTime(CPU_INT08U page,CPU_INT08U column,TIME time,DATE date) //{ // char val[40]; // sprintf(val,"%04d-%02d-%02d",date.year,date.month,date.day); // DisplayStr(page,column,val); // sprintf(val,"%02d:%02d:%02d",time.hour,time.minute,time.second); // DisplayStr(page+2,column+8,val); //} /********************************************************************************************************* ** 函数名称: DisplayPicture ** 功能描述: 显示图片 ** 输  入: dp:图片指针 ********************************************************************************************************/ void DisplayPicture(CPU_INT08U *dp) { CPU_INT08U i,j; for(i=0;i<8;i++) { LCDAddr(i+1,1); for(j=0;j<128;j++) { WriteToLCD(*dp++,LCD_DATA); } } } /********************************************************************************************************* ** 函数名称: LCD_TRACE ** 功能描述: 通过LCD显示信息 ** 输  入: info信息 ********************************************************************************************************/ void LCD_TRACE(CPU_INT32U info) { CPU_CHAR ch[10]; //sprintf(ch,"%03d",info); DisplayStr(3,4,"ERROR"); DisplayStr(5,4,ch); } /****************************** (C) COPYRIGHT SmartHealth *****END OF FILE******************************/ [/mw_shl_code]


彼高丽者,边夷贱类,不足待以仁义,不可责以常礼。古来以鱼鳖畜之,宜从阔略。若必欲绝其种类,恐兽穷则搏。
回复 支持 反对

使用道具 举报

163

主题

1223

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1461
金钱
1461
注册时间
2014-5-21
在线时间
339 小时
 楼主| 发表于 2015-11-19 12:48:50 | 显示全部楼层
[mw_shl_code=c,true] ------------------------------------------------------------------------------------ ********************************************************************************************************/ #ifndef __LCD_H__ #define __LCD_H__ #include <stm32l1xx.h> #include <os.h> /*------------------------------------------------------------------------------------------------------ LCD ------------------------------------------------------------------------------------------------------*/ #define LCD_BL_CTL GPIO_Pin_11 #define LCD_RESET GPIO_Pin_12 #define LCD_CS GPIO_Pin_13 #define LCD_SCLK GPIO_Pin_14 #define LCD_RS GPIO_Pin_15 #define LCD_GPIO GPIOB #define LCD_SDA GPIO_Pin_6 #define LCD_GPIO2 GPIOC /******************************************************************************************************** ** 功能描述: 打开/关闭LCD显示 ********************************************************************************************************/ #define OPEN_LCD_CMD 0xAF #define CLOSE_LCD_CMD 0xAE #define DISPLAY_DELAY_TIME 4u typedef enum { BootWaitLCD = 0u, //开机等待 BatteryLowLCD, //电池电量低 LeadCheckLCD, //检查导联 SystemNormalLCD, //系统正常 ShutDownFinishLCD, //关机完成 RecordingLCD, //记录中 EcgMarkLCD, //打标 FlashDiyLCD, //容量不足 WelcomeLCD, //欢迎使用 DisplayInfoLCD }MonitorState; /******************************************************************************************************* ** 结构名称: LCDDsplyDat ** 功能描述: 投递进显示消息队列的信件,指示LCD显示内容 ********************************************************************************************************/ typedef struct { CPU_INT08U pic; /* 显示的消息图片 */ CPU_INT08U flag; /* 标识 */ CPU_INT08U period; /* 显示的重复次数 */ CPU_INT08U dly; /* 显示的时间间隔,以秒为单位 */ }LCDDAT; void LCDInit(void); /********************************************************************************************************* ** 函数名称: LCDInit ** 功能描述: 初始化LCD模块 ** 输  入: 无 ** 输  出: 无 ** 全局变量: 无 ** 调用模块: 无 *********************************************************************************************************/ void ClearScreen(void); /********************************************************************************************************* ** 函数名称: ClearScreen ** 功能描述: 清除屏幕 ** 输  入: 无 ** 输  出: 无 ** 全局变量: 无 ** 调用模块: 无 *********************************************************************************************************/ void DisplayStr(CPU_INT16U page,CPU_INT16U column,char *text); /********************************************************************************************************* ** 函数名称: DisplayStr ** 功能描述: 显示字符串 ** 输  入: page:页,column:列,text:文本指针 ** 输  出: 无 ** 全局变量: 无 ** 调用模块: 无 *********************************************************************************************************/ void WriteToLCD(CPU_INT08U data, CPU_INT08U flg); /********************************************************************************************************* ** 函数名称: WriteToLCD ** 功能描述: 写数据进LCD ** 输  入: data:写数据 ** flg:标识。(0,数据)(1,命令) ** 输  出: 无 ** 全局变量: 无 ** 调用模块: 无 ********************************************************************************************************/ void DisplayPicture(CPU_INT08U *dp); /********************************************************************************************************* ** 函数名称: DisplayPicture ** 功能描述: 显示图片 ** 输  入: dp:图片指针 ** 输  出: 无 ** 全局变量: 无 ** 调用模块: 无 ********************************************************************************************************/ void DisplayChinese(CPU_INT08U page,CPU_INT08U column,CPU_INT08U *dp,CPU_INT08U num); /********************************************************************************************************* ** 函数名称: DisplayChinese ** 功能描述: 显示汉字 ** 输  入: page:页,column:列,dp:文本指针,num:汉字数目 ** 输  出: 无 ** 全局变量: 无 ** 调用模块: 无 *********************************************************************************************************/ //void DisplayRecordTime(CPU_INT08U page,CPU_INT08U column,TIME time,DATE date); /********************************************************************************************************* ** 函数名称: DisplayRecordTime ** 功能描述: 显示记录时间 ** 输  入: page:页,column:列,time:时间,date:日期 ** 输  出: 无 ** 全局变量: 无 ** 调用模块: 无 ********************************************************************************************************/ void LCDTask(void *parg); /******************************************************************************************************** ** 函数名称: LCDTask ** 功能描述: LCD任务 ** 输  入: parg:参数传递入口 ** 输  出: 无 ** 全局变量: 无 ** 调用模块: ********************************************************************************************************/ #endif /****************************** (C) COPYRIGHT SmartHealth *****END OF FILE******************************/ [/mw_shl_code]

彼高丽者,边夷贱类,不足待以仁义,不可责以常礼。古来以鱼鳖畜之,宜从阔略。若必欲绝其种类,恐兽穷则搏。
回复 支持 反对

使用道具 举报

163

主题

1223

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1461
金钱
1461
注册时间
2014-5-21
在线时间
339 小时
 楼主| 发表于 2015-11-19 12:55:50 | 显示全部楼层
回复【28楼】victory0702:
---------------------------------
你知道我为什么没有delay.c吗,这是我早期的老程序裸奔的。我在系统中断里开ADC单次扫描,还有其他一些事情,你可能会问为什么不用TIM里面做,这个STM32F030F4我其实是低功耗的,不用的时钟我关了,不需要开的中断关了,这其实是demo版本,实际版本是8M时钟 LL都关了,而且是出了中断就自动睡眠模式的。。。等等不说了,就一个12864驱动,就哪几个命令和寄存器,自己看看官方手册也很容易玩起了。高级点自己做个GUI(12864GUI网上很多半开源做的都不是很好移植,我一直在用自己的),不说了,自己多多琢磨吧
彼高丽者,边夷贱类,不足待以仁义,不可责以常礼。古来以鱼鳖畜之,宜从阔略。若必欲绝其种类,恐兽穷则搏。
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

新手上路

积分
27
金钱
27
注册时间
2013-6-5
在线时间
1 小时
发表于 2015-11-19 13:00:11 | 显示全部楼层
回复【32楼】cornrn:
---------------------------------
就是因为是个简单模拟SPI驱动12864,之前的5110都驱动的没问题,这次老不出来字,程序找了半天也没找到有什么问题...,下午监控下各寄存器的值看看问题出在哪,还是感谢下楼主提供的移植程序
回复 支持 反对

使用道具 举报

3

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
51
金钱
51
注册时间
2012-8-1
在线时间
0 小时
发表于 2015-11-19 15:28:44 | 显示全部楼层
回复【32楼】cornrn:
---------------------------------
楼主能介绍下自己的12864GUI吗?跟您说的一样,网上的都不太好用
回复 支持 反对

使用道具 举报

163

主题

1223

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1461
金钱
1461
注册时间
2014-5-21
在线时间
339 小时
 楼主| 发表于 2015-11-19 15:59:12 | 显示全部楼层
回复【34楼】dadadou:
---------------------------------
等等分享的,我也是找人家改的,主要人家都说资料不全说的不明不白,多半是出个视频秀秀的
彼高丽者,边夷贱类,不足待以仁义,不可责以常礼。古来以鱼鳖畜之,宜从阔略。若必欲绝其种类,恐兽穷则搏。
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

新手上路

积分
27
金钱
27
注册时间
2013-6-5
在线时间
1 小时
发表于 2015-11-21 14:37:29 | 显示全部楼层
忘了说了,我的调出来了,和延时(delay函数)没有任何关系,去掉delay()也可以,问题在于液晶的初始化命令,我按液晶厂家手册上的初始化命令根本就不能显示,最后问了之前用的这块屏的程序中的命令就可以显示了,白忙活了那么多时间找程序的问题
回复 支持 反对

使用道具 举报

163

主题

1223

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1461
金钱
1461
注册时间
2014-5-21
在线时间
339 小时
 楼主| 发表于 2015-11-23 14:08:27 | 显示全部楼层
回复【36楼】victory0702:
---------------------------------
可能屏不是一个厂的控制IC有点区别,大体一样的
彼高丽者,边夷贱类,不足待以仁义,不可责以常礼。古来以鱼鳖畜之,宜从阔略。若必欲绝其种类,恐兽穷则搏。
回复 支持 反对

使用道具 举报

1

主题

5

帖子

0

精华

新手上路

积分
34
金钱
34
注册时间
2016-1-20
在线时间
7 小时
发表于 2016-1-31 21:58:35 | 显示全部楼层
感谢分享!
回复 支持 反对

使用道具 举报

1

主题

5

帖子

0

精华

新手上路

积分
34
金钱
34
注册时间
2016-1-20
在线时间
7 小时
发表于 2016-2-1 19:34:49 | 显示全部楼层
cornrn 发表于 2015-4-14 16:51
回复【9楼】497632925:
---------------------------------
你字库不对吧,用这个取模

请问这个取模的时候设置是怎样的? 设置都try过了,还是显示乱码. thanks.
回复 支持 反对

使用道具 举报

163

主题

1223

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1461
金钱
1461
注册时间
2014-5-21
在线时间
339 小时
 楼主| 发表于 2016-2-2 12:27:46 | 显示全部楼层
liu05051100 发表于 2016-2-1 19:34
请问这个取模的时候设置是怎样的? 设置都try过了,还是显示乱码. thanks.

找规律,然后再调设置,我再传一个常用的
彼高丽者,边夷贱类,不足待以仁义,不可责以常礼。古来以鱼鳖畜之,宜从阔略。若必欲绝其种类,恐兽穷则搏。
回复 支持 反对

使用道具 举报

163

主题

1223

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1461
金钱
1461
注册时间
2014-5-21
在线时间
339 小时
 楼主| 发表于 2016-2-2 12:28:40 | 显示全部楼层
又一款常用取模软件

取模软件.rar

702.84 KB, 下载次数: 945

彼高丽者,边夷贱类,不足待以仁义,不可责以常礼。古来以鱼鳖畜之,宜从阔略。若必欲绝其种类,恐兽穷则搏。
回复 支持 反对

使用道具 举报

1

主题

5

帖子

0

精华

新手上路

积分
34
金钱
34
注册时间
2016-1-20
在线时间
7 小时
发表于 2016-2-3 17:06:15 | 显示全部楼层
cornrn 发表于 2016-2-2 12:27
找规律,然后再调设置,我再传一个常用的

Ok,thanks!
回复 支持 反对

使用道具 举报

10

主题

146

帖子

0

精华

高级会员

Rank: 4

积分
764
金钱
764
注册时间
2015-12-19
在线时间
99 小时
发表于 2016-2-13 19:31:33 | 显示全部楼层
谢谢了  楼主的程序 用起来了  
回复 支持 反对

使用道具 举报

0

主题

0

帖子

0

精华

初级会员

Rank: 2

积分
54
金钱
54
注册时间
2013-9-24
在线时间
10 小时
发表于 2016-6-15 12:45:45 | 显示全部楼层
学习一下
回复 支持 反对

使用道具 举报

29

主题

55

帖子

0

精华

初级会员

Rank: 2

积分
144
金钱
144
注册时间
2017-3-2
在线时间
70 小时
发表于 2018-11-24 15:37:12 | 显示全部楼层
跑起来了,谢谢啊!@@@
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手上路

积分
20
金钱
20
注册时间
2019-5-29
在线时间
9 小时
发表于 2019-5-31 13:48:41 | 显示全部楼层
感谢楼主的热心分享,非常感谢!!!
回复 支持 反对

使用道具 举报

1

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
117
金钱
117
注册时间
2019-1-8
在线时间
11 小时
发表于 2019-11-7 14:25:37 | 显示全部楼层
谢谢楼主,已经下载学习
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

初级会员

Rank: 2

积分
75
金钱
75
注册时间
2020-9-22
在线时间
10 小时
发表于 2020-9-22 22:36:12 | 显示全部楼层
谢谢分享.
回复 支持 反对

使用道具 举报

0

主题

7

帖子

0

精华

新手入门

积分
13
金钱
13
注册时间
2022-11-17
在线时间
0 小时
发表于 2022-11-18 09:52:56 | 显示全部楼层
我们现在用的是13264的屏幕,驱动芯片一样,能用这段代码吗?
回复 支持 反对

使用道具 举报

163

主题

1223

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1461
金钱
1461
注册时间
2014-5-21
在线时间
339 小时
 楼主| 发表于 2022-11-20 14:13:30 | 显示全部楼层
jinxi625 发表于 2022-11-18 09:52
我们现在用的是13264的屏幕,驱动芯片一样,能用这段代码吗?

maybe ok
彼高丽者,边夷贱类,不足待以仁义,不可责以常礼。古来以鱼鳖畜之,宜从阔略。若必欲绝其种类,恐兽穷则搏。
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-30 01:40

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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