一、 测试项目 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进行二次开发很方便,用户上手较容易。
标签: