注册 登录
查看: 10679|回复: 75

[K60] 【一天攻破K60】一键切换TFT液晶屏幕的说明

[复制链接]
发表于 2013-12-17 13:27:43 | 显示全部楼层 |阅读模式
我们新提供的 一天攻破 K60 代码里,为了给大家 可供使用不同的液晶,因此加入了 一个宏定义来选择不同的液晶.

很多 同学 反馈 ,直接用我们的例程 没法在 液晶上正常显示,那么就得先考虑 液晶配置正不正常。

代码里的书后例程才是完整的代码,才支持小液晶!!!!!!!!!!!!

5.0版本在工程目录下的:Board\inc\FIRE_LCD.h
5.1之后的版本改成在 工程目录下:App\inc\MK60_conf.h
  1. /*
  2. * 定义LCD型号
  3. */
  4. #define LCD_ILI9341     1       // 3.2寸液晶(野火/秉火)
  5. #define LCD_ST7735S     2       // 1.44寸液晶      LCD_ST7735S 与 LCD_ST7735R 外观一样,寄存器操作略有不同
  6. #define LCD_ST7735R     3       // 1.44寸液晶
  7. #define LCD_ILI9325     4       // 3.2寸液晶(山外)

  8. #define USE_LCD         LCD_ILI9325             //选择使用的 LCD


其中 USE_LCD 就是 选择 使用 不同的液晶,大家修改 这个 宏定义的值即可切换 不同的 液晶。

例如:#define USE_LCD         LCD_ST7735R      //选择使用的 LCD


这种方法,就可以让大家 切换液晶的时候,不需要 修改 顶层代码。但需要注意一个地方就是屏幕 分辨率!

大液晶和 小液晶的 分辨率都不相同。可以 调用 LCD_H LCD_W 来获取 分辨率!!!







本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

评分

参与人数 1互助 +1 收起 理由
0小龙龙 + 1 解决了我的问题,谢谢

查看全部评分

本帖被以下淘专辑推荐:

回复

使用道具 举报

发表于 2016-1-23 13:49:48 | 显示全部楼层
现在可以了谢谢啊
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2013-12-17 13:32:00 | 显示全部楼层
LCD_ILI9341 就是 3.2寸 的大屏幕



LCD_ST7735S 和 LCD_ST7735R 都是 1.4寸小屏幕,烧录一下例程,看看屏幕显示是否正常就可以确定是哪款液晶。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

发表于 2013-12-17 14:07:30 | 显示全部楼层
抢沙发~给哥们顶一个
回复 支持 反对

使用道具 举报

发表于 2013-12-17 15:49:15 | 显示全部楼层
♂荻夜 发表于 2013-12-17 14:07
抢沙发~给哥们顶一个

最热心的会员
回复 支持 反对

使用道具 举报

发表于 2013-12-17 17:11:11 | 显示全部楼层
Admin 发表于 2013-12-17 15:49
最热心的会员

哈哈,以后在山外哥店买东西的时候打折哦。。。。
回复 支持 反对

使用道具 举报

发表于 2013-12-25 13:34:49 | 显示全部楼层
问下山外哥,用flexbus显示图片最快速度可以到多少帧呢?比如4.3寸屏,MCU 100MHz的速度。
回复 支持 反对

使用道具 举报

发表于 2013-12-25 13:58:18 | 显示全部楼层
pycbg 发表于 2013-12-25 13:34
问下山外哥,用flexbus显示图片最快速度可以到多少帧呢?比如4.3寸屏,MCU 100MHz的速度。

还没测试过,速度跟 flexbus 总线频率有关的
回复 支持 反对

使用道具 举报

发表于 2013-12-25 14:38:15 | 显示全部楼层
8080和6800有什么区别呢?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-12-26 20:05:06 | 显示全部楼层
pycbg 发表于 2013-12-25 14:38
8080和6800有什么区别呢?

