迪文科技论坛

 找回密码
 立即注册
搜索
查看: 68|回复: 2

【提问】用函数写入中文显示错误

[复制链接]

24

主题

60

回帖

493

积分

中级会员

Rank: 3Rank: 3

积分
493
发表于 2025-3-4 11:24:15 | 显示全部楼层 |阅读模式
用的是:8MB屏


用:

void Write_Dgusii_Vp_byChar(unsigned int addr,unsigned char *buf,unsigned int len)
{
        unsigned char i;
//        bit EA_Bak;
//        EA_Bak = EA;
//        EA = 0;
        i = (unsigned char)(addr & 0x01);
        addr = addr / 2;
        ADR_H = 0x00;
        ADR_M = (unsigned char)(addr >> 8);
        ADR_L = (unsigned char)(addr);
        ADR_INC = 0x01;
        RAMMODE = 0x8F;
        while(APP_ACK == 0);
        if(i && len > 0)
        {
                if(len == 1)
                {
                        RAMMODE = 0x82;
                        DATA1 = *buf++;
                        APP_EN = 1;
                        while(APP_EN == 1);
                        len--;
                }
                else
                {
                        RAMMODE = 0x83;
                        DATA1 = *buf++;
                        DATA0 = *buf++;
                        APP_EN = 1;
                        while(APP_EN == 1);
                        len -= 2;
                }
        }
        RAMMODE = 0x8F;
        while(len >= 4)
        {
                DATA3 = *buf++;
                DATA2 = *buf++;
                DATA1 = *buf++;
                DATA0 = *buf++;
                APP_EN = 1;
                while(APP_EN == 1);
                len -= 4;
        }
        
        if(len == 3)
        {
                RAMMODE = 0x8E;
                DATA3 = *buf++;
                DATA2 = *buf++;
                DATA1 = *buf++;
                APP_EN = 1;
                while(APP_EN == 1);
        }
        else if(len == 2)
        {
                RAMMODE = 0x8C;
                DATA3 =* buf++;
                DATA2 =* buf++;
                APP_EN = 1;
                while(APP_EN == 1);
        }
        else if(len == 1)
        {
                RAMMODE = 0x88;
                DATA3 = *buf++;
                APP_EN = 1;
                while(APP_EN == 1);
        }
        RAMMODE = 0x00;
//        EA = EA_Bak;
}


Write_Dgusii_Vp_byChar(0x4100,"参数设置异常",12);显示部分汉字错误
中间是用初始值显示的
这是什么原因导致的

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0

主题

834

回帖

5934

积分

论坛元老

Rank: 8Rank: 8

积分
5934
发表于 2025-3-4 13:46:46 | 显示全部楼层
什么型号的屏幕;指令指令发送哪显示那个字试试
回复

使用道具 举报

24

主题

60

回帖

493

积分

中级会员

Rank: 3Rank: 3

积分
493
 楼主| 发表于 2025-3-5 19:40:23 | 显示全部楼层
168988 发表于 2025-3-4 13:46
什么型号的屏幕;指令指令发送哪显示那个字试试

我用编码解决了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|迪文科技论坛 ( 京ICP备05033781号-1 )

GMT+8, 2025-4-17 02:55 , Processed in 0.026475 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表