Welcome to our site!

Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

  • Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

How to change Chinese front in STM32F103 C programming

Hi there,


I am handling a project which has display application both for English and Korean front but I would like to add Chiness front in it.
For that reason, I have to add more thing in front.c and front.h etc.

I can made some Chineess front/ charecter using Note pad pixel and a software named KSX1001 frontedit
BMP to front can be made. i.e IMAGE SIZE-16*16, front size-32. Software output gives .c file when input is a .bmp file.

Take a look output c file for a given .bmp,

Code:
#define byte unsigned char
#define word unsigned int
//---------------------------------------------------------
extern code byte ImageFontTbl[];
//---------------------------------------------------------

code byte ImageFontTbl[]={    // ImageSize: 16 X 16
    0xff,0x7f,    // QQQQQQQQ.QQQQQQQ
    0xff,0x7f,    // QQQQQQQQ.QQQQQQQ
    0xff,0x7f,    // QQQQQQQQ.QQQQQQQ
    0xff,0x7f,    // QQQQQQQQ.QQQQQQQ
    0xc0,0x01,    // QQ.............Q
    0xdf,0x7d,    // QQ.QQQQQ.QQQQQ.Q
    0xdf,0x7d,    // QQ.QQQQQ.QQQQQ.Q
    0xdf,0x7d,    // QQ.QQQQQ.QQQQQ.Q
    0xdf,0x7d,    // QQ.QQQQQ.QQQQQ.Q
    0xc0,0x01,    // QQ.............Q
    0xdf,0x7d,    // QQ.QQQQQ.QQQQQ.Q
    0xff,0x7f,    // QQQQQQQQ.QQQQQQQ
    0xff,0x7f,    // QQQQQQQQ.QQQQQQQ
    0xff,0x7f,    // QQQQQQQQ.QQQQQQQ
    0xff,0x7f,    // QQQQQQQQ.QQQQQQQ
    0xff,0x7f,    // QQQQQQQQ.QQQQQQQ
    
};    // FontSize= 32


Now my original front.c file called image registor in following way
Code:
const unsigned char IMAGE_16_16[COUNT_OF_16_IMAGE][32] = {

{0x11,0xaa,0x44,0x00,0xff,0x00,0xff,0x00,0x44,0xaa,0x11,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00}, // trace
{0x00,0xfe,0x02,0x12,0x12,0x12,0x12,0x82,0x42,0x22,0x12,0x0a,0x06,0xfe,0x00,0x00,0x00,0x3f,0x30,0x28,0x24,0x22,0x21,0x24,0x22,0x24,0x28,0x24,0x20,0x3f,0x00,0x00}, // Inverter
{0xff,0x01,0xfd,0xed,0xed,0xed,0xed,0x7d,0xbd,0xdd,0xed,0xf5,0xf9,0x01,0xff,0x00,0x7f,0x40,0x4f,0x57,0x5b,0x5d,0x5e,0x5b,0x5d,0x5b,0x57,0x5b,0x5f,0x40,0x7f,0x00}, // Reverse invertion
................................
................................

Another place they have represent korean front as follows,
Code:
const unsigned char FONT_HAN[0x168][32] = {   
  {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
  {0x00, 0x04, 0x04, 0x04, 0xc4, 0xfc, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x18, 0x0e, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
  {0x00, 0x04, 0x04, 0xfc, 0xfc, 0x04, 0xfc, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x1f, 0x07, 0x18, 0x1f, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
..................................
................................

Even they have also present each letter

Code:
const unsigned char WAN_TO_JO[0x92E][2] = {
    {0x88, 0x61},// 가
    {0x88, 0x62},// 각
    {0x88, 0x65},// 간
    {0x88, 0x68},// 갇
    {0x88, 0x69},// 갈
    {0x88, 0x6a},// 갉
    {0x88, 0x6b},// 갊
    {0x88, 0x71},// 감
    {0x88, 0x73},// 갑
    {0x88, 0x74},// 값
    {0x88, 0x75},// 갓
    {0x88, 0x76},// 갔
...............................
...............................

Kindly suggest me what to do things for chiness. Does Image count has particular meaning to display it?
Does chiness front also need ASCI II charecter ? My front C also includes ASCI II.
Figure out the difference between IMAGE and FRONT of constant unsigned charecter.
 
Its a FONT I saw this on AAC and I wondered what you wanted... Edited...
FONT is not front? From the mentioned software I want to make all front data particular size. Then those should be implemented where I need. I have few more files in this project where enum type variables are also called.

ASCI II may be independent of those charectors.

If you can look into the image count registers, dont you think those are made for defined LCD output?

Koreans numbers and mathematical symbols has also made on this front.c.
 

Ian Rogers

User Extraordinaire
Forum Supporter
Most Helpful Member
I see you have now posted this on EVERY forum... You may need to explain further!

What is the display are you using.... The KS X 1001 Korean set is set out similar to the Chinese??? BUT!! the Chinese language is extremely broad... The GB 2312 set is the Popular Chinese font!

BTW the term is "font" this is a file of bitmaps to draw on a graphical display..
 
Fonts are only relevant on pixel displays which can display ANY character. I also don't understand your problem.

Mike.
well said. I want to make display for particular chinesse text.
I got a clue for it.

From the all image file, I got a range of 11000 hex data. All are possible matrix. Among those I made a sequence those are requred text charecter. But the problem is for repeting charecters. Image looks same but hex data are different.
 

Pommie

Well-Known Member
Most Helpful Member
But the problem is for repeting charecters. Image looks same but hex data are different.
Why is the hex data different? If you plot it one pixel at a time it MUST work. For more efficiency, you shift the character before plotting 8 pixels at a time. Alternatively, plot to a one line ram buffer and transfer the whole line at once.

Mike.
 

Latest threads

New Articles From Engineer's Garage

Top