感觉用串口屏挺伤害大脑的,大量的if else分支结构,眼花缭乱
迪文的屏,我是用状态机函数解析出来每条指令。但是那么多指令,都得用if else来判断是干什么的,界面的各种状态都得收发指令来跳转,内容一多,大脑就糊涂了。
我这个判断指令的函数差不多1000行,想简化下,但是也没有找到什么直观的编程方法。 他们家的东西。我一般这样用。
先做界面,随便规划地址。
然后,用它的OS把我需要的信息搬运到固定的地址上,这些信息包括当前页面,亮度,一些写入和读出的数据。
在单片机里,弄个数组和OS搬运的那部分保持同步就行了。和界面完全分开。与dwin通信也就是收发,不需要啥判断啊。~
特殊情况处理下,还是挺容易的。 界面指令不就一些数据发送和按钮事件吗,switch case 指令类型 数据内容不就行了吗,每条指令一个函数处理就行了 天下乌鸦一般黑 发表于 2024-5-10 09:25
他们家的东西。我一般这样用。
先做界面,随便规划地址。
然后,用它的OS把我需要的信息搬运到固定的地址上 ...
(引用自2楼)
非常赞同你的这种方式, 这样就可以把逻辑搬到自己的处理芯片上了. 天下乌鸦一般黑 发表于 2024-5-10 09:25
他们家的东西。我一般这样用。
先做界面,随便规划地址。
然后,用它的OS把我需要的信息搬运到固定的地址上 ...
(引用自2楼)
不是很明白,这里说的地址是类似 modbus 协议中的寄存器地址么? 887799 发表于 2024-5-10 10:12
不是很明白,这里说的地址是类似 modbus 协议中的寄存器地址么?
(引用自5楼)
对啊。迪文通信协议就用2条,写地址,读地址,和modbus一样。
开个数组,写个接口不停的读写迪文到这个数组,之后程序里就可以只关心这个数组的内容,而不用关心迪文的内容了。
这样的好处是,规划界面的时候,不用很费劲的烧脑去考虑后期读写,就无脑规划。
然后用dwin的os费点劲把需要的gui搬运到你需要和单片机同步的地址里就行了。~ 天下乌鸦一般黑 发表于 2024-5-10 10:20
对啊。迪文通信协议就用2条,写地址,读地址,和modbus一样。
开个数组,写个接口不停的读写迪文到这个数 ...
(引用自6楼)
那平时串口发送 ,接收这种 0x5a, 0xa5 指令,是DWIN OS方式编程么?
我用迪文好几次,都是这种老古董方式一条条指令来处理的 68336016 发表于 2024-5-10 10:22
那平时串口发送 ,接收这种 0x5a, 0xa5 指令,是DWIN OS方式编程么?
我用迪文好几次,都是这种老古董方 ...
(引用自7楼)
您是当纯串口用了。
他们家确实型号和版本混乱。
比如我用的型号比较老的,用它带的软件DWIN_OS_Builder_V19,可以写伪汇编代码。
比较新的屏又需要用它的软件OSBuild3.0.2.6,可以写伪汇编代码。
另外也可以研究下他们家的c51内核,可以单独跑程序,控制点屏幕自带的串口和io啥的,当个廉价控制器用,我是不想研究了,够用就行了。 个人开放,自己把控选型。
大彩来的快,时间成本低。 lb0857 发表于 2024-5-10 12:20
个人开放,自己把控选型。
大彩来的快,时间成本低。
(引用自9楼)
客户选的,我没选择权。
原本是用FPC插座,TTL,5V的屏,这次板都做好了,跟我说改用RS232, 6-36V,3.81端子的屏。
原本纯串口屏方式编程,页面不多的话也还好,页面一多,就有些烧脑了。 没用过
不过我感觉这么多情况的话不如用结构体数组来做一个表
把条件和处理函数都明明白白的在表里展现出来
然后写一个函数处理这个表的条件和执行的对应关系
虽然表也很长
但是你看一本书和看一本书的目录给人的感觉还是不一样的
不知道能不能行 可以把大彩的程序拿过改 迪文的串口屏,那个开发环境一坨屎。
页:
[1]