STM32驱动友达1.2寸圆形显示器(四)

本以为我已经把手册上的坑排完了,直到我显示了这张图

这是取色器的图,使用RGB332显示效果太差了,我就又查了手册:

关于色彩格式这里,手册上标识的SPI就三种,感觉后三种真彩色不能使用似的,但实际这就是个坑,SPI是可以使用后三种色彩格式的,以下是使用16bit的色彩格式,这才叫真彩色。

前面的显示屏驱动都只是基于输出显示的,最近要做UI系统在上面,当然需要的函数接口就要有一定要求,遇到一个麻烦解决一个麻烦。

比如现在的读颜色,从手册中找的读取指令:

指令没有错,但指令下面的说明太简陋,读取的时候也不知道读取出来的颜色格式是什么,默认以为,读取的颜色和在0x3A设置的颜色格式一样,但事实却并不是,输出的点是RGB888格式,需要将读取出来的颜色转换格式。

正确的软件执行为:

u16 lcd_read_color(void)
{
    u8 r,g,b;
    u16 RxData;

    SPI_CS_RESET();
    LCD_DCX_RESET();
    SPI_ReadWriteByte(0x2E);
    LCD_DCX_SET();
    SPI_ReadWriteByte(0xFF);
    r = SPI_ReadWriteByte(0xFF);
    g = SPI_ReadWriteByte(0xFF);
    b = SPI_ReadWriteByte(0xFF);
    SPI_CS_SET();
    
    RxData = (((u16)r>>3)<<11)|(((u16)g>>2)<<5)|(((u16)b>>3)<<0);
    printf("color: 0x%04X", RxData);
    return RxData;
}

不仅如此,软件执行顺序中,片选不可以关闭,开始会有一个空读。

 

下一步使用UI系统就可以使用16位色了,最近开始使用STemWin来测试这个屏,看看效果如何了 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值