STM32F RFID通讯源代码(支持双向发送接收)

源代码在线查看: stm32f10x_bkp.c

软件大小: 317.85K
上传用户: ctf3033611
关键词: RFID STM 32F 32
下载地址: 免注册下载 普通下载 VIP

相关代码

				/******************** (C) COPYRIGHT 2007 STMicroelectronics ********************
				* File Name          : stm32f10x_bkp.c
				* Author             : MCD Application Team
				* Date First Issued  : 09/29/2006
				* Description        : This file provides all the BKP firmware functions.
				********************************************************************************
				* History:
				* 05/21/2007: V0.3
				* 04/02/2007: V0.2
				* 02/05/2007: V0.1
				* 09/29/2006: V0.01
				********************************************************************************
				* THE PRESENT SOFTWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
				* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
				* AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
				* INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
				* CONTENT OF SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
				* INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
				*******************************************************************************/
				
				/* Includes ------------------------------------------------------------------*/
				#include "stm32f10x_bkp.h"
				#include "stm32f10x_rcc.h"
				
				/* Private typedef -----------------------------------------------------------*/
				/* Private define ------------------------------------------------------------*/
				/* ------------ BKP registers bit address in the alias region ----------- */
				#define BKP_OFFSET        (BKP_BASE - PERIPH_BASE)
				
				/* --- RTCCR Register ---*/
				/* Alias word address of CCO bit */
				#define RTCCR_OFFSET      (BKP_OFFSET + 0x2C)
				#define CCO_BitNumber     0x07
				#define RTCCR_CCO_BB      (PERIPH_BB_BASE + (RTCCR_OFFSET * 32) + (CCO_BitNumber * 4))
				
				/* --- CR Register ---*/
				/* Alias word address of TPAL bit */
				#define CR_OFFSET         (BKP_OFFSET + 0x30)
				#define TPAL_BitNumber    0x01
				#define CR_TPAL_BB        (PERIPH_BB_BASE + (CR_OFFSET * 32) + (TPAL_BitNumber * 4))
				
				/* Alias word address of TPE bit */
				#define TPE_BitNumber     0x00
				#define CR_TPE_BB         (PERIPH_BB_BASE + (CR_OFFSET * 32) + (TPE_BitNumber * 4))
				
				/* --- CSR Register ---*/
				/* Alias word address of TPIE bit */
				#define CSR_OFFSET        (BKP_OFFSET + 0x34)
				#define TPIE_BitNumber    0x02
				#define CSR_TPIE_BB       (PERIPH_BB_BASE + (CSR_OFFSET * 32) + (TPIE_BitNumber * 4))
				
				/* Alias word address of TIF bit */
				#define TIF_BitNumber     0x09
				#define CSR_TIF_BB        (PERIPH_BB_BASE + (CSR_OFFSET * 32) + (TIF_BitNumber * 4))
				
				/* Alias word address of TEF bit */
				#define TEF_BitNumber     0x08
				#define CSR_TEF_BB        (PERIPH_BB_BASE + (CSR_OFFSET * 32) + (TEF_BitNumber * 4))
				
				
				/* ---------------------- BKP registers bit mask ------------------------ */
				/* RTCCR register bit mask */
				#define RTCCR_CAL_Mask    ((u16)0xFF80)
				
				/* CSR register bit mask */
				#define CSR_CTE_Set       ((u16)0x0001)
				#define CSR_CTI_Set       ((u16)0x0002)
				
				/* Private macro -------------------------------------------------------------*/
				/* Private variables ---------------------------------------------------------*/
				/* Private function prototypes -----------------------------------------------*/
				/* Private functions ---------------------------------------------------------*/
				
				/*******************************************************************************
				* Function Name  : BKP_DeInit
				* Description    : Deinitializes the BKP peripheral registers to their default
				*                  reset values.
				* Input          : None
				* Output         : None
				* Return         : None
				*******************************************************************************/
				void BKP_DeInit(void)
				{
				  RCC_BackupResetCmd(ENABLE);
				  RCC_BackupResetCmd(DISABLE);
				}
				
				/*******************************************************************************
				* Function Name  : BKP_TamperPinLevelConfig
				* Description    : Configures the Tamper Pin active level.
				* Input          : - BKP_TamperPinLevel: specifies the Tamper Pin active level.
				*                    This parameter can be one of the following values:
				*                       - BKP_TamperPinLevel_High: Tamper pin active on high level
				*                       - BKP_TamperPinLevel_Low: Tamper pin active on low level
				* Output         : None
				* Return         : None
				*******************************************************************************/
				void BKP_TamperPinLevelConfig(u16 BKP_TamperPinLevel)
				{
				  /* Check the parameters */
				  assert(IS_BKP_TAMPER_PIN_LEVEL(BKP_TamperPinLevel));
				
				  *(vu32 *) CR_TPAL_BB = BKP_TamperPinLevel;
				}
				
				/*******************************************************************************
				* Function Name  : BKP_TamperPinCmd
				* Description    : Enables or disables the Tamper Pin activation.
				* Input          : - NewState: new state of the Tamper Pin activation.
				*                    This parameter can be: ENABLE or DISABLE.
				* Output         : None
				* Return         : None
				*******************************************************************************/
				void BKP_TamperPinCmd(FunctionalState NewState)
				{
				  /* Check the parameters */
				  assert(IS_FUNCTIONAL_STATE(NewState));
				
				  *(vu32 *) CR_TPE_BB = (u32)NewState;
				}
				
				/*******************************************************************************
				* Function Name  : BKP_ITConfig
				* Description    : Enables or disables the Tamper Pin Interrupt.
				* Input          : - NewState: new state of the Tamper Pin Interrupt.
				*                    This parameter can be: ENABLE or DISABLE.
				* Output         : None
				* Return         : None
				*******************************************************************************/
				void BKP_ITConfig(FunctionalState NewState)
				{
				  /* Check the parameters */
				  assert(IS_FUNCTIONAL_STATE(NewState));
				
				  *(vu32 *) CSR_TPIE_BB = (u32)NewState;
				}
				
				/*******************************************************************************
				* Function Name  : BKP_RTCCalibrationClockOutputCmd
				* Description    : Enables or disables the output of the Calibration Clock.
				* Input          : - NewState: new state of the Calibration Clock output.
				*                    This parameter can be: ENABLE or DISABLE.
				* Output         : None
				* Return         : None
				*******************************************************************************/
				void BKP_RTCCalibrationClockOutputCmd(FunctionalState NewState)
				{
				  /* Check the parameters */
				  assert(IS_FUNCTIONAL_STATE(NewState));
				
				  *(vu32 *) RTCCR_CCO_BB = (u32)NewState;
				}
				
				/*******************************************************************************
				* Function Name  : BKP_SetRTCCalibrationValue
				* Description    : Sets RTC Clock Calibration value.
				* Input          : - CalibrationValue: specifies the RTC Clock Calibration value.
				*                    This parameter must be a number between 0 and 0x7F.
				* Output         : None
				* Return         : None
				*******************************************************************************/
				void BKP_SetRTCCalibrationValue(u8 CalibrationValue)
				{
				  u16 tmpreg = 0;
				
				  /* Check the parameters */
				  assert(IS_BKP_CALIBRATION_VALUE(CalibrationValue));
				
				  tmpreg = BKP->RTCCR;
				
				  /* Clear CAL[6:0] bits */
				  tmpreg &= RTCCR_CAL_Mask;
				
				  /* Set CAL[6:0] bits according to CalibrationValue value */
				  tmpreg |= CalibrationValue;
				
				  /* Store the new value */
				  BKP->RTCCR = tmpreg;
				}
				
				/*******************************************************************************
				* Function Name  : BKP_WriteBackupRegister
				* Description    : Writes user data to the specified Data Backup Register.
				* Input          : - BKP_DR: specifies the Data Backup Register.
				*                    This parameter can be BKP_DRx where x:[1, 10]
				*                  - Data: data to write
				* Output         : None
				* Return         : None
				*******************************************************************************/
				void BKP_WriteBackupRegister(u16 BKP_DR, u16 Data)
				{
				  /* Check the parameters */
				  assert(IS_BKP_DR(BKP_DR));
				
				  *(vu16 *) (BKP_BASE + BKP_DR) = Data;
				}
				
				/*******************************************************************************
				* Function Name  : BKP_ReadBackupRegister
				* Description    : Reads data from the specified Data Backup Register.
				* Input          : - BKP_DR: specifies the Data Backup Register.
				*                    This parameter can be BKP_DRx where x:[1, 10]
				* Output         : None
				* Return         : The content of the specified Data Backup Register
				*******************************************************************************/
				u16 BKP_ReadBackupRegister(u16 BKP_DR)
				{
				  /* Check the parameters */
				  assert(IS_BKP_DR(BKP_DR));
				
				  return (*(vu16 *) (BKP_BASE + BKP_DR));
				}
				
				/*******************************************************************************
				* Function Name  : BKP_GetFlagStatus
				* Description    : Checks whether the Tamper Pin Event flag is set or not.
				* Input          : None
				* Output         : None
				* Return         : The new state of the Tamper Pin Event flag (SET or RESET).
				*******************************************************************************/
				FlagStatus BKP_GetFlagStatus(void)
				{
				  return (FlagStatus)(*(vu32 *) CSR_TEF_BB);
				}
				
				/*******************************************************************************
				* Function Name  : BKP_ClearFlag
				* Description    : Clears Tamper Pin Event pending flag.
				* Input          : None
				* Output         : None
				* Return         : None
				*******************************************************************************/
				void BKP_ClearFlag(void)
				{
				  /* Set CTE bit to clear Tamper Pin Event flag */
				  BKP->CSR |= CSR_CTE_Set;
				}
				
				/*******************************************************************************
				* Function Name  : BKP_GetITStatus
				* Description    : Checks whether the Tamper Pin Interrupt has occurred or not.
				* Input          : None
				* Output         : None
				* Return         : The new state of the Tamper Pin Interrupt (SET or RESET).
				*******************************************************************************/
				ITStatus BKP_GetITStatus(void)
				{
				  return (ITStatus)(*(vu32 *) CSR_TIF_BB);
				}
				
				/*******************************************************************************
				* Function Name  : BKP_ClearITPendingBit
				* Description    : Clears Tamper Pin Interrupt pending bit.
				* Input          : None
				* Output         : None
				* Return         : None
				*******************************************************************************/
				void BKP_ClearITPendingBit(void)
				{
				  /* Set CTI bit to clear Tamper Pin Interrupt pending bit */
				  BKP->CSR |= CSR_CTI_Set;
				}
				
				/******************* (C) COPYRIGHT 2007 STMicroelectronics *****END OF FILE****/
							

相关资源