通信时序有点不一样,差别不大,百度一下容易找到差别
回复 支持 反对

使用道具 举报

发表于 2013-12-27 12:03:45 | 显示全部楼层
山外メ雲ジ 发表于 2013-12-26 20:05
通信时序有点不一样,差别不大,百度一下容易找到差别

我移植了flexbus的驱动,可发现FB_RW的引脚一直都是低电平。这是怎么回事呢
回复 支持 反对

使用道具 举报

发表于 2013-12-27 12:07:12 | 显示全部楼层
pycbg 发表于 2013-12-27 12:03
我移植了flexbus的驱动,可发现FB_RW的引脚一直都是低电平。这是怎么回事呢

液晶显示,如果仅仅是显示数据,那么操作步骤 仅仅 W
如果读取液晶显示内容,才是 R

W 是低电平,R 是 高电平
回复 支持 反对

使用道具 举报

发表于 2013-12-27 12:12:24 | 显示全部楼层
Admin 发表于 2013-12-27 12:07
液晶显示,如果仅仅是显示数据,那么操作步骤 仅仅 W
如果读取液晶显示内容,才是 R

是不是只支持ILI9341 的控制器呢?SSD1963控制器支持吗?我现在连了SSD1963来驱动LCD的。之前用了GPIO口模拟时序,发现每写入一次16bit数据都是通过上拉和下拉一次WR电平才实现的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-12-27 12:13:37 | 显示全部楼层
pycbg 发表于 2013-12-27 12:12
是不是只支持ILI9341 的控制器呢?SSD1963控制器支持吗?我现在连了SSD1963来驱动LCD的。之前用了GPIO口模 ...

8080 的 可以 直接 用我们的 flexbus 初始化 代码
6800 需要修改一下 控制管脚
回复 支持 反对

使用道具 举报

发表于 2013-12-27 12:19:13 | 显示全部楼层
山外メ雲ジ 发表于 2013-12-27 12:13
8080 的 可以 直接 用我们的 flexbus 初始化 代码
6800 需要修改一下 控制管脚

我配置的的确是8080模式,可还是没有东西显示,之前用GPIO模拟可以显示的
回复 支持 反对

使用道具 举报

发表于 2013-12-27 12:21:26 | 显示全部楼层
pycbg 发表于 2013-12-27 12:19
我配置的的确是8080模式,可还是没有东西显示,之前用GPIO模拟可以显示的

那按照 我们 原理图 接 IO 口就好。

注意配置 flexbus 频率

另外,液晶初始化寄存器配置这些,都得换 成 自己液晶的 寄存器配置
回复 支持 反对

使用道具 举报

发表于 2013-12-27 13:43:28 | 显示全部楼层
Admin 发表于 2013-12-27 12:21
那按照 我们 原理图 接 IO 口就好。

注意配置 flexbus 频率

是按原理图接的,液晶初始化配置也是按我之前能显示的那个配置的。。。可还是不能显示东西啊。
回复 支持 反对

使用道具 举报

发表于 2014-1-3 09:33:17 | 显示全部楼层
我想说能不能用学51时用到的12864液晶,资源要利用起来嘛
回复 支持 反对

使用道具 举报

发表于 2014-1-3 10:30:06 | 显示全部楼层
爱神风玲-★ 发表于 2014-1-3 09:33
我想说能不能用学51时用到的12864液晶,资源要利用起来嘛

12864 太大了吧,不适合 安装到小车上跑,太重了
回复 支持 反对

使用道具 举报

发表于 2014-1-4 10:33:50 | 显示全部楼层
山外哥,有个问题,就是NRF24l01里面的MOSI,MISO,不需要对其管脚进行初始化吗?刚刚开始了解这方面的东西,求教了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-1-5 13:41:01 | 显示全部楼层
ゞ從此消失╭ァ 发表于 2014-1-4 10:33
山外哥,有个问题,就是NRF24l01里面的MOSI,MISO,不需要对其管脚进行初始化吗?刚刚开始了 ...

