CN / EN
文档反馈
感谢关注汇顶文档,期待您的宝贵建议!
感谢您的反馈,祝您愉快!
无匹配项 共计114个匹配页面

示例代码

DSPI刷屏测试

示例工程实现DSPI刷屏测试,定时刷新ST7789V屏幕,工程路径:SDK_Folder\projects\peripheral\dspi\app_dspi。该示例仅适用于GR5526。

示例工程流程图

DSPI传输初始化参数给屏幕,实现屏幕初始化。最后将显示数据定时传输到屏幕,实现定时刷新屏幕。

图 23 DPSI刷屏示例流程

初始化参数

app_dspi_params_t dspi_params = {
    .pin_cfg = {
        .cs = {
            .type   = APP_IO_TYPE_GPIOB,
            .mux    = APP_IO_MUX_2,
            .pin    = APP_IO_PIN_4,
            .pull   = APP_IO_NOPULL,
            .enable = APP_DSPI_PIN_ENABLE,
        },
        .clk = {
            .type   = APP_IO_TYPE_GPIOB,
            .mux    = APP_IO_MUX_2,
            .pin    = APP_IO_PIN_0,
            .pull   = APP_IO_NOPULL,
            .enable = APP_DSPI_PIN_ENABLE,
        },
        .mosi = {
            .type   = APP_IO_TYPE_GPIOB,
            .mux    = APP_IO_MUX_2,
            .pin    = APP_IO_PIN_1,
            .pull   = APP_IO_NOPULL,
            .enable = APP_DSPI_PIN_ENABLE,
        },
        .miso = {
            .type   = APP_IO_TYPE_GPIOB,
            .mux    = APP_IO_MUX_2,
            .pin    = APP_IO_PIN_2,
            .pull   = APP_IO_NOPULL,
            .enable = APP_DSPI_PIN_ENABLE,
        },
        .dcx = {
            .type   = APP_IO_TYPE_GPIOB,
            .mux    = APP_IO_MUX_2,
            .pin    = APP_IO_PIN_3,
            .pull   = APP_IO_NOPULL,
            .enable = APP_DSPI_PIN_ENABLE,
        },
    },
    .dma_cfg.channel = DMA_Channel0,
    .init = {
        .data_size = DSPI_DATASIZE_08_BITS,
        .baud_rate = DSPI_BAUD_RATE_2P1PCLK,
        . Init. baud_rate = DSPI_PROT_MODE_3W1L,
    },
};
  • pin_cfg:DSPI引脚配置

    包含片选引脚CS、时钟引脚CLK、主出从入引脚MOSI、主入从出引脚MISO、控制引脚DCX,配置IO类型、PIN脚、上下拉模式和复用成DSPI引脚的复用模式。

  • Init:DSPI传输参数配置
    • Init.data_size:数据传输位宽
    • Init. baud_rate:DSPI波特率预分频器值,选择2分频DSPI_BAUD_RATE_2P1PCLK,DSPI时钟等于串行时钟fPCLK除以预分频器值
    • Init. Init. baud_rate:DSPI模式选用DSPI_PROT_MODE_3W1L,即3线1 lane

重要函数

  • 初始化DSPI模块
    ret = app_dspi_init(&params_t, app_dspi_evt_handler)
  • 配置DMA传输方式
    ret = app_dspi_dma_init(&params_t)
  • 传输初始化参数
    app_dspi_dma_command_transmit_async(&g_cmd, (uint8_t *)s_data_8)
  • 传输控制命令
    app_dspi_dma_command_async(&g_cmd)
  • 初始化屏幕显示区域
    app_dspi_display_coordinates(DSPI_ST7789V_X_START, DSPI_ST7789V_X_END, 
                                 DSPI_ST7789V_Y_START, DSPI_ST7789V_Y_END)
  • 传输图像数据,刷新屏幕
    app_dspi_display_write((uint8_t *)pixel, DSPI_POXEL_LEN * 2)

测试验证

  • 硬件准备:LCD屏幕(型号:ST7789V)
  • 测试步骤:
    1. 开发板连接LCD屏幕
    2. 下载运行程序,并打开串口调试助手查看打印日志
    3. 查看屏幕正常刷新显示,测试成功。

扫描关注

打开微信,使用“扫一扫”即可关注。