嵌入式技术william hill官网
直播中

赵霞

5年用户 41经验值
擅长:嵌入式技术
私信 关注
[问答]

迪文屏中增量调节的程序问题

迪文屏设置的增量调节是在屏幕中触摸调节,当显示的数字较小时,进行加(触摸屏幕上的加号即可),较大时,进行减(触摸屏幕上减号即可),我利用串口助手读出的数据为(5A A5 06 83 00 02 01 01 F4)01F4为显示的数字为500
我想问,这个程序具体的实现方法是什么?
if((sdataA[0]==0x5a) && (sdataA[1]==0xa5) && (sdataA[2]==0x06) && (sdataA[3]==0x83) && (sdataA[4]==0x00)&& (sdataA[5]==0x02) && (sdataA[6]==0x01) )
后面的比较数字怎么写(sdataA[7]、sdataA[8])?增量调节怎么写?(100)

回帖(4)

李存皓

2019-10-17 14:57:25
你给的信息量太少,没法帮助你
1 举报
  • 赵霞: 我已经把具体的写在评论里了,麻烦你看看

赵霞

2019-10-17 15:52:31
速度增量调节是在屏幕上,例如:
U8F_XN%3@E6VQ)3@2Z7V[QF.png
串口指令为:5A A5 06 83 00 02 01 01 F4

而我写的程序为:
void speed_set()
{
    HMI_SEND_BUF[0]=Speed;
    if((rdataA[0]==0x5A) && (rdataA[1]==0xA5) && (rdataA[2]==0x06) && (rdataA[3]==0x83) && (rdataA[4]==0x00)&& (rdataA[5]==0x02) && (rdataA[6]==0x01) && (rdataA[7]==(HMI_SEND_BUF[0]>>8)&0xff) &&(rdataA[7]==HMI_SEND_BUF[0]&0xff))
       {
        if(Speed<12000)
        {
            Speed+=100;
            HMI_SEND_BUF[0]=Speed;
            PLC_Data_Wr2HMI(0X0002,0,1);
        }
        if(Speed>500)
        {
            Speed-=100;
            HMI_SEND_BUF[0]=Speed;
            PLC_Data_Wr2HMI(0X0002,0,1);
        }
       }
}
这样写是否正确?

举报

李存皓

2019-10-17 16:02:12
几个问题
1. HMI_SEND_BUF[0]这个数据就是speed的值,屏幕上按下后,串口输入的值怎么匹配这个值
2. 你如何保证rdata接受到的数据,刚好就是从下标0开始的数组?
3. if (speed < 1200)  if(spedd >500) 这两个if是并列情况,意思是都有可能执行,这里应该不是这样的逻辑

解决办法
1. 确认屏幕按下后串口的数据
2. 确认rdata接收数据的正确性
3. 梳理判断串口数据后的逻辑操作
举报

alonggege

2019-10-24 13:22:40
不错,很好的经验分享,辛苦麻烦了,欠缺这方面的资料,非常感谢
举报

更多回帖

发帖
×
20
完善资料,
赚取积分