国产成人av人人爽人人澡-亚洲国产日韩欧美一区-好吊日视频这里只有精品-日本高清精品视频在线

������gӭ���������зf���¿Ƽ����޹�˾��
�Z��
��ǰλ�ã���� >> MM32/�`��΢��� >> MM32SPIN2x 늙C����MCU������ɫ����CRCӋ���Ԫ

MM32SPIN2x 늙C����MCU������ɫ����CRCӋ���Ԫ

���ߣ� ��Դ: �l(f��)���r�g��2019-01-03  �g�[��25
��һ�¹�(ji��)���ѽ�(j��ng)�̴�����ʹ��MM32SPIN2x��UARTBit9ģʽ�����¹�(ji��)���c���һ��ʹ��CRCģ�K�M�Д�(sh��)��(j��)У���






�ڔ�(sh��)��(j��)��ݔ�^�������oՓ��ݔϵ�y(t��ng)���O(sh��)Ӌ����ô���������e�����������@�N���e���ܕ���(d��o)�����·�ς�ݔ?sh��)�һ�����߶��������Ɖ�(���F(xi��n)���ز��e��0׃?y��u)?������1׃?y��u)?)���Ķ����ܷ����յ��e�`�Ĕ�(sh��)��(j��)����M����߽��ܷ��յ���(sh��)��(j��)�����_�ʣ��ڽ��ܷ����Ք�(sh��)��(j��)֮ǰ��Ҫ����(sh��)��(j��)�M�в��e�z�y�����҃H���z�y�ĽY(ji��)�������_�r���շ����������”�(sh��)��(j��)���z�y�ķ�ʽ�ж�N����Ҋ������żУ������ؾW(w��ng)У��ѭ�h(hu��n)����У�ȡ�


 


����ѭ�h(hu��n)����У򞣨CRC��ԭ�팍�H�Ͼ�����һ��pλ���M�Ɣ�(sh��)��(j��)����֮�󸽼�һ��rλ���M�ƙz�a(����)���Ķ���(g��u)��һ�����L��n��p��rλ�Ķ��M�������������ڔ�(sh��)��(j��)����֮����@���z�a�c��(sh��)��(j��)���еă�(n��i)��֮�g������ij�N�ض����P(gu��n)ϵ�������ɔ_��ԭ��ʹ��(sh��)��(j��)�����е�ijһλ��ijЩλ�l(f��)���e�`���@�N�ض��P(gu��n)ϵ�͕����Ɖ�����ˣ�ͨ�^�z���@һ�P(gu��n)ϵ���Ϳ��Ԍ��F(xi��n)����(sh��)��(j��)���_�Եęz���ֻҪ��(j��ng)�^��������x����ʹ��λ��(sh��)����ij���(sh��) P����ô���F(xi��n)�z�y�����IJ��e�ĸ��ʾͺ�С��С��CRC��һ�N���õęz�e�a���o���z�y���e�`����������˲����������ԄӼm�e��һ��������ǁG�����յĔ�(sh��)��(j��)��










������ij����D���҂����԰l(f��)�F(xi��n)�����ʽ�ă��Խ�ߣ�У�Ч��Խ�����������M�ĕr�gҲԽ�L����˳��ò������?q��)��õ�Ӳ��CRCģ�K�����Ч����


 


���в�����������ȸ���(j��)�ض���У���ʽ�����1�ֹ�(ji��)��(sh��)��(j��)����������(y��ng)��256������(sh��)������������������̌�������惦���в�ԃ�������ھ��\�������Ƿdz�ͨ�õ��������������CRC16У����惦����Ҫռ512�ֹ�(ji��)��CRC32�t��Ҫ1 KB�����������޵Ć�Ƭ�CROM�YԴ���f��ռ������С������ֻ�����b�˴˱����Ͳ��ò�������Ƭ�C����̖��


 


��SPIN2xϵ��MCU����������һ��CRCӋ���Ԫ��ʹ��1��32λ��(sh��)��(j��)�Ĵ�������ݔ���ݔ�����ڈ�(zh��)�Ќ������rݔ��CRCӋ����”�(sh��)��(j��)���ڈ�(zh��)���x�����r������һ��CRCӋ��ĽY(ji��)����ÿһ�Ό��딵(sh��)��(j��)�Ĵ���������������32λ���M��CRCӋ�������������ֹ�(ji��)��Ӌ�����Ķ���(ji��)ʡ�����ĕr�g��






• ʹ��CRC-32(��̫�W(w��ng))���ʽ�� 0x4C11DB7


• ÿ��CRCӋ����Ҫ4��AHB�r�����


• �� CRC Ӌ�����g����ͣ����������˿��Ԍ��Ĵ��� CRC_DR �M�б�������������B�m(x��)�،�-�x������


• ����ͨ�^�O(sh��)�üĴ���CRC_CTRL��RESETλ�����üĴ��� CRC_DR �� 0xFFFFFFFF��ԓ������Ӱ�8λ������(sh��)��(j��)�Ĵ���CRC_IDR��(n��i)�Ĕ�(sh��)��(j��)��










�D2 CRCӋ���Ԫ��D


 


�����҂�����һ���ڳ�����ܛ��CRC�cӲ��CRC��������


 


CRCģ�K�����ò��E���£�


CRCģ�K�r�ʹ��


CRC_CR�ĵ�һλRESETλ��(f��)λ�����x��


����(sh��)��(j��)����CRC_DR�Ĵ���


��CRC_DR�Ĵ������x��Ӌ��Y(ji��)��






�������������£�


uint32_t Hardware_CRC(u32*addr, int num) 


{


CRC->CR|=1; //��(f��)λ


for (; num > 0; num--)             


CRC->DR = (*addr++);


return CRC->DR;


}


 


