diff --git a/demo/oled/bmp.h b/demo/oled/bmp.h new file mode 100644 index 0000000..f6a528d --- /dev/null +++ b/demo/oled/bmp.h @@ -0,0 +1,226 @@ +#ifndef __bmp_H +#define __bmp_H + + +////pixel:64*64 +unsigned char BMP1[] = { + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf8, 0x6, + 0x1, 0x1, 0xff, 0x0, 0x0, 0xf0, 0x8, 0x4, 0x4, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0x80, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x40, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x80, 0x40, 0x20, 0x10, 0x0, 0x8, 0x8, 0x4, 0x4, 0x4, 0x2, 0x2, 0x3, 0x0, + 0x0, 0x0, 0x3, 0x2, 0x2, 0x2, 0x0, 0x4, 0x7, 0x8, 0x10, 0x30, 0xc0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0xc0, 0x18, 0x4, 0x2, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x6, 0xf0, 0x0, 0x0, 0x0, 0xf0, + 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, + 0x0, 0x0, 0x0, 0xcf, 0x60, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0x80, + 0x0, 0x0, 0x0, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8, 0x57, 0x60, 0x80, 0x0, 0x0, + 0x3, 0xc, 0x0, 0x10, 0xa0, 0xc0, 0xc0, 0xc0, 0x80, 0x80, 0x80, 0x80, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x80, 0x0, 0x40, 0x40, 0x20, 0x20, 0x10, 0x10, 0x8, 0x3, 0x0, 0x0, 0x0, + 0x0, 0x0, 0xf, 0x10, 0x8, 0x6, 0x1, 0x2, 0x2, 0x4, 0xc, 0x14, 0x4, 0xc, 0x4, 0x3, + 0x6, 0xfc, 0x42, 0x43, 0xc2, 0x42, 0x42, 0x22, 0x20, 0x20, 0x21, 0x21, 0x11, 0x11, 0xf1, 0x11, + 0xf1, 0x1, 0x1, 0x1, 0x8, 0x88, 0x38, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0xf0, 0xf, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x1, 0x7c, 0x0, 0x1, 0x7e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f, + 0x0, 0x3e, 0x0, 0x0, 0x3c, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x3c, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + +}; + +////pixel:64*64 +unsigned char BMP2[] = { + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x7f, + 0x3f, 0x3f, 0x3f, 0x7f, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7, 0x0, 0xf0, 0x6, + 0x1, 0x1, 0xfe, 0x0, 0x0, 0xe1, 0x8, 0x4, 0x4, 0xf8, 0x0, 0x3, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x3f, 0x3f, 0x1f, 0x9f, 0x4f, 0x4f, 0x4f, 0xf, 0xf, 0x27, + 0x27, 0x27, 0x27, 0xf, 0x4f, 0x4f, 0xf, 0x9f, 0x1f, 0x3f, 0x7f, 0xff, 0xff, 0xff, 0xff, 0x7f, + 0x3f, 0x1f, 0x8f, 0x47, 0x23, 0x13, 0x11, 0x9, 0x8, 0x4, 0x4, 0x0, 0x2, 0x2, 0x3, 0x0, + 0x0, 0x0, 0x3, 0x2, 0x2, 0x3, 0x0, 0x4, 0x7, 0x8, 0x10, 0x23, 0xc3, 0xf, 0x1f, 0x7f, + 0xff, 0x1f, 0x7, 0xc1, 0x31, 0xc, 0x6, 0x3, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x6, 0xf8, 0x0, 0x7, 0xc7, 0x1, 0xf0, + 0x6, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, + 0xff, 0x0, 0x0, 0xf9, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1f, 0xa0, 0xe0, 0x8f, 0x8, 0x30, + 0x23, 0xc, 0x18, 0x10, 0x20, 0x80, 0xc0, 0xc0, 0x80, 0x80, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x80, 0x80, 0x40, 0x40, 0x20, 0x20, 0x10, 0x90, 0x8c, 0xc2, 0xe0, 0xf8, 0xfe, + 0xff, 0xe0, 0x80, 0x8f, 0x90, 0x9f, 0x82, 0xc2, 0xe4, 0xe4, 0x84, 0x9c, 0x94, 0x9c, 0x84, 0x3, + 0x6, 0xfc, 0x42, 0x43, 0xc2, 0x42, 0x42, 0x0, 0x20, 0x21, 0x21, 0x21, 0x21, 0x11, 0xf1, 0x11, + 0xf1, 0x11, 0x1, 0x49, 0x8, 0x88, 0x38, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0xf0, 0x7, 0x0, 0xf8, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, + 0x0, 0x1, 0x78, 0x0, 0x0, 0x7f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f, + 0x0, 0x3c, 0x0, 0x0, 0x38, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x3c, 0x1, 0x80, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xf8, 0xf0, 0xf0, 0xf0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xf0, + 0xf0, 0xf0, 0xf8, 0xf8, 0xfc, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xfe, + 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + +}; + +////pixel:64*64 +unsigned char BMP3[] = { + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, + 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0xf, 0xcf, 0x4f, 0x4f, 0x4f, 0x8f, 0x9f, 0x1f, + 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x7f, 0x7, 0x81, 0x30, 0xc, + 0x2, 0x2, 0x62, 0x8, 0x80, 0x21, 0x8, 0x4, 0xc4, 0x3c, 0x0, 0x81, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xc1, 0x81, 0x1c, 0x24, 0x24, 0x24, 0x4, 0xc8, 0x69, 0x19, 0xa, 0x6, 0x6, 0x2, 0x3, + 0x81, 0x41, 0x41, 0x20, 0x20, 0x20, 0x0, 0x0, 0x0, 0x9, 0x9, 0x1, 0x5, 0x0, 0x2, 0x2, + 0x4, 0xc8, 0x71, 0x33, 0x11, 0x9, 0x8, 0x4, 0x4, 0x4, 0x2, 0x2, 0x2, 0x3, 0x0, 0x0, + 0x0, 0x1, 0x1, 0x2, 0x3, 0x2, 0x4, 0x6, 0x9, 0x10, 0x22, 0xc7, 0xf, 0x1f, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0xe3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf0, 0x6, + 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xfe, 0x0, 0x0, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xf8, 0xf1, 0xe2, 0xc4, 0xc8, 0x90, 0x90, 0x20, 0x20, + 0xe0, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8, 0x38, 0xc7, + 0x4, 0x8, 0x10, 0x20, 0x20, 0xc0, 0xc0, 0x0, 0x80, 0x80, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x80, 0x80, 0x40, 0x40, 0x20, 0x20, 0x10, 0x88, 0xc4, 0xe2, 0xf0, 0xf8, 0xfe, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x0, + 0x3, 0xfc, 0xe, 0x10, 0x60, 0x62, 0x42, 0x42, 0x44, 0x44, 0x44, 0x44, 0x44, 0x46, 0x42, 0xe2, + 0x62, 0x22, 0x21, 0x11, 0x10, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xc0, 0xf, 0x0, 0xe8, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x18, + 0x0, 0x7, 0x20, 0x0, 0x0, 0x3e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f, + 0x0, 0x3f, 0x0, 0x0, 0x1e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x3f, 0x0, 0x10, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, + 0xfc, 0xf8, 0xf8, 0xf0, 0xf0, 0xf0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xf0, 0xf0, 0xf0, 0xf0, + 0xf0, 0xf8, 0xf8, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, + 0xf0, 0xf0, 0xf8, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + +}; + +////pixel:64*64 +unsigned char BMP4[] = { + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0xf, 0xc7, 0x27, 0x4f, 0xf, + 0xf, 0xff, 0xff, 0x1f, 0xf, 0xcf, 0x4f, 0x8f, 0xf, 0x7f, 0x7f, 0x1f, 0x7, 0xe3, 0x10, 0xc, + 0x4, 0xc2, 0x32, 0xe, 0xc0, 0x31, 0x19, 0x8, 0xc4, 0x3c, 0x0, 0x81, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x3f, 0x1f, 0x8f, 0x47, 0x27, 0x23, 0x13, 0x9, 0x9, 0x1, 0x4, 0x4, 0x1c, 0x0, 0x0, 0x9f, + 0xc4, 0x64, 0x34, 0x14, 0xc, 0xc, 0x4, 0x7, 0x2, 0x2, 0x2, 0x2, 0x3, 0x0, 0x0, 0x0, + 0x1, 0x3, 0x2, 0x3, 0x2, 0x4, 0x6, 0x9, 0x18, 0x30, 0xc2, 0xf, 0x1f, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3, 0x0, + 0xf8, 0x6, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf8, 0x6, 0x1, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xe0, + 0xc1, 0xc, 0x10, 0xe0, 0xc0, 0x80, 0x80, 0x80, 0x0, 0x1, 0x1, 0x1, 0x1, 0x1, 0x2, 0xc, + 0x8, 0x10, 0xa0, 0xe0, 0xc0, 0xc0, 0x0, 0x80, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x80, 0x40, 0x40, 0x40, 0x20, 0x20, 0x90, 0x88, 0xc4, 0xe3, 0xf0, 0xf8, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x7, 0x0, 0xf8, 0xf, 0x11, 0xe1, 0x43, 0x44, 0x85, 0x89, 0x89, 0x89, 0x89, 0x88, 0x88, 0x80, + 0xc4, 0x44, 0xe2, 0x21, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xff, 0x0, 0x2, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x0, 0x0, 0x3b, 0x0, 0x0, 0x3f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x7f, 0x0, 0x1, 0x0, 0x1f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x7, 0x0, 0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xf8, 0xf8, 0xf8, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, + 0xf0, 0xf0, 0xf0, 0xf8, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf8, 0xf8, 0xf8, 0xf8, + 0xf8, 0xf8, 0xf8, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + +}; + +////pixel:64*64 +unsigned char BMP5[] = { + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x3f, + 0x3f, 0x9f, 0x9f, 0x9f, 0x1f, 0x3f, 0xff, 0xff, 0x7f, 0x7f, 0x7f, 0x1f, 0x7, 0xe3, 0x10, 0xc, + 0x4, 0xc2, 0x32, 0xe, 0xc0, 0x31, 0x19, 0x8, 0xc4, 0x3c, 0x0, 0x81, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x3f, 0x1f, 0x8f, 0x47, 0x27, 0x23, 0x13, 0x9, 0x9, 0x1, 0x4, 0x4, 0x1c, 0x4, 0xa2, + 0xf1, 0x70, 0x3c, 0x17, 0xc, 0xc, 0x4, 0x4, 0x0, 0x2, 0x2, 0x2, 0x3, 0x0, 0x0, 0x0, + 0x1, 0x3, 0x2, 0x3, 0x2, 0x4, 0x6, 0x9, 0x18, 0x30, 0xc2, 0xf, 0x1f, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3, + 0x0, 0xf8, 0x6, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf8, 0x6, 0x1, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, + 0xe0, 0x1, 0xc, 0xb0, 0x60, 0x40, 0x80, 0x80, 0x80, 0x0, 0x1, 0x1, 0x1, 0x1, 0x2, 0xc, + 0x8, 0x10, 0x20, 0xa0, 0xc0, 0xc0, 0x0, 0x80, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x80, 0x40, 0x40, 0x40, 0x20, 0x20, 0x90, 0x88, 0xc4, 0xe3, 0xf0, 0xf8, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x7, 0x0, 0xf8, 0xf, 0x11, 0xe1, 0x43, 0x44, 0x84, 0x89, 0x89, 0x89, 0x89, 0x89, 0x88, 0x80, + 0xc4, 0x44, 0xe2, 0x21, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xff, 0x0, 0x2, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x0, 0x0, 0x3b, 0x0, 0x0, 0x3f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x7f, 0x0, 0x1, 0x0, 0x1f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x7, 0x0, 0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xfc, 0xf8, 0xf8, 0xf0, 0xf0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, + 0xe0, 0xe0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf8, 0xf8, 0xf8, 0xf8, + 0xf8, 0xf8, 0xf8, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + +}; + +////pixel:64*64 +unsigned char BMP6[] = { + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, + 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x7, 0xc7, 0x33, 0x13, 0xe3, 0x7, 0xf, 0x1f, + 0x3, 0xc3, 0x11, 0x8, 0xec, 0x1, 0x1, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7f, 0x7f, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x7f, 0x7, 0x81, 0x30, 0xc, + 0x2, 0x2, 0x62, 0x8, 0x80, 0x21, 0x8, 0x4, 0xc4, 0x3c, 0x0, 0x81, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x0, 0x80, 0x7f, 0x18, 0x8, 0x7, 0x6, 0x2, 0x2, + 0x81, 0x41, 0x41, 0x21, 0x20, 0x20, 0x0, 0x0, 0x0, 0x9, 0x9, 0x1, 0x5, 0x0, 0x2, 0x2, + 0x4, 0xc8, 0x71, 0x33, 0x11, 0x9, 0x8, 0x4, 0x4, 0x4, 0x2, 0x2, 0x2, 0x3, 0x0, 0x0, + 0x0, 0x1, 0x1, 0x2, 0x3, 0x2, 0x4, 0x6, 0x9, 0x10, 0x22, 0xc7, 0xf, 0x1f, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0xe3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf0, 0x6, + 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xfe, 0x0, 0x0, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xf8, 0xf1, 0xe2, 0xc4, 0xc8, 0x90, 0x90, 0x20, 0x20, + 0xe0, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8, 0x38, 0xc7, + 0x4, 0x8, 0x10, 0x20, 0x20, 0xc0, 0xc0, 0x0, 0x80, 0x80, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x80, 0x80, 0x40, 0x40, 0x20, 0x20, 0x10, 0x88, 0xc4, 0xe2, 0xf0, 0xf8, 0xfe, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x0, + 0x3, 0xfc, 0xe, 0x10, 0x60, 0x62, 0x42, 0x42, 0x44, 0x44, 0x44, 0x44, 0x44, 0x46, 0x42, 0xe2, + 0x62, 0x22, 0x21, 0x11, 0x10, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xc0, 0xf, 0x0, 0xe8, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x10, + 0x0, 0xf, 0x0, 0x0, 0x0, 0x3e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f, + 0x0, 0x3f, 0x0, 0x0, 0x3e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x3f, 0x0, 0x10, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, + 0xfc, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, + 0xf8, 0xf8, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, + 0xe0, 0xf0, 0xf0, 0xf8, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + +}; +#endif diff --git a/demo/oled/test.c b/demo/oled/test.c index 4dfa63c..31331f2 100644 --- a/demo/oled/test.c +++ b/demo/oled/test.c @@ -8,6 +8,7 @@ #include "key.h" #include "sim_key.h" #include "page.h" +#include "bmp.h" uint8_t Cmd(uint8_t *data, size_t l) { // Buf_Print("Cmd", data, l, 16); @@ -42,6 +43,7 @@ void Key_Call_E(Key_t *key) { if (key->key_id == SIM_KEY_DOWN)cur++; if (key->key_id == SIM_KEY_LEFT)pageid--; if (key->key_id == SIM_KEY_RIGHT)pageid++; + if (key->key_id == SIM_KEY_RESET)pageid = pagesearch(pageid).back; if (key->key_id == SIM_KEY_ENABLE) { switch (pageid) { case 0: @@ -112,24 +114,29 @@ void Test_OLED() { OLED_CLS(&oled); OLED_DrawRect(&oled, 0, 0, 127, 63); - int s = 0; +// char buf[30] = {0x5B, 0x57}; char buf[30] = {0x5B, 0x57, 0x5E, 0x93, 0x75, 0x1F, 0x62, 0x10, 0x6D, 0x4B, 0x8B, 0xD5}; -// OLED_ShowCHString(&oled, 15, 16, buf); + uint8_t sbuf[30] = {0}; + sprintf(sbuf, "%sC\0", buf); +// OLED_ShowCHString(&oled, 1, 16, sbuf); + + OLED_Refresh(&oled); + +// Sleep(3000); extern lv_font_t myFont; - OLED_DisplayString(&oled, &myFont, "你好", 0, 0); +// OLED_DisplayString(&oled, &myFont, "你好Hello", 2, 0); + OLED_ShowPic(&oled, 0, 0, 64, 64, BMP1); OLED_Refresh(&oled); _beginthread(Get_Key, 0, NULL); pageinit(); - Sleep(5000); while (1) { if (pageid > 3)pageid = 0; // pagesearch(pageid).page(&oled); // sprintf(buf, "DATA:%d", s); // OLED_ShowString(&oled, 2, 51, buf, 12); OLED_Refresh(&oled); - s++; Sleep(200); } SIM_OLED_STOP(); diff --git a/lib/inc/font/font.h b/lib/inc/font/font.h index 61f3f66..dd6fe03 100644 --- a/lib/inc/font/font.h +++ b/lib/inc/font/font.h @@ -18,7 +18,7 @@ extern "C" { #define PIX_COLOR_SIZE 1 // 启用单行刷新 -#define LINE_FAST_SHOW +//#define LINE_FAST_SHOW typedef struct Font Font_f_t; typedef void (*Font_Show_t)(Font_f_t *font, uint8_t *data, size_t len); diff --git a/lib/inc/oled/oled_font_chuc.h b/lib/inc/oled/oled_font_chuc.h index a7e578b..081c974 100644 --- a/lib/inc/oled/oled_font_chuc.h +++ b/lib/inc/oled/oled_font_chuc.h @@ -61,10 +61,10 @@ Chinese_t Hzk[] = { }, }; -Chinese_t *find_chinese_data(uint8_t unicode_high, uint8_t unicode_low) { +uint16_t find_chinese_data(uint8_t unicode_high, uint8_t unicode_low) { for (int i = 0; i < sizeof(Hzk) / sizeof(Chinese_t); ++i) { if (Hzk[i].unicode[0] == unicode_high && Hzk[i].unicode[1] == unicode_low) { - return &Hzk[i]; + return i; } } return NULL; diff --git a/lib/src/font/font.cpp b/lib/src/font/font.cpp index 22d318d..01ede38 100644 --- a/lib/src/font/font.cpp +++ b/lib/src/font/font.cpp @@ -108,7 +108,7 @@ void draw_letter_normal(Font_f_t *fd, uint16_t pos_x, uint16_t pos_y, lv_font_gl uint8_t fd_buf[fd->dev_w / 2]; #endif #if PIX_COLOR_SIZE == 16 - uint16_t fd_buf[fd->dev_w / 8]; + uint16_t fd_buf[fd->dev_w / 2]; #endif int32_t mask_p = 0; diff --git a/lib/src/oled/oled.cpp b/lib/src/oled/oled.cpp index 00e25d3..13ce78c 100644 --- a/lib/src/oled/oled.cpp +++ b/lib/src/oled/oled.cpp @@ -207,30 +207,41 @@ void OLED_ShowChar(OLED_T *dev, uint8_t x, uint8_t y, uint8_t chr, uint8_t size1 } } -void OLED_ShowString(OLED_T *dev, uint8_t x, uint8_t y, uint8_t *chr, uint8_t size1) { - while ((*chr >= ' ') && (*chr <= '~'))//判断是不是非法字符! +void OLED_ShowString(OLED_T *dev, uint8_t x, uint8_t y, uint8_t *str, uint8_t size1) { + while ((*str >= ' ') && (*str <= '~'))//判断是不是非法字符! { - OLED_ShowChar(dev, x, y, *chr, size1); + OLED_ShowChar(dev, x, y, *str, size1); x += size1 / 2; if (x > dev->width - size1) //换行 { x = 0; y += 2; } - chr++; + str++; } } +#define GET_LOW_BYTE0(x) ((x >> 0) & 0x000000ff) /* 获取第0个字节 */ +#define GET_LOW_BYTE1(x) ((x >> 8) & 0x000000ff) /* 获取第1个字节 */ +#define GET_LOW_BYTE2(x) ((x >> 16) & 0x000000ff) /* 获取第2个字节 */ +#define GET_LOW_BYTE3(x) ((x >> 24) & 0x000000ff) /* 获取第3个字节 */ + void OLED_ShowCHString(OLED_T *dev, uint8_t x, uint8_t y, uint8_t *str) { uint8_t i, temp, size2, ys = y, xs = x, c = x; uint16_t index; - size2 = Hzk_size * Hzk_size / 8; //得到字体一个字符对应点阵集所占的字节数 - while (*str) { +// Hzk_size=12; +// size2 = Hzk_size * Hzk_size / 8; //得到字体一个字符对应点阵集所占的字节数 + size2 = Hzk_size * ((Hzk_size + 7) / 8 * 8) / 8; + uint8_t test[24] = {0x00, 0x00, 0x2E, 0x18, 0xF7, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0xD0, 0xFC, 0x5F, 0x0D, + 0xC6, 0x00, 0x00, 0x00}; + while (*str != '\0') { for (index = 0; index < sizeof(Hzk) / sizeof(Chinese_t); index++) { if (Hzk[index].unicode[0] == str[0] && Hzk[index].unicode[1] == str[1])//对比汉字区码位码 { for (i = 0; i < size2; i++) { temp = Hzk[index].data[i]; +// temp = test[i]; OLED_BSet(dev, xs, ys, temp); xs++; if (xs - c == Hzk_size) { @@ -240,10 +251,19 @@ void OLED_ShowCHString(OLED_T *dev, uint8_t x, uint8_t y, uint8_t *str) { } } ys = y; + x += Hzk_size; str++; str++; } else { - return; + OLED_ShowChar(dev, x, y, *str, 16); + x += 16 / 2; + if (x > dev->width - 16) //换行 + { + x = 0; + y += 2; + } + str++; + break; } } } @@ -264,6 +284,7 @@ void draw_rect(Font_f_t *fd, uint8_t *data, size_t len) { } } } + // void OLED_DisplayString(OLED_T *dev, const lv_font_t *font, uint8_t *s, uint16_t x, uint16_t y) { uint32_t unicode_letter; @@ -272,10 +293,10 @@ void OLED_DisplayString(OLED_T *dev, const lv_font_t *font, uint8_t *s, uint16_t if (font) { s += Font_utf8_to_unicode(s, &unicode_letter); x += Font_draw_letter(font, &fd, unicode_letter, x, y); - x += 2; //字间距 + x += 0; //字间距 } else { OLED_ShowChar(dev, x, y, *s, 12); - x += 6; + x += 12; s++; } } @@ -301,14 +322,23 @@ void OLED_ShowNum(OLED_T *dev, uint8_t x, uint8_t y, uint32_t num, uint8_t len, } } -void OLED_ShowPic(OLED_T *dev, uint8_t x0, uint8_t y0, uint8_t x1, uint8_t y1, uint8_t *bmp) { - uint8_t y = 0; - if (y % 8 == 0)y = 0; - else y += 1; - for (y = y0; y < y1; y++) { - OLED_SPos(dev, x0, y); - dev->data(bmp + y * (x1 - x0), x1 - x0); +void OLED_ShowPic(OLED_T *dev, uint8_t x0, uint8_t y0, uint8_t w, uint8_t h, uint8_t *bmp) { + size_t index; + uint16_t x = x0, y = y0; + for (index = 0; index < (w * h) / 8; index++) { + OLED_BSet(dev, x, y, bmp[index]); + if ((x - x0) == w) { + y += 8; + x = x0; + } } +// uint8_t y = 0; +// if (y % 8 == 0)y = 0; +// else y += 1; +// for (y = y0; y < y1; y++) { +// OLED_SPos(dev, x0, y); +// dev->data(bmp + y * (x1 - x0), x1 - x0); +// } } void OLED_Fill(OLED_T *dev, uint8_t data) { diff --git a/lib/src/utils/tool.cpp b/lib/src/utils/tool.cpp index 81d3f74..7678527 100644 --- a/lib/src/utils/tool.cpp +++ b/lib/src/utils/tool.cpp @@ -4,6 +4,7 @@ #include #include #include +#include #include "tool.h" float Mapping(float val, float I_Min, float I_Max, float O_Min, float O_Max) { @@ -46,16 +47,6 @@ void BufPrint(char *name, void *buf, Type_t type, unsigned int len, unsigned cha printf("\n"); } -uint8_t UTF8ToUnicode(uint8_t *dataArea, uint8_t dataAreaLength, uint8_t *uniDA) { - uint8_t len = dataAreaLength * 2 / 3; -// uint8_t uniDA[len]; - for (int i = 0; i < dataAreaLength / 3; i++) { - uniDA[i * 2] = ((dataArea[i * 3] & 0xF) << 4) + ((dataArea[i * 3 + 1] >> 2) & 0xF); - uniDA[i * 2 + 1] = ((dataArea[i * 3 + 1] & 0x3) << 6) + (dataArea[i * 3 + 2] & 0x3F); - } - return len; -} - float Str2Float(char *str) { int integer = 0; double decimal = 0; diff --git a/main.c b/main.c index 01b01f3..c449b75 100644 --- a/main.c +++ b/main.c @@ -10,9 +10,47 @@ #include "t_oled.h" #include "tool.h" #include +#include int main() { srand((unsigned) time(NULL)); + int i, j, k = 0; + unsigned char incode[3] = {0x5B, 0x57}; // 要读出的汉字 + unsigned char qh, wh; + long offset = 0; +// 占两个字节, 取其区位号 + qh = incode[0] - 0xa0;//获得区码 + wh = incode[1] - 0xa0; //获得位码 + offset = (94 * (qh - 1) + (wh - 1)) * 24; /*得到偏移位置*/ + + FILE *HZK; + uint8_t temp, mat[24]; + if ((HZK = fopen("HZK12", "rb")) == NULL) { + printf("Can't Open hzk16\n"); + exit(0); + } + fseek(HZK, offset, SEEK_SET); + fread(mat, 24, 1, HZK); +// Buf_Print("KZK12",mat,24,12); + for (i = 0; i < 24; i++) + printf("0x%02X, ", mat[i]); +// for (i = 0; i < 24; i++) { +// temp = mat[i]; +// for (j = 0; j < 8; j++) //写入数据 +// { +// if (temp & 0x80)printf("%c", '#'); +// else printf("%c", '-'); +// temp <<= 1; +// k++; +// if ((k ) == 12) { +// k = 0; +//// x++; +// printf("\n"); +// break; +// } +// } +// } + // int i = 1; // POUT((++i) + (++i)); //