天下无贼 发表于 2022-4-19 14:35:25

文本通知小数问题

void NotifyText(uint16 screen_id, uint16 control_id, uint8 *str)
{
                if(screen_id == 8)
        {
                  float Val = 0;
      uint32 value = 0;                                                            
      sscanf(str,"%ld",&value);
                  Val = atof(str);
                  if(control_id == 1)
                                {
                          AT24CXX_WriteOneByte(0, Val);
                                }

SetTextFloat(8,1,AT24CXX_ReadOneByte(0),0,1);

这样能显示小数吗?为啥我的老是显示不了小数。

If后要接end 发表于 2022-4-19 14:53:03

例程里面有设置单精度小数的函数额,直接调用看看

天下无贼 发表于 2022-4-19 15:22:44

If后要接end 发表于 2022-4-19 14:53
例程里面有设置单精度小数的函数额,直接调用看看

SetTextFloat(8,1,AT24CXX_ReadOneByte(0),1,1);这个就是单精度浮点数,咋小数部分显示不出来。后面会变0.

If后要接end 发表于 2022-4-19 15:24:02

发出来的指令获取一下看看是不是正确的,然后的话看看是不是文本控件的宽度太小了导致没显示全

天下无贼 发表于 2022-4-19 15:41:05

If后要接end 发表于 2022-4-19 15:24
发出来的指令获取一下看看是不是正确的,然后的话看看是不是文本控件的宽度太小了导致没显示全 ...

文本控件大小应该没有问题,我已经能看到小数点后一位的值,只不过老是是0,获取到的指令我用电脑跟显示屏联调的话看了一下也没有问题。我看文本控件上说:如果文本内容是浮点值,需要在此函数下重新把下发的字符串转回浮点值。这个是不是我要自己在函数下转一下?

If后要接end 发表于 2022-4-19 16:02:06

天下无贼 发表于 2022-4-19 15:41
文本控件大小应该没有问题,我已经能看到小数点后一位的值,只不过老是是0,获取到的指令我用电脑跟显示 ...

这个是屏幕将指令下发到MCU的

If后要接end 发表于 2022-4-19 16:06:16

或者你用SetTextValue这个函数看看
页: [1]
查看完整版本: 文本通知小数问题