这个 模块 本来 就是 SPI 通信。

我们初始化 K60 SPI 的时候,就 初始化 了这些管脚,有专门的管脚配置复用
回复 支持 反对

使用道具 举报

发表于 2014-1-11 20:52:47 | 显示全部楼层
Admin 发表于 2013-12-17 13:32
LCD_ILI9341 就是 3.2寸 的大屏幕

#define LCD_ILI9341     1
#define LCD_ST7735S     2       //LCD_ST7735S 与 LCD_ST7735R 外观一样,寄存器操作略有不同
#define LCD_ST7735R     3       //

#define USE_LCD         LCD_ST7735S             //选择使用的 LCD

我切换了之后就报错了,,更本就不能下载啊。
回复 支持 反对

使用道具 举报

发表于 2014-1-12 10:34:17 | 显示全部楼层
叫我娄月半子 发表于 2014-1-11 20:52
#define LCD_ILI9341     1
#define LCD_ST7735S     2       //LCD_ST7735S 与 LCD_ST7735R 外观一样, ...

只有 书后面的例程才可以切换。书前面的例程,就是第x章的例程,都不能下载的
回复 支持 反对

使用道具 举报

发表于 2014-2-12 09:26:44 | 显示全部楼层
我也切换了,程序下载进去了,可是不出效果啊,只有背光亮,还需要修改什么?
回复 支持 反对

使用道具 举报

发表于 2014-2-24 19:53:54 | 显示全部楼层

我也切换了,程序下载进去了,可是不出效果啊,只有背光亮,还需要修改什么?

点评

我的也是 不知道是不是壞的  发表于 2014-3-12 22:14
我的也是 不知道是不是壞的  发表于 2014-3-12 22:14
回复 支持 反对

使用道具 举报

发表于 2014-4-13 14:06:55 | 显示全部楼层
我们的也是
回复 支持 反对

使用道具 举报

发表于 2014-6-3 17:28:11 | 显示全部楼层
走过路过,不能错过
回复 支持 反对

使用道具 举报

发表于 2014-6-6 08:41:14 | 显示全部楼层
在哪修改液晶不同的分辨率?
数据显示时的位置,要不要修改?
求指教。
回复 支持 反对

使用道具 举报

发表于 2014-10-10 08:18:41 | 显示全部楼层
下课了再回去研究吧,一直液晶都只有背光亮,之前忙其他的没多注意
来自安卓客户端来自安卓客户端
回复 支持 反对

使用道具 举报

发表于 2014-10-10 20:12:10 | 显示全部楼层
我用的是大液晶。直接烧录配套L的CD激光计时器的程序,液晶不能正常显示,花屏的样子,隐约看得到数字。
然后我直接烧录出厂固件,液晶可以正常显示。
于是我又去找了MK60_config.h文件里面的定义。
#define LCD_ILI9341     1
#define LCD_ST7735S     2       //LCD_ST7735S 与 LCD_ST7735R 外观一样,寄存器操作略有不同
#define LCD_ST7735R     3       //

#define USE_LCD         LCD_ILI9341             //选择使用的 LCD

发现也没错误,那请问为什么不能显示?烧录任何关于LCD的程序都不能显示。
回复 支持 反对

使用道具 举报

发表于 2014-10-13 21:47:17 | 显示全部楼层
LCD_ST7735R这块液晶直接对其使用时需要用到哪些.C文件和.h文件?有点乱,急!!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-10-13 21:49:13 | 显示全部楼层
LLX 发表于 1413208037
LCD_ST7735R这块液晶直接对其使用时需要用到哪些.C文件和.h文件?有点乱,急!!
带ST7735R字眼的文件,搜索一下就找到

