久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3116|回復: 12
打印 上一主題 下一主題
收起左側

51單片機(STC8H8K64U/STC8051U34K64)_RA8889驅動TFT彩屏_硬件SPI4_參考代碼(v1.3)

  [復制鏈接]
跳轉到指定樓層
樓主
本帖最后由 harchy 于 2024-7-22 15:26 編輯

本篇介紹單片機使用硬件SPI-4方式控制RA8889驅動彩屏。
提供STC8H8K64U和STC8051U34K64的參考代碼。

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

單片機實際不限,這里采用的STC最新、主推的型號,比如STC8H8K64U、STC8051U34K64進行實驗測試,您可以換用不同型號。目前測試這兩個系列,顯示速度均相當不錯,軟件設計也是極為簡單。各篇文章下方均提供源碼供參考下載。
RA8889是一款瑞佑科技推出的高性能液晶控制芯片,單片機下指令即可,可以驅動最高1366x768等液晶屏,其內建JEPG解碼引擎,圖形驅動引擎,因此顯示速度相當不錯,是單片機擴展彩屏UI的好搭檔。也有低階的型號比如RA8871M,RA8873M等,可根據實際需求選擇。RA8889功能方框圖:



1. 實物連接圖:STC8H8K64U+RA8889開發板,使用P2口SPI接口:



2.實物連接圖:STC8051U34K64+RA8889開發板,使用P2口SPI接口:



3.RA8889的SPI-4電路連接圖:



4.RA8889開發板的接口說明,SPI接口主要使用到DB4(CS),DB5(SDO),DB6(SDI)和DB7(SCK):



5.單片機的引腳圖:STC8H8K64U:



6.單片機的引腳圖:STC8051U34K64:



7. STC8H8K64U與RA8889開發板詳細連接說明:



8. STC8051U34K64與RA8889開發板詳細連接說明:





【軟件部份】

9. STC8H8K64U與RA8889的連接:
≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡STC8H8K64U硬件接線≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
[P2.1] GPIO                ----> RA8889的復位        RA8889_RST
[P2.2] SPI_SS        ----> RA8889的片選        DB[4] (XnSCS)
[P2.3] SPI_MOSI        ----> RA8889的SDI         DB[6] (XSSDI)
[P2.4] SPI_MISO        <---- RA8889的SDO         DB[5] (XSSDO)
[P2.5] SPI_SCK        ----> RA8889的SCK         DB[7] (XSSCL)
≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
在RA8889_MCU_IF.h文件中進行配置定義:
  1. /* P2.SPI-4(硬件) IO口配置*/
  2. sbit RA8889_RST        = P2 ^ 1;                // Reset RA8889                                (通過IO口接到RA8889/RA8876進行硬件復位)
  3. sbit SPI_SS           = P2 ^ 2;                // Slave Select                                (RA8889片選)
  4. sbit SPI_MISO                = P2 ^ 3;                // Master In Slave Out(接RA8889的SDO)
  5. sbit SPI_MOSI                = P2 ^ 4;                // Master Out Slave In(接RA8889的SDI)
  6. sbit SPI_SCK                = P2 ^ 5;                // Serial Clock
復制代碼


10. STC8051U34K64與RA8889的連接:
≡≡≡≡≡≡≡≡≡≡≡≡≡≡STC8051U34K64硬件接線≡≡≡≡≡≡≡≡≡≡≡≡≡≡
[P2.3] GPIO                ----> RA8889的復位        RA8889_RST
[P2.4] SPI_SS        ----> RA8889的片選        DB[4] (XnSCS)
[P2.5] SPI_MOSI        ----> RA8889的SDI         DB[6] (XSSDI)
[P2.6] SPI_MISO        <---- RA8889的SDO         DB[5] (XSSDO)
[P2.7] SPI_SCK        ----> RA8889的SCK         DB[7] (XSSCL)
≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
在RA8889_MCU_IF.h文件中進行配置定義:
  1. /* P2.SPI-4(硬件) IO口配置*/
  2. sbit RA8889_RST        = P2 ^ 3; // Reset RA8889                                        (通過IO口接到RA8889/RA8876進行硬件復位)
  3. sbit SPI_SS                        = P2 ^ 4; // Slave Select                                        (RA8889片選)
  4. sbit SPI_MOSI         = P2 ^ 5; // Master Out Slave In        (接RA8889的SDI)
  5. sbit SPI_MISO         = P2 ^ 6; // Master In Slave Out        (接RA8889的SDO)
  6. sbit SPI_SCK          = P2 ^ 7; // Serial Clock
復制代碼


