问题描述
CRC,即循环冗余码校验,是一种对传输/存储数据的完整性进行检查的校验算法。因为在许多地方可能都会用到,所以stm32f0308就将这个算法用一个CRC硬件计算单元实现在了IC中,当有应用要用到CRC时,那么就可以通过软件来控制该硬件单元实现需求。
CRC计算单元
框图如下:
具体的实现是在IC内部的,这个无法得知,因此只需要知道如何使用即可,而且使用上很简单。将需要进行计算的源数据从Data register(input)写入,启动CRC计算单元计算,应当就能在Data register(output)中读到计算后的结果咯。
其实stm32f0308的CRC Data register的input和output使用的是同一个register,因为必须先输入,再得到输出,然后才能继续下一个输入……从这个过程可以看到,input和output并不是同时在使用的,那么直接用一个register复用两种功能,就OK。该register可以32 bit操作,也可16 bit, 8 bit的操作,这样可满足不同的需求了。
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-10-14 21:01:59