51單片機驅動控制彩屏系列講座
第二講:單片機STC89C52+RA8889驅動控制彩屏 代碼移植介紹
一、RA8889核心文件有四個,分別是:
文件 | 說明 |
---|---|
RA8889.c | 底層API程序 |
RA8889_API.c | 用戶層API程序(可選) |
RA8889_MCU_IF.c | MCU通信函數(shù) |
UserDef.h | 參數(shù)配置:屏參、頻率等 |
重點要移植的代碼是RA8889.c,這份程序可以根據(jù)功能需求進行裁切移植,而RA8889_API.c這份是API接口程序,代碼多,根據(jù)實際功能需求進行裁切。RA8889_MCU_IF.c則可以根據(jù)實際通信方式進行選擇裁切。
UserDef.h 配置相關參數(shù)、宏定義,另外還有一份delay.c,這里的延時函數(shù)需要用戶根據(jù)自己的主頻進行調整。根據(jù)51單片機,移植好了核心代碼放在 RA8889_01_Kernel 文件架里面:
上一講已針對51基礎功能進行了基礎移植,并根據(jù)51單片機進行優(yōu)化,該代碼使用的是AT070TN92兼容屏,若您手上的液晶屏是其它型號,要變更屏的參數(shù)配置Set_LCD_Panel(),不清楚可以在本bbs論壇留言。
使用Keil來編輯時,程序添加到項目中:
路徑包含:
二、單片機僅需要做三步:
/* SPI初始化 */
SPI4_Init();
/* RA8889硬件復位 */
SPI_RST = 1;
delay_ms(1);
SPI_RST = 0;
delay_ms(1);
SPI_RST = 1;
/* RA8889初始化 */
RA8889_Initial();
這樣初始化也就做完了,接下來單片機就可以開始繪圖了。
三、繪圖和顯示文字:
- 下方代碼演示顏色填充,根據(jù)函數(shù)名稱不難理解,這些函數(shù)存放在RA8889_51.c里面:
/* 畫矩形填充 */
Foreground_color_16M(0x0);
Square_Start_XY(0,0);
Square_End_XY(799,479);
Start_Square_Fill();
RA8889內建圖形驅動引擎,可以繪制各種幾何圖形:方形,三角形,圓形,橢圓形等等,您可以根據(jù)需求再從RA8889標準參考程序里面找到RA8889.c,根據(jù)功能進行裁剪。
- 文字顯示,下方是簡單調用,此外文字顯示還有多種功能:放大、加底色等,這些都可以從RA8889標準參考程序找到RA8889_API.c進行裁剪移植。
/* 內建文字顯示測試 */
Foreground_color_16M(0xFFFFFF);
Goto_Text_XY(124,30);
Show_String("Solution: 89C52 + RA8889.");
Goto_Text_XY(124,60);
Show_String("RA8889 is an efficient TFT LCD CONTROLLER.");
Goto_Text_XY(124,90);
Show_String("It has an embedded decoder for JPG and AVI.");
四:移植的調試
在移植時,有可能不成功,這里介紹一點經(jīng)驗:
- 檢查SPI接線,SDO和SDI不要接反了,還要確認CS和地線;
- 可以無限循環(huán)RA8889_Initial()代碼,再用示波器觀察SDO、SDI、SCK及CS的波形,是否有周期的脈沖,這個方法定位會比較容易;
- 在MCU_Dev_Board.c代碼中有一個通信測試Comm_Test(),通過該函數(shù)對RA8889進行讀寫,若正常則閃爍LED來指示;
- 另外可以調整delay.c,將延時先調得長一點進行測試,待通信正常再適當調快。
審核編輯 黃宇
-
單片機
+關注
關注
6035文章
44554瀏覽量
634624 -
STC89C52
+關注
關注
41文章
330瀏覽量
82041 -
驅動控制
+關注
關注
0文章
121瀏覽量
15751
發(fā)布評論請先 登錄
相關推薦
評論