
一、 測試項目 N32L40XCL-STB V1.0 SPI接口
(相關資料圖)
二、 測試環境 開發板:N32L40XCL-STB V1.0 開發環境:RT-Threadstudio V2.2.6 RT-Thread版本:4.1.1 SPI外設資源: 測試對象:中景園1.8吋TFT LCD,驅動IC:ST7735
三、 N32L40XCL SPI簡介 N32L40XCL片內集成2個SPI接口,SPI允許芯片與外部設備以半/全雙工、同步、串行方式通信。此接口可以被配置成主模式,并為外部從設備提供通信時鐘(SCK)。接口還能以多主配置方式工作。它可用于多種用途,包括使用一條雙向數據線的雙線單工同步傳輸,還可使用CRC校驗的可靠通信。 主要特性: ? 3線全雙工同步傳輸; ? 帶或不帶第三根雙向數據線的雙線單工同步傳輸; ? 8或16位傳輸幀格式選擇; ? 主或從操作; ? 支持多主模式; ? 8個主模式波特率預分頻系數(最大為fPCLK/2); ? 從模式頻率(最大為fPCLK/2); ? 主模式和從模式的快速通信。
四、 測試軟件環境搭建 1、 新建工程
圖1 生成新工程步驟
選擇新建—>RT-Thread 項目,出現對話框,分別按照1~5步驟進行生成新RTT項目,如果第三步沒有對應的開發板,需先在SDK庫中增加對應的開發板。 2、 配置SPI 在左側項目資源管理器中打開新建的項目,按圖2雙擊RT-TreadSetting設置項,按圖2、3完成相關項設置。
圖2 驅動設置
圖3 設置SPI1配置項 3、 添加LCD驅動程序,修改SPI引腳號 直接采用中景園提供LCD驅動程序,將bsp_display.c、bsp_display.h、oledfont.h、zk.c四個文件添加到工程中,打開bsp_display.h,修改SPI引腳號如下:
#define LCD_RST_PIN GET_PIN(B, 13) //PB13 #define LCD_DC_PIN GET_PIN(B, 14) //PB14 #define LCD_BLK_PIN GET_PIN(B, 15) //PB15 #define LCD_SCL_PIN GET_PIN(A, 5) //PA5 #define LCD_SDI_PIN GET_PIN(A, 7) //PA7 #define LCD_CS_PIN GET_PIN(A, 4) //PA4 #define LCD_MISO_PIN GET_PIN(A, 6) //定義MISO引腳為PA6 #define ZK_CS_PIN GET_PIN(A, 9) //定義字庫片選CS引腳為PA9 注:這款LCD帶漢字庫芯片。 添加頭文件:
#include #include 打開main.c文件,添加以下三個頭文件:
#include "drv_gpio.h" #include "bsp_display.h" #include 4、 添加路徑
圖4 設置新增頭文件路徑 按照圖5步驟分別添加bsp_display.h、drv_spi.h、sensor_renesas_hs300x.h所在目錄路徑:
“..N32L40X-HS300Xrt-threadcomponentsdriversincludedrivers"” “.. N32L40XCL_LCDbsp” “.. N32L40XCL_LCDlibrariesn32_drivers” 5、 修改程序 打開main.c,在int main中添加如下程序段:
LCD_Clear(WHITE); Display_Asc_String(1,1,4,"1",RED); Display_GB2312_String(30,10,2,"歡迎參與",RED); Display_GB2312_String(15,30,3,"國民技術",BLUE); Display_Asc_String(10,60,5,"RT-Thread",BLUE); Display_Asc_String(20,90,5,"N32L40X",BRED); Display_GB2312_String(30,120,2,"評測活動",RED); 至此修改工作全部結束,編譯下載運行。
五、 總結 由以上例子我們可以看出,SPI總線運行正常,數據傳送正確。在國民技術的《N32L40XCL-STB 開發板》上利用Rt-thread進行二次開發很方便,用戶上手較容易。
標簽: