迪文科技论坛

 找回密码
 立即注册
搜索
查看: 820|回复: 5

【提问】迪文屏开启crc校验后,C51单片机程序怎么通过串口

[复制链接]

7

主题

9

回帖

264

积分

中级会员

Rank: 3Rank: 3

积分
264
发表于 2024-2-1 11:08:03 | 显示全部楼层 |阅读模式
DMG80480T070_15WTR的屏,串口3接屏的tx2、rx2。不开校验误判严重,打开校验后单片机的数据传不回来了。请教大神,C51怎么添加CRC校验的程序?
回复

使用道具 举报

0

主题

415

回帖

8180

积分

论坛元老

Rank: 8Rank: 8

积分
8180
发表于 2024-2-1 11:17:54 | 显示全部楼层
您好,您可以看下这个例程里面的校验行不行。

本帖子中包含更多资源

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

x
我不在我不在
回复

使用道具 举报

7

主题

9

回帖

264

积分

中级会员

Rank: 3Rank: 3

积分
264
 楼主| 发表于 2024-2-2 13:42:17 | 显示全部楼层
Yangjc1030 发表于 2024-2-1 11:17
您好,您可以看下这个例程里面的校验行不行。

u16 crc16table(u8 *ptr, u16 len)
怎么调用,老师能不能详细解释一下?谢谢!
回复

使用道具 举报

2

主题

1228

回帖

1万

积分

论坛元老

Rank: 8Rank: 8

积分
11703
发表于 2024-2-2 14:35:54 | 显示全部楼层
u16 crc16table(u8 *ptr, u16 len)  函数第一个参数是指针,传入要校验的数组起始地址,第二个参数是长度(数组长度),最后返回的2字节CRC值。Parameter_Config.h里其实已经做好了串口的CRC开关。CRC_CHECK_UART2设置1就可以开启串口2CRC了。
回复

使用道具 举报

7

主题

9

回帖

264

积分

中级会员

Rank: 3Rank: 3

积分
264
 楼主| 发表于 2024-2-3 14:59:19 | 显示全部楼层
本帖最后由 jinjgao 于 2024-2-3 15:04 编辑
zzs999k 发表于 2024-2-2 14:35
u16 crc16table(u8 *ptr, u16 len)  函数第一个参数是指针,传入要校验的数组起始地址,第二个参数是长度( ...

谢谢老师的讲解!再请问:怎么把函数
u16 crc16table(u8 *ptr, u16 len) 嵌入我原来的程序里?我用的是STC的芯片。
回复

使用道具 举报

1

主题

14

回帖

345

积分

中级会员

Rank: 3Rank: 3

积分
345
发表于 2024-2-9 14:41:31 | 显示全部楼层
jinjgao 发表于 2024-2-3 14:59
谢谢老师的讲解!再请问:怎么把函数
u16 crc16table(u8 *ptr, u16 len) 嵌入我原来的程序里?我用的是STC ...

带CRC的串口数据其实就是 DATA + CRC,CRC一般是2字节。实际上就是,发送端调用那个CRC函数计算要发送的数据,计算出来2字节的CRC值,再紧跟数据后面发送出去。接受端,拿到数据后,做同样的运算,用同样的CRC函数计算接收的数据包,对比计算出来的CRC值和接收到的CRC值是否一致,一致则说明数据无误。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-7-4 07:27 , Processed in 0.046793 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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