找回密码
 立即注册
查看: 1046|回复: 3

AI8051U_8H8K64U_RA8889驱动TFT彩屏_硬件I2C通信_参考代码(v1.3)

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2024-07-16 17:00:04

5

主题

14

回帖

375

积分

中级会员

积分
375
发表于 2024-7-22 10:14:12 | 显示全部楼层 |阅读模式
本篇介绍单片机使用硬件I2C方式控制RA8889驱动彩屏。
提供 8H8K64U AI8051U 的参考代码。


文章导引:

(1)STC8H8K64U搭配RA8889如何控制TFT彩屏(附SPI4源码--软件模拟方式)
(2)51单片机(STC8H8K64U/STC8051U34K64)_RA8889驱动TFT彩屏_软件模拟I2C通信(源码v1.3)
(3)51单片机(STC8H8K64U/STC8051U34K64)_RA8889_8080参考代码(v1.3)
(4)51单片机(STC8H8K64U/STC8051U34K64)_RA8889驱动大屏_硬件SPI4_参考代码(v1.3)
(5)51单片机(STC8H8K64U/STC8051U34K64)_RA8889驱动TFT彩屏_硬件I2C通信_参考代码(v1.3)

单片机实际不限,这里采用的STC最新、主推的型号,比如STC8H8K64USTC8051U34K64进行实验测试,您可以换用不同型号。目前测试这两个系列,显示速度均相当不错,软件设计也是极为简单。各篇文章下方均提供源码供参考下载。

RA8889是一款瑞佑科技推出的高性能液晶控制芯片,单片机下指令即可,可以驱动最高1366x768等液晶屏,其内建JEPG解码引擎,图形驱动引擎,因此显示速度相当不错,是单片机扩展彩屏UI的好搭档。也有低阶的型号比如RA8871M,RA8873M等,可根据实际需求选择。RA8889功能方框图:

RA8889方框图_new.png


1. 实物连接图:STC8H8K64U+RA8889开发板,使用P2口I2C接口:
I2C实物连接图min.jpg


2.实物连接图:STC8051U34K64+RA8889开发板,使用P2口I2C接口:
硬件I2C_实物连接图min.jpg


3.RA8889的I2C电路连接图:
I2C电路连接图.png


4.RA8889开发板的接口说明,I2C接口主要使用到DB6(SDA)和DB7(SCK):
RA8889开发板连接器接口引脚定义.png


5.单片机的引脚图:STC8H8K64U
STC8H8K64U引脚图_I2C.png


6.单片机的引脚图:STC8051U34K64
STC8051U34K64引脚图_I2C.png


7. STC8H8K64U与RA8889开发板详细连接说明:
STC8H8K64U_RA8889_硬件I2C_实物连接图min.jpg


8. STC8051U34K64与RA8889开发板详细连接说明:
STC8051U_RA8889_硬件I2C_实物连接图min.jpg



【软件部份】

9. STC8H8K64U与RA8889的连接:
≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡STC8H8K64U硬件接线≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
[P2.4]I2C_SDA        <---> 接RA8889的SDA        DB[6] (XSDA)
[P2.5]I2C_SCK        ----> 接RA8889的SCL        DB[7] (XSCL)
[P2.3]GPIO                ----> RA8889的复位        RA8889_RST
≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
在RA8889_MCU_IF.h文件中进行配置定义:
  1. /* I2C IO口配置*/
  2. sbit I2C_SDA  = P2 ^ 4;         //I2C数据线(接入RA8889/RA8876之DB6)
  3. sbit I2C_SCK  = P2 ^ 5;         //I2C时钟(接入RA8889/RA8876之DB7)
  4. sbit RA8889_RST  = P2 ^ 3;         //RA8889/RA8876复位脚
复制代码


10. STC8051U34K64与RA8889的连接:
≡≡≡≡≡≡≡≡≡≡≡≡≡≡STC8051U34K64硬件接线≡≡≡≡≡≡≡≡≡≡≡≡≡≡
[P2.3]I2C_SDA        <---> 接RA8889的SDA        DB[6] (XSDA)
[P2.4]I2C_SCK        ----> 接RA8889的SCL        DB[7] (XSCL)
[P2.2]GPIO                ----> RA8889的复位        RA8889_RST
≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
在RA8889_MCU_IF.h文件中进行配置定义:
  1. /* I2C IO口配置*/
  2. sbit I2C_SDA  = P2 ^ 3;         //I2C数据线(接入RA8889/RA8876之DB6)
  3. sbit I2C_SCK  = P2 ^ 4;         //I2C时钟(接入RA8889/RA8876之DB7)
  4. sbit RA8889_RST  = P2 ^ 2;         //RA8889/RA8876复位脚
