搜索
bottom↓
回复: 12
打印 上一主题 下一主题

感觉用串口屏挺伤害大脑的,大量的if else分支结构,眼花缭乱

[复制链接]

出130入129汤圆

跳转到指定楼层
1
发表于 2024-5-10 09:12:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
迪文的屏,我是用状态机函数解析出来每条指令。

但是那么多指令,都得用if else来判断是干什么的,界面的各种状态都得收发指令来跳转,内容一多,大脑就糊涂了。
我这个判断指令的函数差不多1000行,想简化下,但是也没有找到什么直观的编程方法。

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出20入62汤圆

2
发表于 2024-5-10 09:25:37 | 只看该作者
他们家的东西。我一般这样用。
先做界面,随便规划地址。
然后,用它的OS把我需要的信息搬运到固定的地址上,这些信息包括当前页面,亮度,一些写入和读出的数据。
在单片机里,弄个数组和OS搬运的那部分保持同步就行了。和界面完全分开。与dwin通信也就是收发,不需要啥判断啊。~
特殊情况处理下,还是挺容易的。

出0入16汤圆

3
发表于 2024-5-10 09:32:59 | 只看该作者
界面指令不就一些数据发送和按钮事件吗,switch case 指令类型 数据内容不就行了吗,每条指令一个函数处理就行了

出0入4汤圆

4
发表于 2024-5-10 10:08:10 | 只看该作者
天下乌鸦一般黑 发表于 2024-5-10 09:25
他们家的东西。我一般这样用。
先做界面,随便规划地址。
然后,用它的OS把我需要的信息搬运到固定的地址上 ...
(引用自2楼)

非常赞同你的这种方式, 这样就可以把逻辑搬到自己的处理芯片上了.

出0入0汤圆

5
发表于 2024-5-10 10:12:09 | 只看该作者
天下乌鸦一般黑 发表于 2024-5-10 09:25
他们家的东西。我一般这样用。
先做界面,随便规划地址。
然后,用它的OS把我需要的信息搬运到固定的地址上 ...
(引用自2楼)

不是很明白,这里说的地址是类似 modbus 协议中的寄存器地址么?

出20入62汤圆

6
发表于 2024-5-10 10:20:21 | 只看该作者
887799 发表于 2024-5-10 10:12
不是很明白,这里说的地址是类似 modbus 协议中的寄存器地址么?
(引用自5楼)

对啊。迪文通信协议就用2条,写地址,读地址,和modbus一样。
开个数组,写个接口不停的读写迪文到这个数组,之后程序里就可以只关心这个数组的内容,而不用关心迪文的内容了。
这样的好处是,规划界面的时候,不用很费劲的烧脑去考虑后期读写,就无脑规划。
然后用dwin的os费点劲把需要的gui搬运到你需要和单片机同步的地址里就行了。~

出130入129汤圆

7
 楼主| 发表于 2024-5-10 10:22:31 | 只看该作者
天下乌鸦一般黑 发表于 2024-5-10 10:20
对啊。迪文通信协议就用2条,写地址,读地址,和modbus一样。
开个数组,写个接口不停的读写迪文到这个数 ...
(引用自6楼)

那平时串口发送 ,接收这种 0x5a, 0xa5 指令,是DWIN OS方式编程么?
我用迪文好几次,都是这种老古董方式一条条指令来处理的

出20入62汤圆

8
发表于 2024-5-10 10:34:24 | 只看该作者
68336016 发表于 2024-5-10 10:22
那平时串口发送 ,接收这种 0x5a, 0xa5 指令,是DWIN OS方式编程么?
我用迪文好几次,都是这种老古董方 ...
(引用自7楼)

您是当纯串口用了。
他们家确实型号和版本混乱。
比如我用的型号比较老的,用它带的软件DWIN_OS_Builder_V19,可以写伪汇编代码。
比较新的屏又需要用它的软件OSBuild3.0.2.6,可以写伪汇编代码。
另外也可以研究下他们家的c51内核,可以单独跑程序,控制点屏幕自带的串口和io啥的,当个廉价控制器用,我是不想研究了,够用就行了。

出1325入193汤圆

9
发表于 2024-5-10 12:20:10 来自手机 | 只看该作者
个人开放,自己把控选型。
大彩来的快,时间成本低。

出130入129汤圆

10
 楼主| 发表于 2024-5-10 12:23:31 | 只看该作者
lb0857 发表于 2024-5-10 12:20
个人开放,自己把控选型。
大彩来的快,时间成本低。
(引用自9楼)


客户选的,我没选择权。
原本是用FPC插座,TTL,5V的屏,这次板都做好了,跟我说改用RS232, 6-36V,3.81端子的屏。
原本纯串口屏方式编程,页面不多的话也还好,页面一多,就有些烧脑了。

出0入9汤圆

11
发表于 2024-5-10 12:56:14 | 只看该作者
没用过
不过我感觉这么多情况的话不如用结构体数组来做一个表
把条件和处理函数都明明白白的在表里展现出来
然后写一个函数处理这个表的条件和执行的对应关系
虽然表也很长
但是你看一本书和看一本书的目录给人的感觉还是不一样的
不知道能不能行

出0入143汤圆

12
发表于 2024-5-11 01:19:28 来自手机 | 只看该作者
可以把大彩的程序拿过改

出0入36汤圆

13
发表于 2024-5-17 11:41:00 来自手机 | 只看该作者
迪文的串口屏,那个开发环境一坨屎。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-23 00:45

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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