迪文科技论坛

 找回密码
 立即注册
搜索
查看: 162|回复: 5

【提问】关于相关地址数值显示问题

[复制链接]

1

主题

6

回帖

58

积分

注册会员

Rank: 2

积分
58
发表于 2024-3-14 11:44:54 | 显示全部楼层 |阅读模式
我用的k600+用单片机串口发送  写入地址 实现字符和地址的显示 目前可以显示字字符但是 数字用却出现了点问题


void DwinWriteAddr(uint16_t addr, char* str, uint8_t strl)
{
        uint8_t len,i;
        uint8_t lenstr;
        uint8_t Packbuf[256 + 6] = {0};
   lenstr = strlen(str);
                if (lenstr > strl){
                        lenstr = strl;
                }
                Packbuf[0] = 0x5a;
                Packbuf[1] = 0xa5;
                len = 3 + strl;
                Packbuf[2] = len;
                Packbuf[3] = 0x82;
                Packbuf[4] = addr >> 8;
                Packbuf[5] = (uint8_t)addr;
                for (i=0; i <= lenstr; i++){
                        Packbuf[6+i] = *(str+i);
                }
                for (i=0; i < strl - lenstr; i++){
                        Packbuf[6+strlen(str)] = '\0';     //填补空格
                }
                len=len+3;
        Serial_SendArray(Packbuf, len);
}

uint32_t number=1000;
sprintf((char *)buf,"%d", number );
DwinWriteAddr(0x0202,(char *)buf, 8);


不知道为什么数字显示不正确

回复

使用道具 举报

0

主题

932

回帖

6189

积分

论坛元老

Rank: 8Rank: 8

积分
6189
发表于 2024-3-14 14:16:15 | 显示全部楼层
控件是用的文本显示控件么?串口发到屏上数字是怎么显示的?
回复

使用道具 举报

1

主题

6

回帖

58

积分

注册会员

Rank: 2

积分
58
 楼主| 发表于 2024-3-14 14:25:25 | 显示全部楼层
fay 发表于 2024-3-14 14:16
控件是用的文本显示控件么?串口发到屏上数字是怎么显示的?

数字控件
回复

使用道具 举报

1

主题

6

回帖

58

积分

注册会员

Rank: 2

积分
58
 楼主| 发表于 2024-3-14 14:28:54 | 显示全部楼层

5位整数一位小数 用我上文的办法 用 100 就会 显示24160.0  5A A5 0B 82 02 02 31 30 30 00 00 00 00 00串口是这样的数据
回复

使用道具 举报

0

主题

932

回帖

6189

积分

论坛元老

Rank: 8Rank: 8

积分
6189
发表于 2024-3-14 14:29:45 | 显示全部楼层
本帖最后由 fay 于 2024-3-14 14:31 编辑

杨松林 发表于 2024-3-14 14:28
5位整数一位小数 用我上文的办法 用 100 就会 显示24160.0  5A A5 0B 82 02 02 31 30 30 00 00 00 00 00 ...


数据变量显示是发的数据的十六进制不是ASCII码

(1)显示整数数据 100
5A A5 05 82 5420 0064
含义:0x5A 0xA5:帧头;
0x 05:数据长度,为 82 54 20 00 64 这 5 个字节;
0x 82:写指令;
0x 5420:变量地址;
0x 0064:数据 100。整数范围:-32768 到 32767,占 2 字节。


(2)显示长整数数据 100
5A A5 07 82 5420 0000 0064
含义:0x5A 0xA5 固定帧头;0x07 数据长度;0x82 写指令;
0x 5420 变量地址;
0x 0000 0064 长整数数据 100。长整数范围-2147473648 到 2147483647,占 4 字节,字节不够的位补 00。
数据类型要设置为长整数。

回复

使用道具 举报

1

主题

6

回帖

58

积分

注册会员

Rank: 2

积分
58
 楼主| 发表于 2024-3-14 15:11:00 | 显示全部楼层
fay 发表于 2024-3-14 14:29
杨松林 发表于 2024-3-14 14:28
5位整数一位小数 用我上文的办法 用 100 就会 显示24160.0  5A A5 0B 82 02 ...

谢谢 了解了
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-23 01:07 , Processed in 0.093770 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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