复制代码


11. STC8H8K64U配置IO口:
在main.c中配置I2C的IO口:
  1. P2M0 = 0xff; P2M1 = 0x30;                //设置P2.4~2.5为开漏【注意:这两脚需要上拉电阻 1~10K】,其它为推挽模式
复制代码


12. STC8051U34K64配置IO口:
在main.c中配置I2C的IO口:
  1. P2M0 = 0xff; P2M1 = 0x18;                //设置P2.3~2.4为开漏【注意:这两脚需要上拉电阻 1~10K】,其它为推挽模式
复制代码


13. STC8H8K64U的I2C初始化:
在RA8889_MCU_IF.c文件中设定I2C初始化:
  1. /* I2C初始化 */
  2. void I2C_Initial(void)
  3. {
  4.       P_SW2 |= 0x80;                                 //扩展寄存器(XFR)访问使能
  5.       P_SW2 |= 0x10;                                //I2C选择P2.5/SCK,P2.4/SDA,        00:P1.5,P1.4; 01:P2.5,P2.4; 10:P7.7,P7.6; 11:P3.2,P3.3
  6.       I2CCFG = 0xE0;                                //使能I2C + 主机模式 + MSSPEED[5:0]=100000b=32,I2C总线速度:Fosc/2/(MSSPEED*2+4),在12MHz时当前通信速度约88KHz
  7.       I2CMSST = 0x00;                                //I2C主机状态寄存器清0
  8. }
复制代码


14. STC8051U34K64的I2C初始化:
在RA8889_MCU_IF.c文件中设定I2C初始化:
  1. /* I2C初始化 */
  2. void I2C_Initial(void)
  3. {
  4.       P_SW2 |= 0x80;                                 //扩展寄存器(XFR)访问使能
  5.       P_SW2 |= 0x00;                                //I2C选择P2.4/SCK,P2.3/SDA,        00:P2.4,P2.3; 01:P1.5,P1.4; 10:N.A.; 11:P3.2,P3.3
  6.       I2CCFG = 0xE0;                                //使能I2C + 主机模式 + MSSPEED[5:0]=32。 I2C总线速度:Fosc/2/(MSSPEED*2+4),在12MHz时当前通信速度约88KHz
  7.       I2CPSCR = 0x00;                                //I2C时钟分频高位 MSSPEED[13:6]=0
  8.       I2CMSST = 0x00;                                //I2C主机状态寄存器清0
  9. }
复制代码

***注意:二者对I2C接口定义不同,寄存器要求也略微不同,故初始化有轻微差异,实际使用时务必要注意!同时头文件也要注意引用。


15. RA8889开发板的补充说明:
(1)PS[2:0]跳线,I2C通信方式请配置为11x:
I2C_PS11x跳线.png

(2)要将RA8889_Demo文件夹内的RA8889_Demo_F103_8080_SPI_floating_firmware.hex下载到开发板上,通过开发板上的MCU将RA8889的MCU接口配置为I2C,同时将I2C的硬件地址配置为:111111。



【源码下载:硬件I2C通信方式】
STC8H_RA8889_I2C_HW_v1.3.7z (12.08 MB, 下载次数: 112)
STC8051U_RA8889_I2C_HW_v1.3.7z (14.57 MB, 下载次数: 101)


3 喜欢他/她就送朵鲜花吧,赠人玫瑰,手有余香!
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:218
  • 最近打卡:2025-05-02 10:33:59
已绑定手机

2

主题

58

回帖

819

积分

高级会员

积分
819
发表于 2024-8-21 08:54:38 | 显示全部楼层
是不是有个地方代码写错了?
突然发现用户名改不了>-!
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2024-07-16 17:00:04

5

主题

14

回帖

375

积分

中级会员

积分
375
发表于 2024-8-26 09:39:35 | 显示全部楼层
是在*** 发表于 2024-8-21 08:54
是不是有个地方代码写错了?

哪里的,能贴上来看看吗?
代码都实际跑过验证没问题的。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:218
  • 最近打卡:2025-05-02 10:33:59
已绑定手机

2

主题

58

回帖

819

积分

高级会员

积分
819
发表于 2024-8-29 11:24:04 | 显示全部楼层
bw*** 发表于 2024-8-26 09:39
哪里的,能贴上来看看吗?
代码都实际跑过验证没问题的。

可能是我看错了吧,或许是注释的。
突然发现用户名改不了>-!
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 20:15 , Processed in 0.120652 second(s), 72 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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