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