用到LCD屏,需要顯示漢字,因此需要漢字編碼數(shù)組。但是,keil可能對中文不太友好,所以出現(xiàn)如下的問題. 單片機用STC12C5A60S2。 先定義一個漢字索引數(shù)組: - unsigned char code index_hanzi[] = {"年月日正一二"};
復制代碼然后寫了一個搜索漢字的函數(shù): - uchar find_hanzi(uchar *hz) // 搜索漢字索引,返回漢字的位置
- {
- uchar i;
- for (i = 0; i < (sizeof(index_hanzi) / 2); i++)
- {
- if (index_hanzi[i * 2] == *hz && index_hanzi[i * 2 + 1] == *(hz + 1))
- {
- return i; }
- }
- return 255;
- }
復制代碼然后用打印函數(shù)進行檢驗: - printf("%d\r\n", (uint)find_hanzi("年"));
- printf("%d\r\n", (uint)find_hanzi("月"));
- printf("%d\r\n", (uint)find_hanzi("日"));
- printf("%d\r\n", (uint)find_hanzi("正"));
- printf("%d\r\n", (uint)find_hanzi("一"));
- printf("%d\r\n", (uint)find_hanzi("二"));
復制代碼結果打印如下:
其中前三個漢字可以正常搜索到,而后面三個漢字無法在漢字數(shù)組中搜索到。 使用其他漢字進行檢驗,也出現(xiàn)同樣的問題, 就是一些漢字可以搜索得到,一些漢字無法搜索到,不知道是什么原因。 請各位大佬指教,謝謝! |