11. STC8H8K64U配置IO口:
在main.c中配置SPI-4的IO口:
  1. P2M0 = 0xef; P2M1 = 0x00;         //P2.4(MISO)設置為雙向口,其它為推挽模式(使用P2.SPI)
復制代碼


12. STC8051U34K64配置IO口:
在main.c中配置SPI-4的IO口:
  1. P2M0 = 0xbf; P2M1 = 0x00;                //P2.6(MISO)設置為雙向口,其它為推挽模式(使用P2.SPI)
復制代碼


13. STC8H8K64U的SPI初始化:
在RA8889_MCU_IF.c文件中設定SPI初始化:
  1. * SPI-4 初始化 */
  2. void SPI4_Init()
  3. {
  4.     SPCTL |=  (1 << 7); //忽略 SS 引腳功能,使用 MSTR 確定器件是主機還是從機
  5.     SPCTL |=  (1 << 6); //使能 SPI 功能
  6.     SPCTL &= ~(1 << 5); //先發送/接收數據的高位( MSB)
  7.     SPCTL |=  (1 << 4); //設置主機模式
  8.     SPCTL |=  (1 << 3); //SCLK 空閑時為高電平,SCLK 的前時鐘沿為下降沿,后時鐘沿為上升沿
  9.     SPCTL |=  (1 << 2); //數據在 SCLK 的前時鐘沿驅動,后時鐘沿采樣
  10.     SPCTL = (SPCTL & ~3) | 2;   //SPI 時鐘頻率選擇, 0: 4T, 1: 8T,  2: 16T,  3: 2T  (時鐘頻率先調整到最慢,再依照自己的系統調整)

  11.     P_SW1 = (P_SW1 & ~(3<<2)) | (1<<2);     //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

  12.     SPSTAT = SPIF + WCOL;   //清0 SPIF和WCOL標志        
  13. }
復制代碼


14. STC8051U34K64的SPI初始化:
在RA8889_MCU_IF.c文件中設定SPI初始化:
  1. /* SPI-4 初始化 */
  2. void SPI4_Init()
  3. {
  4.     SPCTL |=  (1 << 7); //忽略 SS 引腳功能,使用 MSTR 確定器件是主機還是從機
  5.     SPCTL |=  (1 << 6); //使能 SPI 功能
  6.     SPCTL &= ~(1 << 5); //先發送/接收數據的高位( MSB)
  7.     SPCTL |=  (1 << 4); //設置主機模式
  8.     SPCTL |=  (1 << 3); //SCLK 空閑時為高電平,SCLK 的前時鐘沿為下降沿,后時鐘沿為上升沿
  9.     SPCTL |=  (1 << 2); //數據在 SCLK 的前時鐘沿驅動,后時鐘沿采樣
  10.     SPCTL = (SPCTL & ~3) | 2;   //SPI 時鐘頻率選擇, 0: 4T, 1: 8T,  2: 16T,  3: 2T  (時鐘頻率先調整到最慢,再依照自己的系統調整)

  11.     P_SW1 = (P_SW1 & ~(3<<2)) | (1<<2);     //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

  12.     SPSTAT = SPIF + WCOL;   //清0 SPIF和WCOL標志        
  13. }
復制代碼

***兩種MCU的SPI硬件接口定義不同,初始化有細微差異,初始化代碼大同小異,具體請查閱規格書。


15. RA8889開發板的補充說明:
(1)PS[2:0]跳線,SPI-4通信方式請配置為101:



(2)要將RA8889_Demo文件夾內的RA8889_Demo_F103_8080_SPI_floating_firmware.hex下載到開發板上,將開發板上的MCU與RA8889的連接引腳設定為floating模式,才可以通過外部MCU輸入控制RA8889。


【源碼下載:硬件SPI-4通信方式】
STC8H_RA8889_SPI4_HW_v1.3.7z (14.86 MB, 下載次數: 17)
STC8051U_RA8889_SPI4_HW_v1.3.zip (16.36 MB, 下載次數: 18)



關注我,帶你玩轉TFT彩屏!幫您輕松搞定UI界面的設計!

評分

參與人數 2黑幣 +30 收起 理由
digger + 15
jacky1124 + 15 很給力!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏4 分享淘帖 頂1 踩
回復

使用道具 舉報

沙發
ID:1042173 發表于 2024-7-23 07:12 | 只看該作者
刷新率如何?快不?
回復

使用道具 舉報

板凳
ID:65967 發表于 2024-8-5 09:50 | 只看該作者
QQQQ987 發表于 2024-7-23 07:12
刷新率如何?快不?

