这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 | ||
icore4t_63 [2020/10/16 18:01] fmj |
icore4t_63 [2022/04/01 10:59] (当前版本) sean |
||
---|---|---|---|
行 2: | 行 2: | ||
|技术支持电话|**0379-69926675-801**||| | |技术支持电话|**0379-69926675-801**||| | ||
|技术支持邮件|Gingko@vip.163.com||| | |技术支持邮件|Gingko@vip.163.com||| | ||
- | |技术论坛|http://www.eeschool.org||| | ||
^ 版本 ^ 日期 ^ 作者 ^ 修改内容 ^ | ^ 版本 ^ 日期 ^ 作者 ^ 修改内容 ^ | ||
| V1.0 | 2020-10-16 | gingko | 初次建立 | | | V1.0 | 2020-10-16 | gingko | 初次建立 | | ||
行 98: | 行 97: | ||
* 4)查色表 (CLUT,Color look-up table),每个图层最高可记录256种24位色。 | * 4)查色表 (CLUT,Color look-up table),每个图层最高可记录256种24位色。 | ||
* 5)支持如下8种颜色格式: | * 5)支持如下8种颜色格式: | ||
- | * ARGB8888 | + | * **ARGB8888** |
- | * 32位颜色格式,一个像素点占用4字节,其中低位 3 字节用于颜色分量,高位字节用于 Alpha 混合。红、绿、蓝和 Alpha通道(0x00表示完全透明,0xFF表示完全不透明)都是 8 位表示。 | + | * 32位颜色格式,一个像素点占用4字节,其中低位 3 字节用于颜色分量,高位字节用于 Alpha 混合。红、绿、蓝和 Alpha通道(0x00表示完全透明,0xFF表示完全不透明)都是 8 位表示。 |
- | 颜色格式:AAAAAAAARRRRRRRRGGGGGGGGBBBBBBBB。 | + | * 普通列表项目颜色格式:AAAAAAAARRRRRRRRGGGGGGGGBBBBBBBB。 |
- | * RGB888 | + | * **RGB888** |
* 普通列表项目24位颜色格式,一个像素点占用3字节,分别用于红、绿、蓝。 | * 普通列表项目24位颜色格式,一个像素点占用3字节,分别用于红、绿、蓝。 | ||
* 普通列表项目颜色格式:RRRRRRRRGGGGGGGGBBBBBBBB。 | * 普通列表项目颜色格式:RRRRRRRRGGGGGGGGBBBBBBBB。 | ||
- | * RGB565 | + | * **RGB565** |
* 16位颜色格式,一个像素点占用2字节,分别用于红、绿、蓝。 | * 16位颜色格式,一个像素点占用2字节,分别用于红、绿、蓝。 | ||
* 颜色格式:RRRRRGGGGGGBBBBB。 | * 颜色格式:RRRRRGGGGGGBBBBB。 | ||
- | * ARGB1555 | + | * **ARGB1555** |
* 16位颜色格式,一个像素点占用2字节,Alpha通道使用1个位表示,等于0的时候表示完全透明,等于1的时候表示完全不透明。红、绿、蓝都是用5个位表示。 | * 16位颜色格式,一个像素点占用2字节,Alpha通道使用1个位表示,等于0的时候表示完全透明,等于1的时候表示完全不透明。红、绿、蓝都是用5个位表示。 | ||
* 颜色格式:ARRRRRGGGGGBBBBB。 | * 颜色格式:ARRRRRGGGGGBBBBB。 | ||
- | * ARGB4444 | + | * **ARGB4444** |
* 16位颜色格式,一个像素点占用2字节,Alpha通道使用2个位表示(0x0表示完全透明,0x3表示完全不透明)。红、绿、蓝都是用4个位表示。 | * 16位颜色格式,一个像素点占用2字节,Alpha通道使用2个位表示(0x0表示完全透明,0x3表示完全不透明)。红、绿、蓝都是用4个位表示。 | ||
* 颜色格式:ARRRRRGGGGGBBBBB。 | * 颜色格式:ARRRRRGGGGGBBBBB。 | ||
- | * L8 (8-bit luminance or CLUT) | + | * **L8 (8-bit luminance or CLUT)** |
* 8位颜色格式,实际上仅仅是8位索引值,范围0–255,而每个索引值的具体颜色值在查色表CLUT里面存储。 | * 8位颜色格式,实际上仅仅是8位索引值,范围0–255,而每个索引值的具体颜色值在查色表CLUT里面存储。 | ||
- | * AL44 (4-bit alpha + 4-bit luminance) | + | * **AL44 (4-bit alpha + 4-bit luminance)** |
* 8位颜色格式,实际上是4位Alpha通道(0x0表示完全透明,0xF表示完全不透明)和4位的索引值,索引范围0–15,而每个索引值的具体颜色值在查色表CLUT里面存储。 | * 8位颜色格式,实际上是4位Alpha通道(0x0表示完全透明,0xF表示完全不透明)和4位的索引值,索引范围0–15,而每个索引值的具体颜色值在查色表CLUT里面存储。 | ||
- | * AL88 (8-bit alpha + 8-bit luminance) | + | * **AL88 (8-bit alpha + 8-bit luminance)** |
* 16位颜色格式,实际上是8位Alpha通道(0x00表示完全透明,0xFF表示完全不透明)和8位的索引值,索引范围0–255,而每个索引值的具体颜色值在查色表CLUT里面存储。 | * 16位颜色格式,实际上是8位Alpha通道(0x00表示完全透明,0xFF表示完全不透明)和8位的索引值,索引范围0–255,而每个索引值的具体颜色值在查色表CLUT里面存储。 | ||
行 163: | 行 162: | ||
{{ :icore4t:iCore4T_ARM_HAL_63_4.png?direct |}} | {{ :icore4t:iCore4T_ARM_HAL_63_4.png?direct |}} | ||
- | * 1)数据传输(以设备地址为0xBA/0xBB为例) | + | * **1)数据传输(以设备地址为0xBA/0xBB为例)** |
* 通讯总是由主 CPU 发起,有效的起始信号为:在 SCL 保持为“1”时,SDA 上发生由“1”到“0”的跳变。地址信息或数据流均在起始信号之后传输。 | * 通讯总是由主 CPU 发起,有效的起始信号为:在 SCL 保持为“1”时,SDA 上发生由“1”到“0”的跳变。地址信息或数据流均在起始信号之后传输。 | ||
* 所有连接在I2C总线上的从设备,都要检测总线上起始信号之后所发送的8位地址信息, | * 所有连接在I2C总线上的从设备,都要检测总线上起始信号之后所发送的8位地址信息, | ||
行 170: | 行 170: | ||
* 当通讯完成时,由主CPU发送停止信号。停止信号是当SCL为“1”时,SDA状态由“0”到“1”的跳变。 | * 当通讯完成时,由主CPU发送停止信号。停止信号是当SCL为“1”时,SDA状态由“0”到“1”的跳变。 | ||
- | * 2)对GT911写操作(以设备地址为0xBA/0xBB为例) | + | * **2)对GT911写操作(以设备地址为0xBA/0xBB为例)** |
{{ :icore4t:iCore4T_ARM_HAL_63_5.png?direct |}} | {{ :icore4t:iCore4T_ARM_HAL_63_5.png?direct |}} | ||
* 上图为主CPU对GT911进行的写操作流程图。首先主CPU产生一个起始信号,然后发送地址信息及读写位信息“0”表示写操作:0XBA。在收到应答后,主CPU发送寄存器的16位地址,随后是8位要写入到寄存器的数据内容GT911寄存器的地址指针会在写操作后自动加1,所以当主CPU需要对连续地址的寄存器进行写操作时,可以在一次写操作中连续写入。写操作完成,主CPU发送停止信号结束当前写操作。 | * 上图为主CPU对GT911进行的写操作流程图。首先主CPU产生一个起始信号,然后发送地址信息及读写位信息“0”表示写操作:0XBA。在收到应答后,主CPU发送寄存器的16位地址,随后是8位要写入到寄存器的数据内容GT911寄存器的地址指针会在写操作后自动加1,所以当主CPU需要对连续地址的寄存器进行写操作时,可以在一次写操作中连续写入。写操作完成,主CPU发送停止信号结束当前写操作。 | ||
- | * 3)对GT911读操作(以设备地址为0xBA/0xBB为例) | + | |
+ | * **3)对GT911读操作(以设备地址为0xBA/0xBB为例)** | ||
{{ :icore4t:iCore4T_ARM_HAL_63_6.png?direct |}} | {{ :icore4t:iCore4T_ARM_HAL_63_6.png?direct |}} | ||
* 上图为主CPU对GT911进行的读操作流程图。首先主CPU产生一个起始信号,然后发送设备地址信息及读写位信息“0”表示写操作:0XBA。在收到应答后,主CPU发送首寄存器的16位地址信息,设置要读取的寄存器地址。在收到应答后,主CPU重新发送一次起始信号,发送读操作:0XBB。收到应答后,主CPU开始读取数据。 | * 上图为主CPU对GT911进行的读操作流程图。首先主CPU产生一个起始信号,然后发送设备地址信息及读写位信息“0”表示写操作:0XBA。在收到应答后,主CPU发送首寄存器的16位地址信息,设置要读取的寄存器地址。在收到应答后,主CPU重新发送一次起始信号,发送读操作:0XBB。收到应答后,主CPU开始读取数据。 | ||
行 181: | 行 182: | ||
* (一)工作模式 | * (一)工作模式 | ||
{{ :icore4t:iCore4T_ARM_HAL_63_7.png?direct |}} | {{ :icore4t:iCore4T_ARM_HAL_63_7.png?direct |}} | ||
- | * a)Normal Mode | + | * **a)Normal Mode** |
* GT911在Normal Mode时,最快的坐标刷新周期为7ms-10ms间(依赖于配置信息的设定,配置信息可控周期步进长度为1ms)。 | * GT911在Normal Mode时,最快的坐标刷新周期为7ms-10ms间(依赖于配置信息的设定,配置信息可控周期步进长度为1ms)。 | ||
* Normal mode状态下,一段时间无触摸事件发生,GT911将自动转入Green mode,以降低功耗。GT911无触摸自动进入Green mode的时间可通过配置信息设置,范围为0~15s,步进为1s。 | * Normal mode状态下,一段时间无触摸事件发生,GT911将自动转入Green mode,以降低功耗。GT911无触摸自动进入Green mode的时间可通过配置信息设置,范围为0~15s,步进为1s。 | ||
- | * b)Green Mode | + | * **b)Green Mode** |
* 在Green mode下,GT911扫描周期约为40ms,若检测到有触摸动作发生,自动进入Normal mode。 | * 在Green mode下,GT911扫描周期约为40ms,若检测到有触摸动作发生,自动进入Normal mode。 | ||
- | * c)Sleep Mode | + | * **c)Sleep Mode** |
* 主CPU通过I2C命令,使GT911进入Sleep mode(需要先将INT脚输出低电平)。当需要GT911退出Sleep mode时,主机输出一个高电平到INT脚(主机打高INT脚2~5ms),唤醒后GT911将进入Normal mode。 | * 主CPU通过I2C命令,使GT911进入Sleep mode(需要先将INT脚输出低电平)。当需要GT911退出Sleep mode时,主机输出一个高电平到INT脚(主机打高INT脚2~5ms),唤醒后GT911将进入Normal mode。 | ||
{{ :icore4t:iCore4T_ARM_HAL_63_8.png?direct |}} | {{ :icore4t:iCore4T_ARM_HAL_63_8.png?direct |}} | ||
行 254: | 行 255: | ||
LTDC_ColorTypeDef Backcolor; | LTDC_ColorTypeDef Backcolor; | ||
} LTDC_InitTypeDef; | } LTDC_InitTypeDef; | ||
- | |||
</code> | </code> | ||
- | **uint32_t HSPolarity** | + | |
+ | * uint32_t HSPolarity | ||
此参数用于设置水平同步信号极性,具体支持的参数如下: | 此参数用于设置水平同步信号极性,具体支持的参数如下: | ||
#define LTDC_HSPOLARITY_AL (0x00000000U) 水平同步极性低电平有效 | #define LTDC_HSPOLARITY_AL (0x00000000U) 水平同步极性低电平有效 | ||
#define LTDC_HSPOLARITY_AH LTDC_GCR_HSPOL 水平同步极性高电平有效 | #define LTDC_HSPOLARITY_AH LTDC_GCR_HSPOL 水平同步极性高电平有效 | ||
- | uint32_t VSPolarity | + | * uint32_t VSPolarity |
此参数用于设置垂直同步信号极性,具体支持的参数如下 | 此参数用于设置垂直同步信号极性,具体支持的参数如下 | ||
#define LTDC_VSPOLARITY_AL (0x00000000U) /* 垂直同步极性低电平有效 | #define LTDC_VSPOLARITY_AL (0x00000000U) /* 垂直同步极性低电平有效 | ||
#define LTDC_VSPOLARITY_AH LTDC_GCR_VSPOL /* 垂直同步极性高电平有效 | #define LTDC_VSPOLARITY_AH LTDC_GCR_VSPOL /* 垂直同步极性高电平有效 | ||
- | uint32_t DEPolarity | + | * uint32_t DEPolarity |
此参数用于设置数据使能极性,具体支持的参数如下: | 此参数用于设置数据使能极性,具体支持的参数如下: | ||
#define LTDC_DEPOLARITY_AL (0x00000000U) /* 数据使能极性低电平有效 | #define LTDC_DEPOLARITY_AL (0x00000000U) /* 数据使能极性低电平有效 | ||
#define LTDC_DEPOLARITY_AH LTDC_GCR_DEPOL /* 数据使能极性高电平有效 | #define LTDC_DEPOLARITY_AH LTDC_GCR_DEPOL /* 数据使能极性高电平有效 | ||
- | uint32_t PCPolarity | + | * uint32_t PCPolarity |
此参数用于设置像素时钟极性,具体支持的参数如下: | 此参数用于设置像素时钟极性,具体支持的参数如下: | ||
#define LTDC_PCPOLARITY_IPC (0x00000000U) 像素时钟极性低电平有效 | #define LTDC_PCPOLARITY_IPC (0x00000000U) 像素时钟极性低电平有效 | ||
#define LTDC_PCPOLARITY_IIPC LTDC_GCR_PCPOL 像素时钟极性高电平有效 | #define LTDC_PCPOLARITY_IIPC LTDC_GCR_PCPOL 像素时钟极性高电平有效 | ||
- | uint32_t HorizontalSync | + | * uint32_t HorizontalSync |
此参数用于设置水平同步宽度,范围 0 x 000 0xFFF 单位像素时钟个数 。 | 此参数用于设置水平同步宽度,范围 0 x 000 0xFFF 单位像素时钟个数 。 | ||
- | uint32_t VerticalSync | + | * uint32_t VerticalSync |
此参数用于设置垂直同步宽度,范围 0 x 000 0x 7 FF 单位像素时钟个数。 | 此参数用于设置垂直同步宽度,范围 0 x 000 0x 7 FF 单位像素时钟个数。 | ||
- | uint32_t AccumulatedHBP | + | * uint32_t AccumulatedHBP |
此参数用于设置 HSYNC水平同步宽度+ HBP水平后沿之和,范围HSYNC水平同步宽度到0 xFFF,单位像素时钟个数。 | 此参数用于设置 HSYNC水平同步宽度+ HBP水平后沿之和,范围HSYNC水平同步宽度到0 xFFF,单位像素时钟个数。 | ||
- | uint32_t AccumulatedVBP | + | * uint32_t AccumulatedVBP |
此参数用于设置VSYNC垂直同步宽度+ VBP垂直后沿之和,范围VSYNC垂直同步宽度到0x7FF,单位像素时钟个数。 | 此参数用于设置VSYNC垂直同步宽度+ VBP垂直后沿之和,范围VSYNC垂直同步宽度到0x7FF,单位像素时钟个数。 | ||
- | uint32_t AccumulatedActiveW | + | * uint32_t AccumulatedActiveW |
此参数用于设置HSYNC水平同步宽度+ HBP水平后沿+ 有效宽度之和,范围AccumulatedHBP到0xFFF,单位像素时钟个数。 | 此参数用于设置HSYNC水平同步宽度+ HBP水平后沿+ 有效宽度之和,范围AccumulatedHBP到0xFFF,单位像素时钟个数。 | ||
- | uint32_t AccumulatedActiveH | + | * uint32_t AccumulatedActiveH |
此参数用于设置VSYNC垂直同步宽度+ VBP垂直后沿+ 有效高度之和,范围AccumulatedVBP到0x7FF,单位像素时钟个数。 | 此参数用于设置VSYNC垂直同步宽度+ VBP垂直后沿+ 有效高度之和,范围AccumulatedVBP到0x7FF,单位像素时钟个数。 | ||
- | uint32_t TotalWidth | + | * uint32_t TotalWidth |
此参数用于设置HSYNC水平同步宽度+ HBP水平后沿+ 有效宽度+ HFP水平前沿之和,范围AccumulatedActiveW到0xFFF,单位像素时钟个数。 | 此参数用于设置HSYNC水平同步宽度+ HBP水平后沿+ 有效宽度+ HFP水平前沿之和,范围AccumulatedActiveW到0xFFF,单位像素时钟个数。 | ||
- | uint32_t TotalHeigh | + | * uint32_t TotalHeigh |
此参数用于设置VSYNC垂直同步宽度+ VBP垂直后沿+ 有效高度+VFP垂直前沿之和,范围AccumulatedActiveH到0x7FF,单位像素时钟个数。 | 此参数用于设置VSYNC垂直同步宽度+ VBP垂直后沿+ 有效高度+VFP垂直前沿之和,范围AccumulatedActiveH到0x7FF,单位像素时钟个数。 | ||
- | LTDC_ColorTypeDef Backcolor | + | * LTDC_ColorTypeDef Backcolor |
此参数用于设置背景层颜色,结构体LTDC_ColorTypeDef的定义如下: | 此参数用于设置背景层颜色,结构体LTDC_ColorTypeDef的定义如下: | ||