mbed SDK library sources

Fork of mbed-src by mbed official

Development branch of the mbed library sources. This library is kept in synch with the latest changes from the mbed SDK and it is not guaranteed to work.

If you are looking for a stable and tested release, please import one of the official mbed library releases:

Import librarymbed

The official Mbed 2 C/C++ SDK provides the software platform and libraries to build your applications.

Committer:
mbed_official
Date:
Thu Jan 30 12:15:05 2014 +0000
Revision:
80:66393a7b209d
Parent:
76:aeb1df146756
Synchronized with git revision dba523f83fe09b7fce11fc1299dd1216e9776359

Full URL: https://github.com/mbedmicro/mbed/commit/dba523f83fe09b7fce11fc1299dd1216e9776359/

Update of I2C, SPI, SLEEP for NUCLEO_F103RB and L152RE

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 76:aeb1df146756 1 /**
mbed_official 76:aeb1df146756 2 ******************************************************************************
mbed_official 76:aeb1df146756 3 * @file stm32l1xx_crc.c
mbed_official 76:aeb1df146756 4 * @author MCD Application Team
mbed_official 80:66393a7b209d 5 * @version V1.3.0
mbed_official 80:66393a7b209d 6 * @date 31-January-2014
mbed_official 76:aeb1df146756 7 * @brief This file provides all the CRC firmware functions.
mbed_official 76:aeb1df146756 8 ******************************************************************************
mbed_official 76:aeb1df146756 9 * @attention
mbed_official 76:aeb1df146756 10 *
mbed_official 80:66393a7b209d 11 * <h2><center>&copy; COPYRIGHT 2014 STMicroelectronics</center></h2>
mbed_official 76:aeb1df146756 12 *
mbed_official 76:aeb1df146756 13 * Licensed under MCD-ST Liberty SW License Agreement V2, (the "License");
mbed_official 76:aeb1df146756 14 * You may not use this file except in compliance with the License.
mbed_official 76:aeb1df146756 15 * You may obtain a copy of the License at:
mbed_official 76:aeb1df146756 16 *
mbed_official 76:aeb1df146756 17 * http://www.st.com/software_license_agreement_liberty_v2
mbed_official 76:aeb1df146756 18 *
mbed_official 76:aeb1df146756 19 * Unless required by applicable law or agreed to in writing, software
mbed_official 76:aeb1df146756 20 * distributed under the License is distributed on an "AS IS" BASIS,
mbed_official 76:aeb1df146756 21 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
mbed_official 76:aeb1df146756 22 * See the License for the specific language governing permissions and
mbed_official 76:aeb1df146756 23 * limitations under the License.
mbed_official 76:aeb1df146756 24 *
mbed_official 76:aeb1df146756 25 ******************************************************************************
mbed_official 76:aeb1df146756 26 */
mbed_official 76:aeb1df146756 27
mbed_official 76:aeb1df146756 28 /* Includes ------------------------------------------------------------------*/
mbed_official 76:aeb1df146756 29 #include "stm32l1xx_crc.h"
mbed_official 76:aeb1df146756 30
mbed_official 76:aeb1df146756 31 /** @addtogroup STM32L1xx_StdPeriph_Driver
mbed_official 76:aeb1df146756 32 * @{
mbed_official 76:aeb1df146756 33 */
mbed_official 76:aeb1df146756 34
mbed_official 76:aeb1df146756 35 /** @defgroup CRC
mbed_official 76:aeb1df146756 36 * @brief CRC driver modules
mbed_official 76:aeb1df146756 37 * @{
mbed_official 76:aeb1df146756 38 */
mbed_official 76:aeb1df146756 39
mbed_official 76:aeb1df146756 40 /* Private typedef -----------------------------------------------------------*/
mbed_official 76:aeb1df146756 41 /* Private define ------------------------------------------------------------*/
mbed_official 76:aeb1df146756 42 /* Private macro -------------------------------------------------------------*/
mbed_official 76:aeb1df146756 43 /* Private variables ---------------------------------------------------------*/
mbed_official 76:aeb1df146756 44 /* Private function prototypes -----------------------------------------------*/
mbed_official 76:aeb1df146756 45 /* Private functions ---------------------------------------------------------*/
mbed_official 76:aeb1df146756 46
mbed_official 76:aeb1df146756 47 /** @defgroup CRC_Private_Functions
mbed_official 76:aeb1df146756 48 * @{
mbed_official 76:aeb1df146756 49 */
mbed_official 76:aeb1df146756 50
mbed_official 76:aeb1df146756 51 /**
mbed_official 76:aeb1df146756 52 * @brief Resets the CRC Data register (DR).
mbed_official 76:aeb1df146756 53 * @param None
mbed_official 76:aeb1df146756 54 * @retval None
mbed_official 76:aeb1df146756 55 */
mbed_official 76:aeb1df146756 56 void CRC_ResetDR(void)
mbed_official 76:aeb1df146756 57 {
mbed_official 76:aeb1df146756 58 /* Reset CRC generator */
mbed_official 76:aeb1df146756 59 CRC->CR = CRC_CR_RESET;
mbed_official 76:aeb1df146756 60 }
mbed_official 76:aeb1df146756 61
mbed_official 76:aeb1df146756 62 /**
mbed_official 76:aeb1df146756 63 * @brief Computes the 32-bit CRC of a given data word(32-bit).
mbed_official 76:aeb1df146756 64 * @param Data: data word(32-bit) to compute its CRC.
mbed_official 76:aeb1df146756 65 * @retval 32-bit CRC
mbed_official 76:aeb1df146756 66 */
mbed_official 76:aeb1df146756 67 uint32_t CRC_CalcCRC(uint32_t Data)
mbed_official 76:aeb1df146756 68 {
mbed_official 76:aeb1df146756 69 CRC->DR = Data;
mbed_official 76:aeb1df146756 70
mbed_official 76:aeb1df146756 71 return (CRC->DR);
mbed_official 76:aeb1df146756 72 }
mbed_official 76:aeb1df146756 73
mbed_official 76:aeb1df146756 74 /**
mbed_official 76:aeb1df146756 75 * @brief Computes the 32-bit CRC of a given buffer of data word(32-bit).
mbed_official 76:aeb1df146756 76 * @param pBuffer: pointer to the buffer containing the data to be computed.
mbed_official 76:aeb1df146756 77 * @param BufferLength: length of the buffer to be computed
mbed_official 76:aeb1df146756 78 * @retval 32-bit CRC
mbed_official 76:aeb1df146756 79 */
mbed_official 76:aeb1df146756 80 uint32_t CRC_CalcBlockCRC(uint32_t pBuffer[], uint32_t BufferLength)
mbed_official 76:aeb1df146756 81 {
mbed_official 76:aeb1df146756 82 uint32_t index = 0;
mbed_official 76:aeb1df146756 83
mbed_official 76:aeb1df146756 84 for(index = 0; index < BufferLength; index++)
mbed_official 76:aeb1df146756 85 {
mbed_official 76:aeb1df146756 86 CRC->DR = pBuffer[index];
mbed_official 76:aeb1df146756 87 }
mbed_official 76:aeb1df146756 88 return (CRC->DR);
mbed_official 76:aeb1df146756 89 }
mbed_official 76:aeb1df146756 90
mbed_official 76:aeb1df146756 91 /**
mbed_official 76:aeb1df146756 92 * @brief Returns the current CRC value.
mbed_official 76:aeb1df146756 93 * @param None
mbed_official 76:aeb1df146756 94 * @retval 32-bit CRC
mbed_official 76:aeb1df146756 95 */
mbed_official 76:aeb1df146756 96 uint32_t CRC_GetCRC(void)
mbed_official 76:aeb1df146756 97 {
mbed_official 76:aeb1df146756 98 return (CRC->DR);
mbed_official 76:aeb1df146756 99 }
mbed_official 76:aeb1df146756 100
mbed_official 76:aeb1df146756 101 /**
mbed_official 76:aeb1df146756 102 * @brief Stores a 8-bit data in the Independent Data(ID) register.
mbed_official 76:aeb1df146756 103 * @param IDValue: 8-bit value to be stored in the ID register
mbed_official 76:aeb1df146756 104 * @retval None
mbed_official 76:aeb1df146756 105 */
mbed_official 76:aeb1df146756 106 void CRC_SetIDRegister(uint8_t IDValue)
mbed_official 76:aeb1df146756 107 {
mbed_official 76:aeb1df146756 108 CRC->IDR = IDValue;
mbed_official 76:aeb1df146756 109 }
mbed_official 76:aeb1df146756 110
mbed_official 76:aeb1df146756 111 /**
mbed_official 76:aeb1df146756 112 * @brief Returns the 8-bit data stored in the Independent Data(ID) register.
mbed_official 76:aeb1df146756 113 * @param None
mbed_official 76:aeb1df146756 114 * @retval 8-bit value of the ID register
mbed_official 76:aeb1df146756 115 */
mbed_official 76:aeb1df146756 116 uint8_t CRC_GetIDRegister(void)
mbed_official 76:aeb1df146756 117 {
mbed_official 76:aeb1df146756 118 return (CRC->IDR);
mbed_official 76:aeb1df146756 119 }
mbed_official 76:aeb1df146756 120
mbed_official 76:aeb1df146756 121 /**
mbed_official 76:aeb1df146756 122 * @}
mbed_official 76:aeb1df146756 123 */
mbed_official 76:aeb1df146756 124
mbed_official 76:aeb1df146756 125 /**
mbed_official 76:aeb1df146756 126 * @}
mbed_official 76:aeb1df146756 127 */
mbed_official 76:aeb1df146756 128
mbed_official 76:aeb1df146756 129 /**
mbed_official 76:aeb1df146756 130 * @}
mbed_official 76:aeb1df146756 131 */
mbed_official 76:aeb1df146756 132
mbed_official 76:aeb1df146756 133 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/