[STM32F2] 硬件CRC模块用起来比软件还慢?

[复制链接]
 楼主| 帛灿灿 发表于 2025-5-5 07:55 | 显示全部楼层 |阅读模式
按理说硬件应该更快,我是哪里用错了寄存器还是缓冲区搞得不对?
Clyde011 发表于 2025-5-5 07:59 | 显示全部楼层
感觉F4之后的硬件CRC才真正快起来。
公羊子丹 发表于 2025-5-5 08:00 | 显示全部楼层
你用哪个模式?32位数据模式最快。
周半梅 发表于 2025-5-5 08:01 | 显示全部楼层
我记得F2系列那个CRC FIFO有坑。
 楼主| 帛灿灿 发表于 2025-5-5 08:01 | 显示全部楼层
是不是你每个字节都重新配置了寄存器?
童雨竹 发表于 2025-5-5 08:02 | 显示全部楼层
看一下是否开启了复位CRC状态?
万图 发表于 2025-5-5 08:03 | 显示全部楼层
我用软件版本还更快点,硬件得注意节奏。
Wordsworth 发表于 2025-5-5 08:04 | 显示全部楼层
你是在中断里算的吗?
Bblythe 发表于 2025-5-5 08:05 | 显示全部楼层
把数据打包到buffer里再一次算试试。
Pulitzer 发表于 2025-5-5 08:06 | 显示全部楼层
DMA搬数据+硬件CRC速度不错。
Uriah 发表于 2025-5-5 08:06 | 显示全部楼层
你用的多项式是标准的那个0x04C11DB7吗?
远山寻你 发表于 2025-5-13 21:44 | 显示全部楼层
尝试使用DMA进行数据传输,减少CPU干预,提高数据传输效率。

冰春彩落下 发表于 2025-5-13 22:00 | 显示全部楼层
STM32F2上,硬件CRC模块理论上应比软件实现更快,若出现硬件CRC比软件慢的情况,可能由寄存器配置错误、数据传输方式不当、硬件CRC模块的FIFO问题或主频限制导致

别乱了阵脚 发表于 2025-5-13 22:30 | 显示全部楼层
寄存器配置错误,未正确配置硬件CRC模块的寄存器,如生成多项式、输入数据格式等,导致CRC模块无法以最优方式工

光辉梦境 发表于 2025-5-13 23:01 | 显示全部楼层
数据传输方式不当,若数据传输方式(如DMACPU直接传输)不适合硬件CRC模块,可能导致效率降低

夜阑风雨 发表于 2025-5-14 02:30 | 显示全部楼层
硬件CRC模块的FIFO问题,STM32F2的硬件CRC模块可能存在FIFO缓存机制,若未正确处理FIFO的读写,可能导致数据处理延迟

三生万物 发表于 2025-5-14 03:12 | 显示全部楼层
确保数据以32位模式传输,以充分利用硬件CRC模块的处理能力

一秒落纱 发表于 2025-5-14 05:00 | 显示全部楼层
若硬件CRC模块有FIFO缓存机制,需确保在数据传输过程中正确处理FIFO的读写,避免数据溢出或等待

江河千里 发表于 2025-5-14 07:00 | 显示全部楼层
确保硬件CRC模块的寄存器(如生成多项式、初始值、输入数据格式等)配置正确

暖了夏天蓝了海 发表于 2025-5-14 07:59 | 显示全部楼层
参考STM32F2的参考手册,确认硬件CRC模块的配置步骤和寄存器设置

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

本版积分规则

149

主题

5828

帖子

0

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