JDI 0.96寸屏幕驱动

JDI 0.96寸屏幕LPM009M360A在LS013B7DH06基础上修改地址即可,将原本的LSB地址修改为MSB地址。
使用下述数组可快速进行地址索引转换。


/**
int reverse_bits_recursive(unsigned int num, unsigned int numBits)
{
    unsigned int reversedNum;;
    unsigned int mask = 0;

    mask = (0x1 << (numBits/2)) - 1;

    if (numBits == 1) return num;
    reversedNum = reverse_bits_recursive(num >> numBits/2, numBits/2) |
                   reverse_bits_recursive((num & mask), numBits/2) << numBits/2;
    return reversedNum;
}

int main(int argc, char** argv){
    for(int i=1; i<=144; i++){
        std::cout<<reverse_bits_recursive(i,8)<<",";
        if(i%10 == 0) std::cout<<"\n";
    }
}
 */
const uint8_t fast_addr[144] = {
        128,64,192,32,160,96,224,16,144,80,
        208,48,176,112,240,8,136,72,200,40,
        168,104,232,24,152,88,216,56,184,120,
        248,4,132,68,196,36,164,100,228,20,
        148,84,212,52,180,116,244,12,140,76,
        204,44,172,108,236,28,156,92,220,60,
        188,124,252,2,130,66,194,34,162,98,
        226,18,146,82,210,50,178,114,242,10,
        138,74,202,42,170,106,234,26,154,90,
        218,58,186,122,250,6,134,70,198,38,
        166,102,230,22,150,86,214,54,182,118,
        246,14,142,78,206,46,174,110,238,30,
        158,94,222,62,190,126,254,1,129,65,
        193,33,161,97,225,17,145,81,209,49,
        177,113,241,9,
};

完整代码见https://github.com/yinsua/LS013B7DH06/blob/master/Core/Src/mlcd/mlcd_test.c
将122行的adr_data = s_add;修改为adr_data = fast_addr[s_add-1];
同时,修改头文件中的尺寸定义:

#define LCD_HEIGHT  144
#define LCD_WIDTH   72
posted @ 2024-08-02 18:48  yinsua  阅读(39)  评论(0编辑  收藏  举报