[APM32E0] APM32E030的CRC32校验模块如何传入8位数据

[复制链接]
244|1
OceanGaze 发表于 2025-9-13 19:19 | 显示全部楼层 |阅读模式
APM32E030在用户手册里面有说可以支持8位,16位,32位数据的输入。
CRC32外部输入宽度.jpg
但是我看寄存器实现,代码示例里均是输入32位的word长度。关键,我也没有看到有按字节输入的选项。
这个要如何实现?感觉就是直接传入字节,按word处理了!



Gfan 发表于 2025-9-17 10:20 | 显示全部楼层
本帖最后由 Gfan 于 2025-9-17 10:59 编辑

关于APM32E030的CRC32校验模块传入8位数据的问题,虽然寄存器接口设计为32位字操作,但可以通过以下方式灵活处理8位数据输入:

缓冲收集法// 当有连续字节时,可收集4字节后一次性写入
uint32_t temp = 0;
temp |= (byte1 << 0);
temp |= (byte2 << 8);
temp |= (byte3 << 16);
temp |= (byte4 << 24);


另外,如果想计算不同位数的CRC值,则对CRC_DATA寄存器按照不同的位数写入即可哈:
1. 8 bit : (volatile uint8_t *)&CRC->DATA = pData[index];
2. 16 bit : (volatile uint16_t *)&CRC->DATA = pData[index];
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

38

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部