发新帖我要提问
123
返回列表
打印
[N32G430]

‌在N32单片机上实现CRC校验

[复制链接]
楼主: wilhelmina2
手机看帖
扫描二维码
随时随地手机跟帖
41
pmp| | 2025-1-11 17:37 | 只看该作者 回帖奖励 |倒序浏览
在安全敏感的应用中,确保CRC校验不会成为系统的安全漏洞。

使用特权

评论回复
42
sanfuzi| | 2025-1-11 18:16 | 只看该作者
如果单片机有硬件CRC模块,初始化CRC模块,设置初始值和多项式。
如果是软件实现,初始化一个足够大的寄存器(通常是32位或64位)来存储CRC值。

使用特权

评论回复
43
pixhw| | 2025-1-11 19:11 | 只看该作者
如果使用 N32 单片机的标准库或 HAL 库来实现 CRC 校验,要熟悉相关的函数接口和调用方法。注意函数参数的传递顺序、数据类型和取值范围等,确保正确调用 CRC 计算函数。若自行编写 CRC 计算代码,要保证算法的正确性和代码的规范性

使用特权

评论回复
44
hearstnorman323| | 2025-1-11 19:56 | 只看该作者
如果是通信应用,发送方会附加CRC值,接收方需要对接收到的数据和CRC值进行相同的CRC计算,并将计算结果与接收到的CRC值进行比较,以验证数据的完整性。

使用特权

评论回复
45
robincotton| | 2025-1-11 20:15 | 只看该作者
接收端收到数据帧后,使用相同的CRC生成多项式进行模2除法运算。
如果余数为0,则说明数据帧在传输过程中没有出错;否则,说明出现了差错,需要请求重发。

使用特权

评论回复
46
51xlf| | 2025-1-11 20:37 | 只看该作者
多项式的选择对CRC校验的检错能力有重要影响。不同的多项式具有不同的检错特性,因此需要根据具体的应用场景和需求进行选择。

使用特权

评论回复
47
wwppd| | 2025-1-11 21:01 | 只看该作者
对于大文件或大量数据,分段处理可以减少内存占用和提高计算速度。

使用特权

评论回复
48
plsbackup| | 2025-1-11 21:24 | 只看该作者
CRC校验中有两个关键点:一是预先确定一个发送端和接收端都用来作为除数的二进制比特串(或多项式),可以随机选择,也可以使用国际标准,但最高位和最低位必须为1;二是把原始帧与上面计算出的除数进行模2除法运算,计算出CRC码。

使用特权

评论回复
49
weifeng90| | 2025-1-11 21:41 | 只看该作者
现在很多MCU都是自带硬件CRC

使用特权

评论回复
50
iyoum| | 2025-1-11 21:47 | 只看该作者
在发送数据之前,需要在数据帧后面附加一定数量的0(数量取决于CRC生成多项式的位数),以构成一个新的数据帧。
然后,使用模2除法将这个新的数据帧除以CRC生成多项式,得到的余数即为CRC校验码。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则