那是相當滴快!使用103主頻72MHz測試,800x480的圖片約100張/秒。速度取決于單片機
回復

使用道具 舉報

地板
ID:462629 發表于 2024-8-27 10:00 | 只看該作者
STC 有103?
回復

使用道具 舉報

5#
ID:433219 發表于 2024-8-28 11:33 | 只看該作者
RA8889  光芯片就要70¥多,,7寸TFT大概要50~70¥ 加pcb什么的,此方案合計成本估計150¥左右
回復

使用道具 舉報

6#
ID:65967 發表于 2024-9-23 20:50 | 只看該作者

這是舉例的,用ST的103測試結果。任何單片機都可以接進來點。
回復

使用道具 舉報

7#
ID:65967 發表于 2024-9-23 20:56 | 只看該作者
wkman 發表于 2024-8-28 11:33
RA8889  光芯片就要70¥多,,7寸TFT大概要50~70¥ 加pcb什么的,此方案合計成本估計150¥左右

沒有這么貴喔,要找官方咨詢。請進官方論壇去了解。
貴或者便宜都不是重點,重點在于這種方案能不能派得上用場。一味地追求價格也未必能讓您賺到錢,能用這種方案去接到項目才有意義。不妨礙都了解一下吧
回復

使用道具 舉報

8#
ID:97678 發表于 2024-9-24 07:47 | 只看該作者
可以提供你們的開發板原理圖和PCB嗎?
回復

使用道具 舉報

9#
ID:446175 發表于 2024-9-24 10:12 | 只看該作者
要是自己拿ESP32+LVGL+TFT來做怎樣,是否可行,感覺這樣成本更低,還支持藍牙或WIFI
回復

使用道具 舉報

10#
ID:65967 發表于 2024-9-24 22:58 | 只看該作者
jovew 發表于 2024-9-24 07:47
可以提供你們的開發板原理圖和PCB嗎?

某一個寶搜RA8889開發板。都有的
回復

使用道具 舉報

11#
ID:65967 發表于 2024-9-24 23:09 | 只看該作者
szwlxj 發表于 2024-9-24 10:12
要是自己拿ESP32+LVGL+TFT來做怎樣,是否可行,感覺這樣成本更低,還支持藍牙或WIFI

成本上講你這種會更低。只要會用SoC芯片直接推彩屏,成本會是最低的,畢竟省了控制芯片了。
LVGL優點是圖形庫豐富,作UI較省心不需要自己設計太多圖片。缺點是刷圖可能慢點。單片機速度要快,軟件復雜一些,使用門檻較高。
用單片機+專用控制芯片(RA8889等)是軟件簡單,入手快,使用門檻低;但成本會高點,主要用于工業行業,
各有優缺,大咖們自由取舍哈。
回復

使用道具 舉報

12#
ID:65967 發表于 2024-10-17 15:49 | 只看該作者
STC8H8K64U/STC32G12K128開發板:
該單片機小紅板可以直接套接在RA8889/RA6809的開發板上,通過USB可直接下載程序,極其簡便!

RA6809開發板(RA8889縮小版本):
和上方的單片機紅板可以直接扣接使用,外接一片4.3寸或者7寸彩屏,那簡直不要太方便了!



程序下載可使用STC官方下載軟件:免費、好用、功能強大。。



回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 成人精品久久 | 中文字幕一区在线观看视频 | 在线免费观看毛片 | 午夜影院网站 | 99视频免费在线观看 | 国产成人免费视频网站视频社区 | 日韩伦理一区二区 | 在线日韩精品视频 | 国产精品美女久久久久久久网站 | 成人在线视 | 精品一区二区不卡 | 高清人人天天夜夜曰狠狠狠狠 | 亚洲导航深夜福利涩涩屋 | 国产精品久久久99 | 黄色a视频 | 伊人网在线看 | 99精品久久99久久久久 | 精品视频在线播放 | 欧美日韩高清免费 | 日本不卡一区二区三区在线观看 | 国产综合精品 | av电影手机版 | 精品亚洲一区二区三区四区五区高 | 成人在线视频看看 | 成人福利影院 | 亚洲精品乱码久久久久久9色 | 亚洲一区二区三区在线 | 日韩精品久久一区二区三区 | 天天曰夜夜操 | 99国产精品久久久久 | 亚洲 精品 综合 精品 自拍 | 欧美精品在线播放 | 九九久久国产精品 | 精品毛片视频 | 一区二区在线视频 | 自拍偷拍第一页 | 九九亚洲 | 中文字幕免费中文 | 亚洲另类视频 | 美日韩免费 | 日韩高清中文字幕 |