如果你是用我们的工程,不需要在乎底层代码,直接调用我们的顶层LCD函数
来自PC客户端 来自PC客户端
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-10-13 22:08:56 | 显示全部楼层
LLX 发表于 1413208037
LCD_ST7735R这块液晶直接对其使用时需要用到哪些.C文件和.h文件?有点乱,急!!
工程里,带ST7735R 的文件名就是了。

如果你使用我们的底层,不需要关注底层的实现,直接用LCD的顶层API接口即可。
来自PC客户端 来自PC客户端
回复 支持 反对

使用道具 举报

发表于 2014-10-14 20:10:21 | 显示全部楼层
山外メ雲ジ 发表于 2014-10-13 22:08
工程里,带ST7735R 的文件名就是了。

如果你使用我们的底层,不需要关注底层的实现,直接用LCD的顶层API ...

旧版本的库用习惯了,我想移植到旧版本里可以吗?添加了所需的头文件和.c文件,编译出现好多错误!
还有里面涉及的新版本的头文件common.h和MK60_gpio.h,在旧库里面,我是不是把它修改成
#include "gpio.h"旧可以了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-10-14 20:17:05 | 显示全部楼层
LLX 发表于 1413288621
旧版本的库用习惯了,我想移植到旧版本里可以吗?添加了所需的头文件和.c文件,编译出现好多错误!
还有里面涉及的新版本的头文件common.h和MK60_gpio.h,在旧库里面,我是不是把它修改成
#include "gpio.h"旧可以了
新旧函数有所不同的,需要修改一下函数,旧库也有相关的小液晶代码,你直接用旧库的代码就好。

ST7735S 和 ST7735R ,仅仅是开窗函数不同。

旧版本开窗函数,在\src\drivers\lcd\BL144002.c 的 void LCD_PTLON(Site_type site,Size_type size) 函数。

参考新库,修改一下即可。

  1. /*!
  2. *  @brief      设置 ST7735R 开窗
  3. *  @param      site        左上角坐标位置
  4. *  @param      size        开窗大小
  5. *  @since      v5.0
  6. */
  7. void LCD_ST7735R_ptlon(Site_t site, Size_t size)
  8. {

  9.     if(st7735r_dir&0x01)
  10.     {
  11.         site.x += 32;     //液晶需要偏移一下,避免四周看不到的行
  12.         //site.y += 2;
  13.     }
  14.     else
  15.     {
  16.         //site.x += 2;     //液晶需要偏移一下,避免四周看不到的行
  17.         site.y += 32;
  18.     }

  19.     LCD_ST7735R_WR_8CMD(0x2a);   //Partial Mode On  局部模式
  20.     LCD_ST7735R_WR_8DATA((uint8)(site.x >> 8)); //高8位 Sx
  21.     LCD_ST7735R_WR_8DATA((uint8)site.x);   //低8位 Sx
  22.     LCD_ST7735R_WR_8DATA((uint8)((site.x + size.W - 1) >> 8));
  23.     LCD_ST7735R_WR_8DATA((uint8)(site.x + size.W - 1));

  24.     LCD_ST7735R_WR_8CMD(0x2B);//Row Address Set  行地址设置
  25.     LCD_ST7735R_WR_8DATA((uint8)(site.y >> 8));
  26.     LCD_ST7735R_WR_8DATA((uint8)site.y);
  27.     LCD_ST7735R_WR_8DATA((uint8)((site.y + size.H - 1) >> 8));
  28.     LCD_ST7735R_WR_8DATA((uint8)(site.y + size.H - 1));

  29. }

来自PC客户端 来自PC客户端
回复 支持 反对

使用道具 举报

发表于 2014-10-14 20:36:36 | 显示全部楼层
山外メ雲ジ 发表于 2014-10-14 20:17
新旧函数有所不同的,需要修改一下函数,旧库也有相关的小液晶代码,你直接用旧库的代码就好。

ST7735S  ...

