迪文科技论坛

 找回密码
 立即注册
搜索
12
返回列表 发新帖
楼主: cuijia

【OS用户核应用】T5L屏串口2、3、4、5的82、83协议C语言

[复制链接]

15

主题

112

回帖

1726

积分

金牌会员

Rank: 6Rank: 6

积分
1726
 楼主| 发表于 2023-9-19 16:47:35 | 显示全部楼层
幽游梦蝶 发表于 2023-9-19 15:28
我有拿到FAE给我这个demo代码,请问楼主是迪文员工吗?

PS:我拿到后就发现协议写得有bug。未对数据包长度 ...

对哪个长度检验,这个代码可以满足大部分需求了,有些极端情况有可能不适用。
回复

使用道具 举报

4

主题

37

回帖

201

积分

中级会员

Rank: 3Rank: 3

积分
201
发表于 2023-9-19 17:49:55 | 显示全部楼层
cuijia 发表于 2023-9-19 16:47
对哪个长度检验,这个代码可以满足大部分需求了,有些极端情况有可能不适用。 ...

看迪文的协议,如图:



而您程序:


您程序逻辑是串口缓冲收数据,当超时时认为一帧数据完毕,这个时候就会直接去处理这一帧数据;但并未对这一帧数据的长度进行校验,在不使用CRC校验的情况下,至少会出现,假如本来数据包需要10个字节,但实际只有9个字节,也会认为是正确的,会有回应,会有处理;而最后一个字节的数据是看对应的缓冲区里面是什么(和野指针类似),所以会有意想不到的结果。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

4

主题

37

回帖

201

积分

中级会员

Rank: 3Rank: 3

积分
201
发表于 2023-9-19 18:04:45 | 显示全部楼层
事实上,我对FAE给的例程,以及论坛上各位网友分享的程序,都不是特别满意(我的应用需求跟大家可能稍稍不同),所以几乎所有代码都重写了一遍,包括启动的A51程序。然后作为C51这边的蓝本(BASE)。解决了如下几个问题:
1、A51程序解决了论坛元老视频中讲解的,xdata全局变量不能定义初始化的问题,以及未初始化不一定为0的问题;
2、用定时器2做个1ms定时,来作为系统的滴答时钟,同时用它来做延时函数和RTC;
3、优化了和GUI的vp读写函数,写了两个,一个更加注重速度,一个更加注重代码,默认使用注重速度的。
4、四个串口(UART2,UART3,UART4,UART5)都做成了单独可调用的模块,模块只负责发送和接收(都用中断模式,这个很重要,我看到所有其他人写的发送都用查询模式),协议交给更上一层来做。其实我本来在模块中定义了回调函数可以在中断中执行接收协议的处理;但考虑到8051内核只有256个idata来做堆栈,以及串口只有一级缓冲,最后还是去掉了。(其实测试来看也没有什么大问题,因为迪文芯片的8051是增强型单周期指令,主频又可以到200M,普通的应用场景足够)
5、可以让任何一个串口映射8283协议,测试可以用串口工具来读写VP,也可以用DGUS工具来下载13,14,22文件。
回复

使用道具 举报

15

主题

112

回帖

1726

积分

金牌会员

Rank: 6Rank: 6

积分
1726
 楼主| 发表于 2023-9-19 20:43:48 | 显示全部楼层
幽游梦蝶 发表于 2023-9-19 18:04
事实上,我对FAE给的例程,以及论坛上各位网友分享的程序,都不是特别满意(我的应用需求跟大家可能稍稍不 ...

我这个版本处理逻辑比较简单,适合初学者,做了很多兼容,串口处理机制类似于半双工,接收完成后再处理数据,很好的兼容485特性。如果是ttl和232我更推荐我写的另一个8283协议版本。
回复

使用道具 举报

1

主题

3

回帖

92

积分

注册会员

Rank: 2

积分
92
发表于 2023-12-19 19:13:20 | 显示全部楼层
你好,1.7版本工程串口4的485发送没数据,也进不了发送中断。帮忙看看啥问题。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

15

主题

112

回帖

1726

积分

金牌会员

Rank: 6Rank: 6

积分
1726
 楼主| 发表于 2024-1-2 10:28:05 | 显示全部楼层
yubao 发表于 2023-12-19 19:13
你好,1.7版本工程串口4的485发送没数据,也进不了发送中断。帮忙看看啥问题。 ...

仿真是进不了中断的吧,实际测试可以发数据的。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-7 05:15 , Processed in 0.069550 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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