查看: 5081|回复: 5

如何使用PSoC驱动LCD12864显示汉字/*tt*/

[复制链接]
  • TA的每日心情
    奋斗
    2014-11-27 16:02
  • 签到天数: 66 天

    连续签到: 1 天

    [LV.6]常住居民II

    发表于 2013-4-19 15:12:47 | 显示全部楼层 |阅读模式
    分享到:

    关于PSoC写12864底层驱动的方法,在kk的前面两篇帖子里讲的非常详细了
    串行https://www.cirmall.com/bbs/forum.php?mod=viewthread&tid=6683&page=1#pid61514pid61514
    并行https://www.cirmall.com/bbs/thread-6603-1-1.html
    写的很详细,鼓掌~撒花~@kk5290122  


    但是这两种驱动都没有办法显示汉字,如果在字符串中加入了汉字,则会显示出乱码。
    究其原因,不在于驱动程序写的不对。


    感觉原因在PSoC Creator里面,对汉字的解码不对
    比如定义数组
    2013-3-28 21:59 上传
    下载附件 (14.77 KB)
    定义的数组



    但实际table4[]在内存里是:
    2013-3-28 21:59 上传
    下载附件 (11.13 KB)
    内存



    一个汉字占掉了3个字符位置。。这明显解码不对
    (因为在GCC编译环境下拓展字符必须以UNICODE32存储)



    官方说可以尝试以下方法:
    #include <wchar.h>
    ....
    wchar_t test_1[] = L"我是"; //用wchar_t 申明 汉字变量 在存储, 这样每个汉字都会转成32位 (可以用(uint16) 来强制取低16位来用)

    具体没试,大家可以一试。

    不过我一哥们发现了一个很简便的方法。 @guodongws
    因为程序仅仅是解码不对,只需要我们在写数组的时候直接把 正确的汉字编码写上即可

    比如kk的串行程序中
    uchar code table4[]={"PSOC3 LCD12864"};
    uchar code table5[]={"Serial Driver"};
    uchar code table6[]={"kk5290122 write"};
    uchar code table7[]={"in 2013-01-13 "};

    比如改成:
    uchar  table4[]={0x20,0x20,0x20,0x20,0xC0,0xED,0xB9,0xA4,0xD7,0xD4,0xBF,0xD8,0xD6,0xC6,0xD4,0xEC};
                                                          //               理              工              自               控               制                造
    就可以显示出汉字了。

    具体编码是根据GB2312简体中文编码表,来找到。

    已作为附件上传

    GB2312简体中文编码表.doc

    90 KB, 下载次数: 22

    汉字编码

    回复

    使用道具 举报

  • TA的每日心情
    无聊
    2016-12-20 15:08
  • 签到天数: 510 天

    连续签到: 1 天

    [LV.9]以坛为家II

    发表于 2013-4-19 18:45:17 | 显示全部楼层
    老实说,显示汉字还要自己查汉字编码很麻烦
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2014-11-27 16:02
  • 签到天数: 66 天

    连续签到: 1 天

    [LV.6]常住居民II

     楼主| 发表于 2013-4-19 22:09:14 | 显示全部楼层
    ming1006 发表于 2013-4-19 18:45
    老实说,显示汉字还要自己查汉字编码很麻烦

    同意。。尤其是我这种要做好多屏幕汉字的。。确实挺麻烦
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2014-11-27 16:02
  • 签到天数: 66 天

    连续签到: 1 天

    [LV.6]常住居民II

     楼主| 发表于 2013-4-19 22:10:28 | 显示全部楼层
    ming1006 发表于 2013-4-19 18:45
    老实说,显示汉字还要自己查汉字编码很麻烦

    不如用取模软件 按 作图的方式来 画
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2016-12-20 15:08
  • 签到天数: 510 天

    连续签到: 1 天

    [LV.9]以坛为家II

    发表于 2013-4-19 23:56:15 | 显示全部楼层
    tao475824827 发表于 2013-4-19 22:10
    不如用取模软件 按 作图的方式来 画

    如果自带字库的话直接用还是很方便的,不过位子就不能随意了,要是想界面又是文字又是图案的话,这倒是不错的方法
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2013-11-5 22:08
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    发表于 2013-11-6 16:32:26 | 显示全部楼层
    lz 这个办法可以试试·~~  
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条



    手机版|小黑屋|与非网

    GMT+8, 2024-5-25 10:19 , Processed in 0.152177 second(s), 25 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.