LCD有教程讲解一下就好了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-10-14 20:52:50 | 显示全部楼层
LLX 发表于 2014-10-14 20:36
LCD有教程讲解一下就好了

最近写着教程,会讲这方面知识。书也有讲lcd的。
来自安卓客户端来自安卓客户端
回复 支持 反对

使用道具 举报

发表于 2014-10-20 16:41:22 | 显示全部楼层
山外メ雲ジ 发表于 2014-10-14 20:52
最近写着教程,会讲这方面知识。书也有讲lcd的。

是要出书吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-10-20 17:26:53 | 显示全部楼层

pdf教程,不过还在制作中。
回复 支持 反对

使用道具 举报

发表于 2014-10-20 17:32:00 | 显示全部楼层
山外メ雲ジ 发表于 2014-10-20 17:26
pdf教程,不过还在制作中。

是《轻松玩转ARM Cortex-M4 微控制器》这本书吗
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-10-20 17:34:11 | 显示全部楼层
LLX 发表于 2014-10-20 17:32
是《轻松玩转ARM Cortex-M4 微控制器》这本书吗

这本书已经发售了,可以到淘宝店或各大网上书店购买
回复 支持 反对

使用道具 举报

发表于 2015-1-31 00:54:09 | 显示全部楼层
山外メ雲ジ 发表于 2014-10-13 21:49
带ST7735R字眼的文件,搜索一下就找到

如果你是用我们的工程,不需要在乎底层代码,直接调用我们的顶层L ...

山外哥,小液晶我想不用PTC0-PTC7做并行数据,用PTC8-PTC15行不行,如果可以代码在哪里。。。搞了半天还没搞成
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-1-31 12:12:27 | 显示全部楼层
khjioim2008 发表于 2015-1-31 00:54
山外哥,小液晶我想不用PTC0-PTC7做并行数据,用PTC8-PTC15行不行,如果可以代码在哪里。。。搞了半天还 ...

改头文件配置和初始化函数。
来自安卓客户端来自安卓客户端
回复 支持 反对

使用道具 举报

发表于 2015-1-31 14:35:49 | 显示全部楼层
山外メ雲ジ 发表于 2015-1-31 12:12
改头文件配置和初始化函数。


初始化函数是这个吗,这样改成PTD0不行啊,其他引脚暂时没改山外哥。。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

发表于 2015-3-5 14:41:17 | 显示全部楼层
BL144002这款屏怎么用啊?有没有详细点的教程或者资料?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-3-5 14:43:08 | 显示全部楼层
蚂蚁呀嘿 发表于 1425537677
BL144002这款屏怎么用啊?有没有详细点的教程或者资料?
你那款不是我们的屏幕吧?
来自PC客户端 来自PC客户端
回复 支持 反对

使用道具 举报

发表于 2015-3-5 15:15:01 | 显示全部楼层
山外メ雲ジ 发表于 2015-3-5 14:43
你那款不是我们的屏幕吧?

是原来野火小霸王上的屏幕
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-3-5 16:00:20 | 显示全部楼层
蚂蚁呀嘿 发表于 2015-3-5 15:15
是原来野火小霸王上的屏幕

除了排针接口跟现在小液晶不同。代码用法跟现在是一样的。
来自安卓客户端来自安卓客户端
回复 支持 反对

使用道具 举报

发表于 2015-3-5 17:51:27 | 显示全部楼层
山外メ雲ジ 发表于 2015-3-5 16:00
除了排针接口跟现在小液晶不同。代码用法跟现在是一样的。

好的,谢谢山外哥
回复 支持 反对

使用道具 举报

发表于 2015-3-20 14:36:58 | 显示全部楼层
cool,一键切换,就是方便
回复 支持 反对

使用道具 举报

发表于 2015-4-3 01:17:29 | 显示全部楼层
LCD显示不成功,8080一定是用FLEX总线?
回复 支持 反对

使用道具 举报

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

本版积分规则

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