结构体
app_qspi_params_t
结构体定义如下:
成员 | 描述 | 取值 |
---|---|---|
app_qspi_id_t id |
设置使用的QSPI模块ID |
该参数的取值可以是下列值中的任意一个: GR5526:
GR551x:
|
app_qspi_pin_cfg_t pin_cfg |
引脚配置 |
参考app_qspi_pin_cfg_t结构体 |
app_qspi_dma_cfg_t dma_cfg |
DMA参数设置 |
参考app_qspi_dma_cfg_t结构体 |
qspi_init_t init |
初始化结构体 |
参考qspi_init_t结构体 |
qspi_env_t qspi_env |
仅用于记录初始化设备的句柄、相关参数和信号量等,不需要配置 |
详细信息请参考文件:SDK_Folder\drivers\inc\app_qspi.h。
app_qspi_pin_cfg_t
结构体定义如下:
成员 | 描述 | 取值 |
---|---|---|
app_qspi_pin_t cs |
片选引脚配置 |
参考app_qspi_pin_t结构体 |
app_qspi_pin_t clk |
时钟引脚配置 |
参考app_qspi_pin_t结构体 |
app_qspi_pin_t io_0 |
IO0引脚 |
参考app_qspi_pin_t结构体 |
app_qspi_pin_t io_1 |
IO1引脚 |
参考app_qspi_pin_t结构体 |
app_qspi_pin_t io_2 |
IO2引脚 |
参考app_qspi_pin_t结构体 |
app_qspi_pin_t io_3 |
IO3引脚 |
参考app_qspi_pin_t结构体 |
详细信息请参考文件:SDK_Folder\drivers\inc\app_qspi.h。
app_qspi_pin_t
结构体定义如下:
成员 | 描述 | 取值 |
---|---|---|
app_io_type_t type |
IO类型 |
同app_io_evt_t定义 |
app_io_mux_t mux |
设置IO映射功能 |
查看app_io_init_t结构体定义,具体取值参考Datasheet中的Pin Mux |
uint32_t pin |
选择IO引脚 |
查看app_io_init_t结构体定义,具体取值参考Datasheet中的Pin Mux |
app_io_mode_t mode |
IO模式配置 |
APP_IO_MODE_MUX |
app_io_pull_t pull |
设置IO上拉/下拉/浮空 |
同app_io_init_t结构体中的描述 |
uint8_t enable |
使能/不使能引脚 |
|
详细信息请参考文件:SDK_Folder\drivers\inc\app_qspi.h。
app_qspi_dma_cfg_t
结构体定义如下:
成员 | 描述 | 取值 |
---|---|---|
dma_regs_t * dma_instance |
DMA句柄 |
GR5526:
具体选择参考app_dma_params_t章节中,DMA0/DMA1支持的外设 GR551x:
|
dma_channel_t dma_channel |
数据通道 |
同app_dma_params_t中通道描述 |
uint32_t wait_timeout_ms |
轮询和死机等待的超时时间,仅适用于GR5526 |
|
uint32_t extend |
扩展段,仅适用于GR5526 |
暂未使用 |
详细信息请参考文件:SDK_Folder\drivers\inc\app_qspi.h。
app_qspi_command_t
结构体定义如下:
成员 | 描述 | 取值 |
---|---|---|
uint32_t instruction |
访问从设备指令 |
具体根据从设备访问时序确定 |
uint32_t address |
访问从设备地址 |
具体根据从设备访问时序确定 |
uint32_t instruction_size |
访问指令宽度 |
该参数的取值可以是下列值中的任意一个:
|
uint32_t address_size |
访问地址宽度 |
该参数的取值可以是下列值中的任意一个:
|
uint32_t dummy_cycles |
等待时钟周期数 |
0 ~ 31,具体根据从设备时序决定 |
uint32_t data_size |
数据传输宽度 |
该参数的取值可以是下列值中的任意一个:
|
uint32_t instruction_address_mode |
指令地址发送采用的时序模式 |
该参数的取值可以是下列值中的任意一个:
|
uint32_t data_mode |
数据传输采用的时序模式 |
该参数的取值可以是下列值中的任意一个:
|
uint32_t length |
传输数据长度,单位字节,需为data_size的整数倍 |
最大65535字节 |
uint32_t clock_stretch_en |
是否启用钟摆功能,只对Dual SPI和Quad SPI模式有效 |
|
qspi_init_t
结构体定义如下:
成员 | 描述 | 取值 |
---|---|---|
uint32_t clock_prescaler |
基于总线时钟生成QSPI SLCK时钟的分频系数 |
支持2 ~ 65535之间的偶数 |
uint32_t clock_mode |
时钟模式 |
该参数的取值可以是下列值中的任意一个:
|
uint32_t rx_sample_delay |
RX输入端口的采样延时,以QSPI SLCK时钟周期为单位,防止频率过高,数据传输错误 |
0 ~ 0x7 |
详细信息请参考文件:SDK_Folder\drivers\inc\hal\gr55xx_hal_qspi.h。
app_qspi_mmap_device_t
结构体定义如下:
成员 | 描述 | 取值 |
---|---|---|
app_qspi_device_e dev_type |
设备类型 |
该参数的取值可以是下列值中的任意一个:
|
app_qspi_psram_mmap_wr_cmd_e psram_wr |
内存映射模式下,PSRAM的写命令 |
该参数的取值可以是下列值中的任意一个:
|
union { app_qspi_flash_mmap_rd_cmd_e flash_rd; app_qspi_psram_mmap_rd_cmd_e psram_rd; } rd; |
|
Flash读命令支持:
PSRAM读命令支持:
|
void * set |
保留位 |
详细信息请参考文件:SDK_Folder\drivers\inc\app_qspi.h。
app_qspi_screen_command_t
结构体定义如下:
成员 | 描述 | 取值 |
---|---|---|
uint32_t instruction |
刷屏控制命令 |
0x00 ~ 0xff的8 bits数据 |
uint32_t leading_address |
刷屏前导地址,如0x002C00 |
0x00000000 ~ 0xffffffff的32 bits地址数据 |
uint32_t ongoing_address |
刷屏跟续地址,如0x003C00 |
0x00000000 ~ 0xffffffff的32 bits地址数据 |
uint32_t instruction_size |
指定指令的size |
根据具体屏幕芯片手册决定,可选值参考QSPI_Instruction_Size |
uint32_t address_size |
刷屏地址Size |
根据具体屏幕芯片手册决定,可选值参考QSPI_Address_Size |
uint32_t dummy_cycles |
Dummy(Wait) cycles |
根据屏幕芯片手册决定,可选值0 ~ 31 |
uint32_t data_size |
数据传输宽度 |
参考QSPI_Data_Size,支持8/16/32 bits宽度传输 |
uint32_t instruction_address_mode |
指令地址发送的时序模式 |
该参数的取值可以是下列值中的任意一个:
|
uint32_t data_mode |
数据发送模式 |
该参数的取值可以是下列值中的任意一个:
|
bool is_one_take_cs |
是否启用一次性片选发送完所有数据,需要屏幕支持;如果启用,本次所有数据会在一个CS周期内发送完成 |
|
详细信息请参考文件:SDK_Folder\drivers\inc\app_qspi.h。
该结构体仅适用于GR5526。
app_qspi_evt_t
结构体定义如下:
成员 | 描述 | 取值 |
---|---|---|
app_qspi_evt_type_t type |
QSPI事件类型 |
该参数的取值可以是下列值中的任意一个:
|
union { uint32_t error_code; uint16_t size; }data; |
uint32_t error_code:发送事件返回的错误号 uint16_t size:QSPI已发送的数据长度 说明: 若事件类型为传输错误,此处返回错误码;若事件类型为发送完成,此处显示已发送的数据长度 |
QSPI错误码:
|
详细信息请参考文件:SDK_Folder\drivers\inc\app_qspi.h。
app_qspi_screen_info_t
结构体定义如下:
成员 | 描述 | 取值 |
---|---|---|
unsigned int scrn_pixel_width |
水平像素,单位:pixel |
根据屏幕分辨率决定 |
unsigned int scrn_pixel_height |
垂直像素,单位:pixel |
根据屏幕分辨率决定 |
unsigned int scrn_pixel_depth |
像素深度,单位:Byte |
根据采用的像素色深决定 |
详细信息请参考文件:SDK_Folder\drivers\inc\app_qspi.h。
该结构体仅适用于GR5526。
blit_image_config_t
结构体定义如下:
成员 | 描述 | 取值 |
---|---|---|
uint32_t src_img_address |
源对象总线地址,需要4字节对齐 |
|
uint32_t src_img_w |
源对象像素宽度 |
|
uint32_t src_img_h |
源对象像素高度 |
|
uint32_t src_img_x |
源对象拟截取x起始坐标 |
源对象的左上角为源对象坐标系原点(0,0) |
uint32_t src_img_x_delta |
源对象拟截取的像素宽度 |
注意x加x_delta不能超过源对象宽度 |
uint32_t src_img_y |
源对象拟截取y起始坐标 |
源对象的左上角为源对象坐标系原点(0,0) |
uint32_t src_img_y_delta |
源对象拟截取的像素高度 |
注意y加y_delta不能超过源对象高度 |
uint32_t dst_buff_address |
目标对象总线地址,需要4字节对齐 |
|
uint32_t dst_buff_width |
目标对象像素宽度 |
|
uint32_t dst_buff_height |
目标对象像素高度 |
|
uint32_t dst_buff_x |
目标对象待写入x起始坐标 |
目标对象的左上角为源对象坐标系原点(0,0) |
uint32_t dst_buff_y |
目标对象待写入y起始坐标 |
目标对象的左上角为源对象坐标系原点(0,0) |
uint32_t pixel_depth |
像素深度,以Byte为单位 |
详细信息请参考文件:SDK_Folder\drivers\inc\app_qspi.h。
该结构体仅适用于GR5526。
app_qspi_screen_scroll_t
结构体定义如下:
成员 | 描述 | 取值 |
---|---|---|
uint32_t first_frame_start_address |
第一帧起始总线地址
|
第一帧缓存地址 |
uint32_t second_frame_start_address |
第二帧起始总线地址
|
第二帧缓存地址 |
uint32_t scroll_coordinate |
滚动点坐标
|
|
bool is_horizontal_scroll |
是否水平滚动 |
|
详细信息请参考文件:SDK_Folder\drivers\inc\app_qspi.h。
该结构体仅适用于GR5526。
app_qspi_screen_veri_link_scroll_t
结构体定义如下:
成员 | 描述 | 取值 |
---|---|---|
uint32_tframe_ahb_start_address |
此节点帧的起始地址 |
存放节点的总线地址 |
uint32_t frame_offset_lines |
此节点帧位于全帧的偏移行数 |
|
uint32_t frame_draw_lines |
此节点帧的总行数 |
总行数根据LLP size决定,一般不超过50行 |
struct _screen_veri_link_scroll_t * next |
指向下一个节点帧地址 |
最后一个设置为NULL |
详细信息请参考文件:SDK_Folder\drivers\inc\app_qspi.h。
该结构体仅适用于GR5526。
app_qspi_screen_block_t
成员 | 描述 | 取值 |
---|---|---|
uint32_t frame_ahb_start_address |
待刷新屏幕区域的图像块起始地址 |
|
uint32_t frame_offset_lines |
待刷新屏幕区域的图像块行偏移 |
|
uint32_t frame_draw_lines | 待刷新屏幕区域的图像块行数量 |
详细信息请参考文件:SDK_Folder\drivers\inc\app_qspi.h。