迪文科技论坛

 找回密码
 立即注册
搜索
查看: 1047|回复: 6

【提问】DMT80480T050_01怎么用艺术字显示数字

[复制链接]

7

主题

5

回帖

82

积分

注册会员

Rank: 2

积分
82
发表于 2020-7-28 17:17:25 | 显示全部楼层 |阅读模式
现在已经生成了艺术字图标文件了,配置为2位整数,2位小数,在DGUS软件中给初始值1234也能正常显示12.34,
那么在程序中应当发送什么数据才能让它显示12.34
大佬们帮帮忙
回复

使用道具 举报

3

主题

111

回帖

1932

积分

金牌会员

Rank: 6Rank: 6

积分
1932
发表于 2020-7-28 19:05:27 | 显示全部楼层
发送1234的十六进制数据,按照定点小数处理。
例如变量地址是0X1000, 指令5A A5 05 82 1000 04D2
回复

使用道具 举报

0

主题

47

回帖

2743

积分

金牌会员

Rank: 6Rank: 6

积分
2743
发表于 2020-7-28 19:12:28 | 显示全部楼层
楼主,您好!指令为:5A A5 05 82 +变量地址+04D2 可以显示12.34
坚持不一定成功,但放弃一定失败!
回复

使用道具 举报

7

主题

5

回帖

82

积分

注册会员

Rank: 2

积分
82
 楼主| 发表于 2020-7-28 19:20:57 | 显示全部楼层
dwin123456 发表于 2020-7-28 19:05
发送1234的十六进制数据,按照定点小数处理。
例如变量地址是0X1000, 指令5A A5 05 82 1000 04D2 ...

我是这么发送的  可是显示的是-6.64   我也不知道怎么回事
回复

使用道具 举报

3

主题

111

回帖

1932

积分

金牌会员

Rank: 6Rank: 6

积分
1932
发表于 2020-7-28 19:27:39 | 显示全部楼层
艺术字显示的变量类型是整数两个字节还是长整数4个字节,您发的指令是什么样子的。麻烦提供一下。
回复

使用道具 举报

7

主题

5

回帖

82

积分

注册会员

Rank: 2

积分
82
 楼主| 发表于 2020-7-28 19:35:52 | 显示全部楼层
本帖最后由 马建呀 于 2020-7-28 19:37 编辑
dwin123456 发表于 2020-7-28 19:27
艺术字显示的变量类型是整数两个字节还是长整数4个字节,您发的指令是什么样子的。麻烦提供一下。 ...

这是配置
变量类型 :整数(2字节)
整数位数:2
小数位数:2


程序里按这个发
void WriteData(short int addr,unsigned short int *value,int len)//用到
{
        unsigned char sendBuf[50]={0};
        unsigned char i=0;
       
        sendBuf[0]=FrameHeadByte1;//A5
        sendBuf[1]=FrameHeadByte2;//5A
        sendBuf[2]=3+2*len;
        sendBuf[3]=0x82;
        sendBuf[4]=(addr&0xFF00)>>8;            //addr的高8位   //char型是8位
        sendBuf[5]=addr&0x00FF;                 //addr的低8位
        for(i=0;i<2*len;i+=2)
        {
                sendBuf[6+i]=(value[i/2]&0xFF00)>>8;  //value[0]、value[1]...的高8位
                sendBuf[7+i]=(value[i/2]&0x00FF);     //value[0]、value[1]...的低8位
        }
        UART4_Send_Data(sendBuf,6+2*len);
}

回复

使用道具 举报

3

主题

111

回帖

1932

积分

金牌会员

Rank: 6Rank: 6

积分
1932
发表于 2020-7-28 20:08:20 | 显示全部楼层
本帖最后由 dwin123456 于 2020-7-28 21:19 编辑
马建呀 发表于 2020-7-28 19:35
这是配置
变量类型 :整数(2字节)
整数位数:2

4、5、6、7加上类型转换试一下或是您抓一包数据看看实际发出的数据指令
senfBuf[4]=char(addr>>8);
senfBuf[5]=char(addr);
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-23 11:05 , Processed in 0.058521 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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