OLED SSD1327
瑞萨 R7FA6M4AF3CFP 有 2 个 SPI 接口,除此之外,还有 9 个 SCI 接口可以实现 Simple SPI 功能,这次使用 SPI0 接口来驱动 OLED 屏
SSD1327 是一款 128x128像素的 OLED 控制器,并且能够支持 16 位灰度显示,效果如图:

接口定义如下:
| 引脚 |
功能 |
|---|
| P412 |
SCK |
| P411 |
MOSI |
| P413 |
DC |
| P414 |
RST |
| GND |
CS |
使能硬件 SPI1 功能,在 RASC 上配置如下:
引脚配置:

SPI 外设配置:

配置 SPI 速率 16Mbps,使能后即可使用以下函数初始化 SPI 接口:
口:
fsp_err_t err = R_SPI_Open(&g_spi1_ctrl, &g_spi1_cfg)
使用以下函数发送数据:
fsp_err_t err = R_SPI_Write(&g_spi1_ctrl, &dat, 1, SPI_BIT_WIDTH_8_BITS);
未使用 DMA,采用的是中断清除标志位方式进行 SPI 数据发送,代码如下:
void SPI1_Tx1B(u16 dat)
{
while (gf_SPI1_Busy);
gf_SPI1_Busy = 1;
fsp_err_t err = R_SPI_Write(&g_spi1_ctrl, &dat, 1, SPI_BIT_WIDTH_8_BITS);
assert(err == FSP_SUCCESS);
}
中断函数中清除发送忙标志位:
void spi1_callback (spi_callback_args_t * p_args)
{
if (SPI_EVENT_TRANSFER_COMPLETE == p_args->event)
{
gf_SPI1_Busy = 0;
}
}
设置好 SPI 接口后,就可以进行初始化寄存器配置和图像显示了,效果见视频
|