找回密码
 立即注册
搜索
热搜: RA8889 RA8876 RA8875
查看: 709|回复: 0

51单片机(STC8H8K64U/STC8051U34K64)_RA8889_硬件SPI4_参考代码(v1.3)

[复制链接]

50

主题

3

回帖

623

积分

管理员

积分
623
QQ
发表于 2024-7-16 11:04:40 | 显示全部楼层 |阅读模式

本篇介绍单片机使用硬件SPI-4方式控制RA8889驱动彩屏。
提供STC8H8K64USTC8051U34K64的参考代码。


【硬件部份】STC8H8K64U/STC8051U34K64 + RA8889开发板 + 7寸TFT 800x480


一、STC这两款单片机均提供多组硬件SPI接口,本范例采用P2口的硬件SPI接口如下红框
(1)主控MCU: STC8H8K64U


实物连接图,请看接线标识


(2)主控MCU: STC8051U34K64


实物连接图,请看接线标识



二、单片机与RA8889的引脚接线图:
注意MCU的输入SDI(即MISO)必须接RA8889的输出DB[5] SDO;MCU的输出SDO(MOSI)必须接RA8889的输入DB[6](SDI)。


三、实物展示(STC8H8K64U):




【软件部份】

一、IO口配置:
(1)STC8H8K64U使用P2.4 MISO作为输入:
  1. P2M0 = 0xef; P2M1 = 0x00;         //P2.4(MISO)设置为双向口,其它为推挽模式(使用P2.SPI)
复制代码

(2)STC8051U34K64使用P2.6 MISO作为输入:
  1. P2M0 = 0xbf; P2M1 = 0x00;                //P2.6(MISO)设置为双向口,其它为推挽模式(使用P2.SPI)
复制代码


二、SPI通信函数在RA8889_MCU_IF.c和头文件RA8889_MCU_IF.h这两份文件,这里进行重点说明:
(1)在初始化函数SPI4_Init()中,SPI时钟频率的选择,先选择低速16T,待通信成功之后可将速度调快:
  1. SPCTL = (SPCTL & ~3) | 2;   //SPI 时钟频率选择, 0: 4T, 1: 8T,  2: 16T,  3: 2T  (时钟频率先调整到最慢,再依照自己的系统调整)
复制代码

(2)SPI接口选择,设定P_SW1,根据硬件接线选择对应的通信组(STC8051U34K64的接口与STC8H8K64U接口定义有不同,请注意!):
  1. P_SW1 = (P_SW1 & ~(3<<2)) | (1<<2);     //STC8H: IO口选择P2. 0:P1.2/P5.4 P1.3 P1.4 P1.5  ||  1:P2.2 P2.3 P2.4 P2.5  ||  2:P5.4 P4.0 P4.1 P4.3  ||  3:P3.5 P3.4 P3.3 P3.2
复制代码
  1. P_SW1 = (P_SW1 & ~(3<<2)) | (1<<2);     //STC8051U: IO口选择P2. 0:P1.4 P1.5 P1.6 P1.7  ||  1:P2.4 P2.5 P2.6 P2.7  ||  2:P4.0 P4.1 P4.2 P4.3  ||  3:P3.5 P3.4 P3.3 P3.2
复制代码

本帖子中包含更多资源

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

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

本版积分规则

QQ|Archiver|手机版|小黑屋|Lcdvision Technology ( 苏ICP备10203891号 )

GMT+8, 2024-12-12 14:44 , Processed in 0.102427 second(s), 28 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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