�҂�����ʹ��ܛ���㷨��z�Ӌ��Y(ji��)�������ȃɷN��ʽ���M�ĕr�g��






ܛ���㷨���£�


u32 Software_CRC (u32 *ptr,u32 len) 





u32 xbit; 


u32 data; 


u32 CRC32 = 0xFFFFFFFF; 


u32 bits; 


const u32 dwPolynomial =0x04C11DB7 ; 


u32 i; 


             


for(i = 0;i < len;i++) 





xbit = (unsigned)1 <<31; 


data = ptr[i]; 


for (bits = 0; bits < 32;bits++)  





if (CRC32 & 0x80000000)





CRC32 <<= 1; 


CRC32 ^= dwPolynomial; 





else 


CRC32 <<= 1; 


if (data & xbit) 


CRC32 ^= dwPolynomial; 


xbit >>= 1; 








return CRC32; 


}


 


�����҂��Ãɂ����εĔ�(sh��)�M��һ����(sh��)�M��0x00�f����0x7F����һ����(sh��)�M��0x7F�f�p��0x00���քeʹ��Ӳ��CRC��ܛ��CRCӋ����ͬ�rʹ��TIM1�M��Ӌ�r�����ͨ�^UARTݔ���õ���У�a�ͻ��M�ĕr�g��


 


Ӌ���ݔ������


void CRCTest()


{


unsigned int i;      


u32 CRCtime,CRCresault;


u32 crc1[128];


for(i=0;i<128;i++)


crc1[i] = i;


printf("CRC_test\r\n");


             


RCC_AHBPeriphClockCmd(RCC_AHBPeriph_CRC,ENABLE);//ʹ��CRC�r�


CRC->CR|=1; //��(f��)λ


printf("\r\nCRC_DR=%x\t\r\n",CRC->DR);//ݔ����(f��)λֵ


      


TIM1->CNT &= 0;


CRCresault=Hardware_CRC(crc1,128);


CRCtime =TIM1->CNT;


printf("Hardware_CRC1:resault=%08x\ttime=%d\r\n",CRCresault,CRCtime);


             


TIM1->CNT &= 0;


CRCresault=Software_CRC(crc1,128);


CRCtime =TIM1->CNT;


printf("Software_CRC1:resault=%08x\ttime=%d\r\n",CRCresault,CRCtime);


             


for(i=0;i<256;i++)


crc1[i] = 0xFF-i;


TIM1->CNT &= 0;


CRCresault=Hardware_CRC(crc1,128);


CRCtime =TIM1->CNT;


printf("Hardware_CRC2:resault=%08x\ttime=%d\r\n",CRCresault,CRCtime);


             


TIM1->CNT &= 0;


CRCresault=Software_CRC(crc1,128);


CRCtime =TIM1->CNT;


printf("Software_CRC2:resault=%08x\ttime=%d\r\n",CRCresault,CRCtime);


}


 


���r������


void Tim1_UPCount_test(u16Prescaler,u16 Period)


{


TIM_TimeBaseInitTypeDefTIM_StructInit;


 


/*ʹ��TIM1�r�,Ĭ�J�r�Դ��PCLK2(PCLK2δ���l�r�����l,��t��PCLK2���lݔ��),���x�����r�Դ*/


RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1,ENABLE);


 


TIM_StructInit.TIM_Period=Period;                                         //ARR�Ĵ���ֵ


TIM_StructInit.TIM_Prescaler=Prescaler;                                 //�A(y��)���lֵ


/*��(sh��)�֞V�����ɘ��l��,��Ӱ푶��r���r�*/


TIM_StructInit.TIM_ClockDivision=TIM_CKD_DIV1;                 //�ɘӷ��lֵ


TIM_StructInit.TIM_CounterMode=TIM_CounterMode_Up;       //Ӌ��(sh��)ģʽ


TIM_StructInit.TIM_RepetitionCounter=0;


TIM_TimeBaseInit(TIM1,&TIM_StructInit);


 


TIM_Cmd(TIM1, ENABLE);  


/*���¶��r���r���a(ch��n)�����•r�g,�����־λ*/


TIM_ClearFlag(TIM1,TIM_FLAG_Update);


}






Main����(sh��)��


int main(void)





Tim1_UPCount_test(48-1,0xffff); //APB2�r犞�48M��48���l��TIM1�r犞�1MHz


delay_init();


uart_initwBaudRate(9600);    //��ʼ��UART


CRCTest();


while(1) { }


}










�D3 ܛ��CRC�cӲ��CRCӋ��Y(ji��)��


 


�ĽY(ji��)�������҂����Կ����������@�ɂ���(sh��)�M��Ӳ��CRC�cܛ��CRC���õ��ĽY(ji��)��һ��������Ӳ��CRCÿ����(sh��)�Mֻ���M��52us���hС��ܛ��CRC��2.5ms���ɴ˿�Ҋ�����M�д�����(sh��)��(j��)̎���ĕr����ʹ��Ӳ��CRCģ�K���Թ�(ji��)ʡ�����ĕr�g��ͬ�r���C��Ӌ��Y(ji��)�������_��

��݋��admin  ����޸ĕr�g��2019-06-15

“(li��n)ϵ��ʽ

0755-82591179

���棺0755-82591176

�]�䣺vicky@yingtexin.net

��ַ�����������A�^(q��)���νֵ����δ��973�f�����S��(chu��ng)�I(y��)�@A��2��A08

Copyright © 2014-2023 �f���¿Ƽ����޹�˾ All Rights Reserved.  ��ICP��14043402̖-4

深圳市市场监督管理局企业主体身份公示