<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > STM32F10x 學(xué)習(xí)筆記3(CRC計算單元)

          STM32F10x 學(xué)習(xí)筆記3(CRC計算單元)

          作者: 時間:2016-11-20 來源:網(wǎng)絡(luò) 收藏
          STM32F系列的單片機(jī)內(nèi)部帶了CRC32計算單元。這個內(nèi)置CRC模塊的方法使用非常簡單。其操作如下圖所示。

          本文引用地址:http://www.ex-cimer.com/article/201611/318838.htm

          圖1CRC計算單元框圖

          歸納起來有如下幾步操作:

          1. 開啟CRC單元的時鐘。RCC_AHBPeriphClockCmd(RCC_AHBPeriph_CRC, ENABLE)
          2. 復(fù)位CRC模塊(設(shè)置CRC_CR=0x01),這個操作把CRC余數(shù)初始化為0xFFFFFFFF
          3. 把要計算的數(shù)據(jù)按逐個地寫入CRC_DR寄存器
          4. 寫完所有的數(shù)據(jù)字后,從CRC_DR寄存器讀出計算的結(jié)果

          STM32F10x StdPeriph Driver 中提供了幾個函數(shù)。

          CRC_ResetDR(void)
          用來復(fù)位CRC模塊。

          uint32_t CRC_CalcCRC(uint32_t Data)
          將一個數(shù)據(jù)寫入CRC_DR寄存器,返回值為計算結(jié)果。

          uint32_t CRC_CalcBlockCRC(uint32_t pBuffer[], uint32_t BufferLength)
          計算一個數(shù)組的CRC 值。

          uint32_t CRC_GetCRC(void)
          讀取CRC_DR寄存器的結(jié)果。

          另外,CRC 模塊中還有個獨立數(shù)據(jù)寄存器(CRC_IDR)。這是個單字節(jié)的寄存器,用于臨時存放1字節(jié)的數(shù)據(jù),不受復(fù)位操作影響。相應(yīng)的操作函數(shù)有兩個。

          void CRC_SetIDRegister(uint8_t IDValue)
          uint8_t CRC_GetIDRegister(void)
          分別是寫CRC_IDR和讀 CRC_IDR 寄存器。

          雖然STM32F 上的CRC 單元用起來很簡單,但是似乎它計算出來的結(jié)果與傳統(tǒng)的CRC32算法得到的結(jié)果有些不同。
          下面是個簡單的例子。
          1. #include"stm32f10x.h"
          2. intmain(void)
          3. {
          4. uint32_tj;
          5. uint32_tstr[11]={1,2,3,4,5,6,7,8,9,};
          6. SystemInit();
          7. RCC_AHBPeriphClockCmd(RCC_AHBPeriph_CRC,ENABLE);
          8. CRC_ResetDR();
          9. str[9]=CRC_CalcBlockCRC(str,1);
          10. CRC_ResetDR();
          11. CRC_CalcCRC(0xA5A5A5A5);
          12. j=CRC_GetCRC();
          13. CRC_CalcCRC(j);
          14. for(;;)
          15. {
          16. }
          17. }



          關(guān)鍵詞: STM32F10xCRC計算單

          評論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();