开发板这里引出了SPI5的接口,正好用来点屏
这里使用的是1.9寸ST7789驱动的320x170TFT屏
这里SPI使用的是SCI-SPI5(SCI,意为串行通信接口, 是相对与并行通信的概念,是串行通信技术的一种总称,包括了UART,SPI,I2C等串行通信技术。)
引脚连接
P509---SCL
P302---SDA
P508---CS(使用软件CS控制,而非硬件)
P505---DC
配置流程



SPI0改为SPI5,后面参数按图选择,波特率可任意选择(最大不能超过20MHZ)
具体代码就不展示了,网上很多,直接上视频
遇到的问题,发送颜色数据是16位的,而发送函数有个参数可以选择16位

于是,我这样用
uint16_t dat = 0xaaaa;
R_SCI_SPI_Write(g_spi5.p_ctrl,&dat,1,SPI_BIT_WIDTH_16_BITS);
却发现刷屏总是很大偏差,用逻辑分析仪观察SPI信号,发现只发送了8位,于是我再看下函数描述,bit_width是指byte的个数
于是要发送16位,应该这样用
g_spi5.p_api->write(g_spi5.p_ctrl,&dat,2,SPI_BIT_WIDTH_16_BITS);
更多回帖