/**
******************************************************************************
* @file xl_uart.c
* @author Kirk
* @version 4.5.2
* @date Fri Mar 26 17:29:12 2021
* @brief This file provide function about SIM firmware program
******************************************************************************
* @attention
*
* 2019 by Chipways Communications,Inc. All Rights Reserved.
* This software is supplied under the terms of a license
* agreement or non-disclosure agreement with Chipways.
* Passing on and copying of this document,and communication
* of its contents is not permitted without prior written
* authorization.
*
*
© COPYRIGHT 2019 Chipways
******************************************************************************
*/
#if defined(__cplusplus)
extern "C" {
#endif /* __cplusplus */
/* Includes ---------------------------------------------------------------*/
#include "xl_sim.h"
/** @addtogroup XL6600_StdPeriph_Driver
* @{
*/
/** @defgroup SIM SIM Module
* @brief SIM Driver Modules Library
* @{
*/
/* Private typedef -----------------------------------------------------------*/
/* Private define ------------------------------------------------------------*/
/* Private macro -------------------------------------------------------------*/
/* Private variables ---------------------------------------------------------*/
/* Private function prototypes -----------------------------------------------*/
/* Private functions ---------------------------------------------------------*/
/** @defgroup SIM_Private_Functions
* @{
*/
/**
* @brief ÖØÐÂÉèÖÃSIM¼Ä´æÆ÷״̬.
* @param None
* @retval None
*/
void SIM_DeInit(void)
{
/* Deinitializes to default reset values */
SIM->SOPT0 = 0x0000000C;
SIM->SOPT1 = 0x00000000;
SIM->PINSEL0 = 0x00000000;
SIM->PINSEL1 = 0x00000000;
SIM->SCGC = 0x00000800;
SIM->CLKDIV = 0x00000000;
}
/**
* @brief ¶ÁÈ¡Æ÷¼þPINID
* @param None
* @retval PINID ·µ»ØPinµÄID
* Õâ¸ö²ÎÊý¿ÉÒÔÈ¡ÏÂÃæµÄÖµ:
* @arg PINID_8_PIN: 8Òý½ÅÆ÷¼þ
* @arg PINID_16_PIN: 16Òý½ÅÆ÷¼þ
* @arg PINID_20_PIN: 20Òý½ÅÆ÷¼þ
* @arg PINID_24_PIN: 24Òý½ÅÆ÷¼þ
* @arg PINID_32_PIN: 32Òý½ÅÆ÷¼þ
* @arg PINID_44_PIN: 44Òý½ÅÆ÷¼þ
* @arg PINID_48_PIN: 48Òý½ÅÆ÷¼þ
* @arg PINID_64_PIN: 64Òý½ÅÆ÷¼þ
* @arg PINID_80_PIN: 80Òý½ÅÆ÷¼þ
* @arg PINID_100_PIN: 100Òý½ÅÆ÷¼þ
* @arg PINID_RESERVE_PIN: ±£Áô
*/
uint32_t SIM_ReadFPINID(void)
{
return (SIM->SRSID & SIM_SRSID_PINID_MASK) >> SIM_SRSID_PINID_SHIFT;
}
/**
* @brief »ñÈ¡¸´Î»ÔÒò
* @param SIM: ¸´Î»µÄÔÒò
* Õâ¸ö²ÎÊý¿ÉÒÔÈ¡ÏÂÃæµÄÖµ:
* @arg SIM_ECCERR_RESET: ECCУÑé³ö´í¸´Î»
* @arg SIM_LVD_RESET: µÍµçÑ¹Ìø±ä»òÉϵ縴λ
* @arg SIM_WDOG_RESET: ¿´ÃŹ·¸´Î»
* @arg SIM_PIN_RESET: ÍⲿÒý½Å¸´Î»
* @arg SIM_POR_RESET: Éϵ縴λ
* @arg SIM_SW_RESET: Èí¼þ¸´Î»
* @retval ¸´Î»×´Ì¬(TRUE or FALSE)
*/
FlagStatus SIM_GetRstCauses(uint32_t ResetCause)
{
FlagStatus ret;
if( ((SIM->SRSID >> ResetCause)&(uint32_t)0x01) != 0u)
{
ret = SET;
}
else
{
ret = RESET;
}
return ret;
}
/**
* @brief Çå³ý¸´Î»ÔÒò±êÖ¾
* @param SIM: Çå³þ¸´Î»µÄÔÒò
* Õâ¸ö²ÎÊý¿ÉÒÔÈ¡ÏÂÃæµÄÖµ:
* @arg SIM_ECCERR_RESET: ECCУÑé³ö´í¸´Î»
* @arg SIM_LVD_RESET: µÍµçÑ¹Ìø±ä»òÉϵ縴λ
* @arg SIM_WDOG_RESET: ¿´ÃŹ·¸´Î»
* @arg SIM_PIN_RESET: ÍⲿÒý½Å¸´Î»
* @arg SIM_POR_RESET: Éϵ縴λ
* @arg SIM_SW_RESET: Èí¼þ¸´Î»
* @retval None
*/
void SIM_ClrRstCauses(uint8_t ResetCause)
{
SIM->SRSID |= ((uint32_t)0x01 << ResetCause);
}
/**
* @brief NMIÒý½ÅʹÄÜ
* @param State: NMIÒý½ÅʹÄÜ״̬
* Õâ¸ö²ÎÊý¿ÉÒÔÈ¡ÏÂÃæµÄÖµ:
* @arg ENABLE: NMIÒý½ÅʹÄÜ
* @arg DISABLE: NMIÒý½ÅʧÄÜ
* @retval None
*/
void SIM_SOPT0_NMIECmd(FunctionalState State)
{
if(State == ENABLE)
{
SIM->SOPT0 |= SIM_SOPT0_NMIE_MASK;
}
else
{
SIM->SOPT0 &= ~SIM_SOPT0_NMIE_MASK;
}
}
/**
* @brief RESETÒý½ÅʹÄÜ
* @param State: RESETÒý½ÅʹÄÜ״̬
* Õâ¸ö²ÎÊý¿ÉÒÔÈ¡ÏÂÃæµÄÖµ:
* @arg ENABLE: RESETÒý½ÅʹÄÜ
* @arg DISABLE: RESETÒý½ÅʧÄÜ
* @retval None
*/
void SIM_SOPT0_RSTPECmd(FunctionalState State)
{
if(State == ENABLE)
{
SIM->SOPT0 |= SIM_SOPT0_RSTPE_MASK;
}
else
{
SIM->SOPT0 &= ~SIM_SOPT0_RSTPE_MASK;
}
}
/**
* @brief SWDÒý½ÅʹÄÜ
* @param State: SWDÒý½ÅʹÄÜ״̬
* Õâ¸ö²ÎÊý¿ÉÒÔÈ¡ÏÂÃæµÄÖµ:
* @arg ENABLE: SWDÒý½ÅʹÄÜ
* @arg DISABLE: SWDÒý½ÅʧÄÜ
* @retval None
*/
void SIM_SOPT0_SWDECmd(FunctionalState State)
{
if(State == ENABLE)
{
SIM->SOPT0 |= SIM_SOPT0_SWDE_MASK;
}
else
{
SIM->SOPT0 &= ~SIM_SOPT0_SWDE_MASK;
}
}
/**
* @brief ACMP´¥·¢FTM2´¥·¢Ô´Ñ¡Ôñ
* @param TriggerType: ´¥·¢Ô´Ñ¡Ôñ
* Õâ¸ö²ÎÊý¿ÉÒÔÈ¡ÏÂÃæµÄÖµ:
* @arg ACMP0_OUTPUT_TRIGGER_FTM2: ACMP0Êä³ö´¥·¢FTM2
* @arg ACMP1_OUTPUT_TRIGGER_FTM2: ACMP1Êä³ö´¥·¢FTM2
* @retval None
*/
void SIM_SOPT0_ACMPT_FTM2Config(uint8_t TriggerType)
{
if(TriggerType == ACMP1_OUTPUT_TRIGGER_FTM2)
{
SIM->SOPT0 |= SIM_SOPT0_ACTRG_MASK;
}
else
{
SIM->SOPT0 &= ~SIM_SOPT0_ACTRG_MASK;
}
}
/**
* @brief UART0ÊäÈëÐźÅÂ˲¨Æ÷Ñ¡Ôñ
* @param FilterType: Â˲¨Æ÷Ñ¡Ôñ
* Õâ¸ö²ÎÊý¿ÉÒÔÈ¡ÏÂÃæµÄÖµ:
* @arg UART0_RXD0_FILTER_NONE: ÎÞÂ˲¨Æ÷
* @arg UART0_RXD0_FILTER_ACMP0: Â˲¨Æ÷ACMP0
* @arg UART0_RXD0_FILTER_ACMP1: Â˲¨Æ÷ACMP1
* @retval None
*/
void SIM_SOPT0_UART0FilterConfig(uint32_t FilterType)
{
SIM->SOPT0 &= ~SIM_SOPT0_RXDFE_MASK;
SIM->SOPT0 |= (FilterType << SIM_SOPT0_RXDFE_SHIFT);
}
/**
* @brief FTM1ͨµÀ1²¶×½RTCÒç³öʹÄÜ
* @param State: FTM1ͨµÀ1²¶×½RTCÒç³öʹÄÜ״̬
* Õâ¸ö²ÎÊý¿ÉÒÔÈ¡ÏÂÃæµÄÖµ:
* @arg ENABLE: ʹÄÜFTM1ͨµÀ1²¶×½RTCÒç³ö
* @arg DISABLE: ʧÄÜFTM1ͨµÀ1²¶×½RTCÒç³ö
* @retval None
*/
void SIM_SOPT0_FTM1CH1C_RTCOutputCmd(FunctionalState State)
{
if(State == ENABLE)
{
SIM->SOPT0 |= SIM_SOPT0_RTCC_MASK;
}
else
{
SIM->SOPT0 &= ~SIM_SOPT0_RTCC_MASK;
}
}
/**
* @brief FTM1ͨµÀ0²¶×½ACMP0Êä³öʹÄÜ
* @param State: FTM1ͨµÀ0²¶×½ACMP0Êä³öʹÄÜ״̬
* Õâ¸ö²ÎÊý¿ÉÒÔÈ¡ÏÂÃæµÄÖµ:
* @arg ENABLE: ʹÄÜFTM1ͨµÀ0²¶×½ACMP0Êä³ö
* @arg DISABLE: ʧÄÜFTM1ͨµÀ0²¶×½ACMP0Êä³ö
* @retval None
*/
void SIM_SOPT0_FTM1CH0C_ACMP0OCmd(FunctionalState State)
{
if(State == ENABLE)
{
SIM->SOPT0 |= SIM_SOPT0_ACIC_MASK;
}
else
{
SIM->SOPT0 &= ~SIM_SOPT0_ACIC_MASK;
}
}
/**
* @brief FTM0ͨµÀ1²¶×½UART0ÊäÈëʹÄÜ
* @param State: FTM0ͨµÀ1²¶×½UART0ÊäÈëʹÄÜ״̬
* Õâ¸ö²ÎÊý¿ÉÒÔÈ¡ÏÂÃæµÄÖµ:
* @arg ENABLE: ʹÄÜFTM0ͨµÀ1²¶×½UART0ÊäÈë
* @arg DISABLE: ʧÄÜFTM0ͨµÀ1²¶×½UART0ÊäÈë
* @retval None
*/
void SIM_SOPT0_FTM0CH1C_UART0ICmd(FunctionalState State)
{
if(State == ENABLE)
{
SIM->SOPT0 |= SIM_SOPT0_RXDCE_MASK;
}
else
{
SIM->SOPT0 &= ~SIM_SOPT0_RXDCE_MASK;
}
}
/**
* @brief Éú³ÉFTM2Ä£¿éµÄPWMͬ²½´¥·¢Ê¹ÄÜ
* @param State: Éú³ÉFTM2Ä£¿éµÄPWMͬ²½´¥·¢Ê¹ÄÜ״̬
* Õâ¸ö²ÎÊý¿ÉÒÔÈ¡ÏÂÃæµÄÖµ:
* @arg ENABLE: ʹÄÜÉú³ÉFTM2Ä£¿éµÄPWMͬ²½´¥·¢
* @arg DISABLE: ʧÄÜÉú³ÉFTM2Ä£¿éµÄPWMͬ²½´¥·¢
* @retval None
*/
void SIM_SOPT0_FTM2S_PWMCmd(FunctionalState State)
{
if(State == ENABLE)
{
SIM->SOPT0 |= SIM_SOPT0_FTMSYNC_MASK;
}
else
{
SIM->SOPT0 &= ~SIM_SOPT0_FTMSYNC_MASK;
}
}
/**
* @brief FTM0ͨµÀ0µ÷ÖÆUART0Êä³öʹÄÜ
* @param State: FTM0ͨµÀ0µ÷ÖÆUART0Êä³öʹÄÜ״̬
* Õâ¸ö²ÎÊý¿ÉÒÔÈ¡ÏÂÃæµÄÖµ:
* @arg ENABLE: ʹÄÜFTM0ͨµÀ0µ÷ÖÆUART0Êä³ö
* @arg DISABLE: ʧÄÜFTM0ͨµÀ0µ÷ÖÆUART0Êä³ö
* @retval None
*/
void SIM_SOPT0_FTM0M_UART0OutputCmd(FunctionalState State)
{
if(State == ENABLE)
{
SIM->SOPT0 |= SIM_SOPT0_TXDME_MASK;
}
else
{
SIM->SOPT0 &= ~SIM_SOPT0_TXDME_MASK;
}
}
/**
* @brief ×ÜÏßʱÖÓÊä³öÅäÖÃ
* @param Divide: ×ÜÏßʱÖÓÊä³ö·ÖƵ
* Õâ¸ö²ÎÊý¿ÉÒÔÈ¡ÏÂÃæµÄÖµ:
* @arg BUSCLOCK_OUTPUT_DIVIDE_1: ×ÜÏßʱÖÓÊä³ö1·ÖƵ
* @arg BUSCLOCK_OUTPUT_DIVIDE_2: ×ÜÏßʱÖÓÊä³ö2·ÖƵ
* @arg BUSCLOCK_OUTPUT_DIVIDE_4: ×ÜÏßʱÖÓÊä³ö4·ÖƵ
* @arg BUSCLOCK_OUTPUT_DIVIDE_8: ×ÜÏßʱÖÓÊä³ö8·ÖƵ
* @arg BUSCLOCK_OUTPUT_DIVIDE_16: ×ÜÏßʱÖÓÊä³ö16·ÖƵ
* @arg BUSCLOCK_OUTPUT_DIVIDE_32: ×ÜÏßʱÖÓÊä³ö32·ÖƵ
* @arg BUSCLOCK_OUTPUT_DIVIDE_64: ×ÜÏßʱÖÓÊä³ö64·ÖƵ
* @arg BUSCLOCK_OUTPUT_DIVIDE_128: ×ÜÏßʱÖÓÊä³ö128·ÖƵ
* @retval None
*/
void SIM_SOPT0_BusClockDivide(uint8_t Divide)
{
SIM->SOPT0 &= ~SIM_SOPT0_BUSREF_MASK;
SIM->SOPT0 |= ((uint32_t)Divide << SIM_SOPT0_BUSREF_SHIFT);
}
/**
* @brief ×ÜÏßʱÖÓÊä³öʹÄÜ
* @param State: ×ÜÏßʱÖÓÊä³öʹÄÜ״̬
* Õâ¸ö²ÎÊý¿ÉÒÔÈ¡ÏÂÃæµÄÖµ:
* @arg ENABLE: ʹÄÜ×ÜÏßʱÖÓÊä³ö
* @arg DISABLE: ʧÄÜ×ÜÏßʱÖÓÊä³ö
* @retval None
*/
void SIM_SOPT0_BusClockOutputCmd(FunctionalState State)
{
if(State == ENABLE)
{
SIM->SOPT0 |= SIM_SOPT0_CLKOE_MASK;
}
else
{
SIM->SOPT0 &= ~SIM_SOPT0_CLKOE_MASK;
}
}
/**
* @brief »ñÈ¡FTM2´¥·¢ÑÓ³Ù״̬
* @param None
* @retval FTM2´¥·¢ÑÓ³Ù״̬(TRUE or FALSE)
*/
FlagStatus SIM_SOPT0_FTM2DelayTStatus(void)
{
FlagStatus ret;
if( ((SIM->SOPT0 & SIM_SOPT0_DLYACT_MASK) >> SIM_SOPT0_DLYACT_SHIFT) != 0u)
{
ret = SET;
}
else
{
ret = RESET;
}
return ret;
}
/**
* @brief ÅäÖÃFTM2´¥·¢ADC²ÉÑùÑÓ³Ùʱ¼ä
* @param Delay: FTM2´¥·¢ADC²ÉÑùÑÓ³Ùʱ¼ä(0~255)
* @retval None
*/
void SIM_SOPT0_FTM2DelayTConfig(uint8_t Delay)
{
SIM->SOPT0 &= ~SIM_SOPT0_DELAY_MASK;
SIM->SOPT0 |= ((uint32_t)Delay << SIM_SOPT0_DELAY_SHIFT);
}
/**
* @brief PWTIN2ÊäÈëÐźÅÑ¡Ôñ
* @param InputType: PWTIN2ÊäÈëÐźÅ
* Õâ¸ö²ÎÊý¿ÉÒÔÈ¡ÏÂÃæµÄÖµ:
* @arg PWTIN2_INPUT_ACMP1OUT: ACMP1µÄÊä³öΪPWTIN2µÄÊäÈë
* @arg PWTIN2_INPUT_ACMP0OUT: ACMP0µÄÊä³öΪPWTIN2µÄÊäÈë
* @retval None
*/
void SIM_SOPT1_PWTIN2InputConfig(uint8_t InputType)
{
if(InputType == PWTIN2_INPUT_ACMP0OUT)
{
SIM->SOPT1 |= SIM_SOPT1_ACPWTS_MASK;
}
else
{
SIM->SOPT1 &= ~SIM_SOPT1_ACPWTS_MASK;
}
}
/**
* @brief PWTIN3ÊäÈëÐźÅÑ¡Ôñ
* @param None
* @param InputType: PWTIN3ÊäÈëÐźÅ
* Õâ¸ö²ÎÊý¿ÉÒÔÈ¡ÏÂÃæµÄÖµ:
* @arg PWTIN3_INPUT_UART0RX: UART0µÄÊäÈëΪPWTIN3µÄÊäÈë
* @arg PWTIN3_INPUT_UART1RX: UART1µÄÊäÈëΪPWTIN3µÄÊäÈë
* @arg PWTIN3_INPUT_UART2RX: UART2µÄÊäÈëΪPWTIN3µÄÊäÈë
* @retval None
*/
void SIM_SOPT1_PWTIN3InputConfig(uint8_t InputType)
{
SIM->SOPT1 &= ~SIM_SOPT1_UARTPWTS_MASK;
SIM->SOPT1 |= ((uint32_t)InputType << SIM_SOPT1_UARTPWTS_SHIFT);
}
/**
* @brief ADCÓ²¼þ´¥·¢Ô´Ñ¡Ôñ
* @param TriggerType: ADCÓ²¼þ´¥·¢Ô´
* Õâ¸ö²ÎÊý¿ÉÒÔÈ¡ÏÂÃæµÄÖµ:
* @arg ADC_HT_RTCOVERFLOW: RTCÒç³ö´¥·¢
* @arg ADC_HT_FTM0: FTM0´¥·¢
* @arg ADC_HT_FTM2UPDATE: FTM2³õʼ´¥·¢
* @arg ADC_HT_FTM2CAPTURE: FTM2Æ¥Åä´¥·¢
* @arg ADC_HT_PITCH0OVERFLOW: PITͨµÀ0Òç³ö´¥·¢
* @arg ADC_HT_PITCH1OVERFLOW: PITͨµÀ1Òç³ö´¥·¢
* @arg ADC_HT_ACMP0OUTPUT: ACMP0Êä³ö´¥·¢
* @arg ADC_HT_ACMP1OUTPUT: ACMP1Êä³ö´¥·¢
* @arg ADC_HT_FTM2CH1MAP: FTM2ͨµÀ1Æ¥Åä´¥·¢
* @arg ADC_HT_FTM2CH2MAP: FTM2ͨµÀ2Æ¥Åä´¥·¢
* @arg ADC_HT_FTM2CH3MAP: FTM2ͨµÀ3Æ¥Åä´¥·¢
* @arg ADC_HT_FTM2CH4MAP: FTM2ͨµÀ4Æ¥Åä´¥·¢
* @arg ADC_HT_FTM2CH5MAP: FTM2ͨµÀ5Æ¥Åä´¥·¢
* @arg ADC_HT_FTM1CH0MAP: FTM1ͨµÀ0Æ¥Åä´¥·¢
* @arg ADC_HT_FTM1CH1MAP: FTM1ͨµÀ1Æ¥Åä´¥·¢
* @arg ADC_HT_FTM0CH1MAP: FTM0ͨµÀ1Æ¥Åä´¥·¢
* @retval None
*/
void SIM_SOPT1_ADCHardwareTConfig(uint8_t TriggerType)
{
SIM->SOPT1 &= ~SIM_SOPT1_ADHWT_MASK;
SIM->SOPT1 |= ((uint32_t)TriggerType << SIM_SOPT1_ADHWT_SHIFT);
}
/**
* @brief UART0¶Ë¿ÚÒý½ÅÑ¡Ôñ 20190729XU
* @param PinSelect: Òý½ÅÑ¡Ôñ
* Õâ¸ö²ÎÊý¿ÉÒÔÈ¡ÏÂÃæµÄÖµ:
* @arg UART0_PS_PTB0_PTB1: UART0_RXºÍUART0_TX·Ö±ðÓ³Éäµ½PTB0ºÍPTB1ÉÏ
* @arg UART0_PS_PTA2_PTA3: UART0_RXºÍUART0_TX·Ö±ðÓ³Éäµ½PTA2ºÍPTA3ÉÏ
* @arg UART0_PS_PTC2_PTC3: UART0_RXºÍUART0_TX·Ö±ðÓ³Éäµ½PTC2ºÍPTC3ÉÏ
* @retval None
*/
void SIM_PINSEL_UART0(uint8_t PinSelect)
{
SIM->PINSEL0 &= ~SIM_PINSEL0_UART0PS_MASK;
SIM->PINSEL0 |= ((uint32_t)PinSelect << SIM_PINSEL0_UART0PS_SHIFT);
}
/**
* @brief FTM0ͨµÀ0¶Ë¿ÚÒý½ÅÑ¡Ôñ
* @param PinSelect: Òý½ÅÑ¡Ôñ
* Õâ¸ö²ÎÊý¿ÉÒÔÈ¡ÏÂÃæµÄÖµ:
* @arg FTM0CH0_PS_PTA0: FTM0_CH0ͨµÀÓ³Éäµ½PTA0ÉÏ
* @arg FTM0CH0_PS_PTB2: FTM0_CH0ͨµÀÓ³Éäµ½PTB2ÉÏ
* @arg FTM0CH0_PS_PTE5: FTM0_CH0ͨµÀÓ³Éäµ½PTE5ÉÏ
* @arg FTM0CH0_PS_PTF4: FTM0_CH0ͨµÀÓ³Éäµ½PTF4ÉÏ
* @retval None
*/
void SIM_PINSEL_FTM0CH0(uint8_t PinSelect)
{
SIM->PINSEL0 &= ~SIM_PINSEL0_FTM0PS0_MASK;
SIM->PINSEL0 |= ((uint32_t)PinSelect << SIM_PINSEL0_FTM0PS0_SHIFT);
}
/**
* @brief FTM0ͨµÀ1¶Ë¿ÚÒý½ÅÑ¡Ôñ
* @param PinSelect: Òý½ÅÑ¡Ôñ
* Õâ¸ö²ÎÊý¿ÉÒÔÈ¡ÏÂÃæµÄÖµ:
* @arg FTM0CH1_PS_PTA1: FTM0_CH1ͨµÀÓ³Éäµ½PTA1ÉÏ
* @arg FTM0CH1_PS_PTB3: FTM0_CH1ͨµÀÓ³Éäµ½PTB3ÉÏ
* @arg FTM0CH1_PS_PTE6: FTM0_CH1ͨµÀÓ³Éäµ½PTE6ÉÏ
* @arg FTM0CH1_PS_PTF5: FTM0_CH1ͨµÀÓ³Éäµ½PTF5ÉÏ
* @retval None
*/
void SIM_PINSEL_FTM0CH1(uint8_t PinSelect)
{
SIM->PINSEL0 &= ~SIM_PINSEL0_FTM0PS1_MASK;
SIM->PINSEL0 |= ((uint32_t)PinSelect << SIM_PINSEL0_FTM0PS1_SHIFT);
}
/**
* @brief FTM1ͨµÀ0¶Ë¿ÚÒý½ÅÑ¡Ôñ
* @param PinSelect: Òý½ÅÑ¡Ôñ
* Õâ¸ö²ÎÊý¿ÉÒÔÈ¡ÏÂÃæµÄÖµ:
* @arg FTM1CH0_PS_PTC4: FTM1_CH0ͨµÀÓ³Éäµ½PTC4ÉÏ
* @arg FTM1CH0_PS_PTH2: FTM1_CH0ͨµÀÓ³Éäµ½PTH2ÉÏ
* @arg FTM1CH0_PS_PTE5: FTM1_CH0ͨµÀÓ³Éäµ½PTE5ÉÏ
* @retval None
*/
void SIM_PINSEL_FTM1CH0(uint8_t PinSelect)
{
SIM->PINSEL0 &= ~SIM_PINSEL0_FTM1PS0_MASK;
SIM->PINSEL0 |= ((uint32_t)PinSelect << SIM_PINSEL0_FTM1PS0_SHIFT);
}
/**
* @brief FTM1ͨµÀ1¶Ë¿ÚÒý½ÅÑ¡Ôñ
* @param PinSelect: Òý½ÅÑ¡Ôñ
* Õâ¸ö²ÎÊý¿ÉÒÔÈ¡ÏÂÃæµÄÖµ:
* @arg FTM1CH1_PS_PTC5: FTM1_CH1ͨµÀÓ³Éäµ½PTC5ÉÏ
* @arg FTM1CH1_PS_PTE7: FTM1_CH1ͨµÀÓ³Éäµ½PTE7ÉÏ
* @arg FTM1CH1_PS_PTE6: FTM1_CH1ͨµÀÓ³Éäµ½PTE6ÉÏ
* @retval None
*/
void SIM_PINSEL_FTM1CH1(uint8_t PinSelect)
{
SIM->PINSEL0 &= ~SIM_PINSEL0_FTM1PS1_MASK;
SIM->PINSEL0 |= ((uint32_t)PinSelect << SIM_PINSEL0_FTM1PS1_SHIFT);
}
/**
* @brief FTM_FLT2Òý½ÅÑ¡Ôñ
* @param PinSelect: Òý½ÅÑ¡Ôñ
* Õâ¸ö²ÎÊý¿ÉÒÔÈ¡ÏÂÃæµÄÖµ:
* @arg FTM_FLT2_PS_PTA7: FTM_FLT2ͨµÀÓ³Éäµ½PTA7
* @arg FTM_FLT2_PS_PTI1: FTM_FLT2ͨµÀÓ³Éäµ½PTI1
* @arg FTM_FLT2_PS_PTF7: FTM_FLT2ͨµÀÓ³Éäµ½PTF7
* @arg FTM_FLT2_PS_PTF6: FTM_FLT2ͨµÀÓ³Éäµ½PTF6
* @retval None
*/
void SIM_PINSEL_FTMFLT2(uint8_t PinSelect)
{
SIM->PINSEL0 &= ~SIM_PINSEL0_FTMFLT2PS_MASK;
SIM->PINSEL0 |= ((uint32_t)PinSelect << SIM_PINSEL0_FTMFLT2PS_SHIFT);
}
/**
* @brief FTM_FLT1Òý½ÅÑ¡Ôñ
* @param PinSelect: Òý½ÅÑ¡Ôñ
* Õâ¸ö²ÎÊý¿ÉÒÔÈ¡ÏÂÃæµÄÖµ:
* @arg FTM_FLT1_PS_PTA6: FTM_FLT1ͨµÀÓ³Éäµ½PTA7
* @arg FTM_FLT2_PS_PTI1: FTM_FLT1ͨµÀÓ³Éäµ½PTI1
* @arg FTM_FLT2_PS_PTF7: FTM_FLT1ͨµÀÓ³Éäµ½PTF7
* @arg FTM_FLT2_PS_PTF6: FTM_FLT1ͨµÀÓ³Éäµ½PTF6
* @retval None
*/
void SIM_PINSEL_FTMFLT1(uint8_t PinSelect)
{
SIM->PINSEL0 &= ~SIM_PINSEL0_FTMFLT1PS_MASK;
SIM->PINSEL0 |= ((uint32_t)PinSelect << SIM_PINSEL0_FTMFLT1PS_SHIFT);
}
/**
* @brief BUSOUTÊä³öÒý½ÅÑ¡Ôñ
* @param PinSelect: Òý½ÅÑ¡Ôñ
* Õâ¸ö²ÎÊý¿ÉÒÔÈ¡ÏÂÃæµÄÖµ:
* @arg BUSOUT_PS_PTH2: BUSOUTͨµÀÓ³Éäµ½PTH2
* @arg BUSOUT_PS_PTH6: BUSOUTͨµÀÓ³Éäµ½PTH6
* @arg BUSOUT_PS_PTB5: BUSOUTͨµÀÓ³Éäµ½PTB5
* @retval None
*/
void SIM_PINSEL_BUSOUT(uint8_t PinSelect)
{
SIM->PINSEL0 &= ~SIM_PINSEL0_BUSOUTPS_MASK;
SIM->PINSEL0 |= ((uint32_t)PinSelect << SIM_PINSEL0_BUSOUTPS_SHIFT);
}
/**
* @brief TCLK2Òý½ÅÑ¡Ôñ
* @param PinSelect: Òý½ÅÑ¡Ôñ
* Õâ¸ö²ÎÊý¿ÉÒÔÈ¡ÏÂÃæµÄÖµ:
* @arg TCLK2_PS_PTE7: TCLK2Ñ¡ÔñÒý½ÅPTE7
* @arg TCLK2_PS_PTH7: TCLK2Ñ¡ÔñÒý½ÅPTH7
* @arg TCLK2_PS_PTD5: TCLK2Ñ¡ÔñÒý½ÅPTD5
* @retval None
*/
void SIM_PINSEL_TCLK2(uint8_t PinSelect)
{
SIM->PINSEL0 &= ~SIM_PINSEL0_TCLK2PS_MASK;
SIM->PINSEL0 |= ((uint32_t)PinSelect << SIM_PINSEL0_TCLK2PS_SHIFT);
}
/**
* @brief TCLK1Òý½ÅÑ¡Ôñ
* @param PinSelect: Òý½ÅÑ¡Ôñ
* Õâ¸ö²ÎÊý¿ÉÒÔÈ¡ÏÂÃæµÄÖµ:
* @arg TCLK1_PS_PTE0: TCLK1Ñ¡ÔñÒý½ÅPTE0
* @arg TCLK1_PS_PTH7: TCLK1Ñ¡ÔñÒý½ÅPTH7
* @arg TCLK1_PS_PTD5: TCLK1Ñ¡ÔñÒý½ÅPTD5
* @retval None
*/
void SIM_PINSEL_TCLK1(uint8_t PinSelect)
{
SIM->PINSEL0 &= ~SIM_PINSEL0_TCLK1PS_MASK;
SIM->PINSEL0 |= ((uint32_t)PinSelect << SIM_PINSEL0_TCLK1PS_SHIFT);
}
/**
* @brief TCLK0Òý½ÅÑ¡Ôñ
* @param PinSelect: Òý½ÅÑ¡Ôñ
* Õâ¸ö²ÎÊý¿ÉÒÔÈ¡ÏÂÃæµÄÖµ:
* @arg TCLK0_PS_PTA5: TCLK0Ñ¡ÔñÒý½ÅPTA5
* @arg TCLK0_PS_PTH7: TCLK0Ñ¡ÔñÒý½ÅPTH7
* @arg TCLK0_PS_PTD5: TCLK0Ñ¡ÔñÒý½ÅPTD5
* @retval None
*/
void SIM_PINSEL_TCLK0(uint8_t PinSelect)
{
SIM->PINSEL0 &= ~SIM_PINSEL0_TCLK0PS_MASK;
SIM->PINSEL0 |= ((uint32_t)PinSelect << SIM_PINSEL0_TCLK0PS_SHIFT);
}
/**
* @brief FTM0TCLKÒý½ÅÑ¡Ôñ
* @param PinSelect: Òý½ÅÑ¡Ôñ
* Õâ¸ö²ÎÊý¿ÉÒÔÈ¡ÏÂÃæµÄÖµ:
* @arg FTM0CLK_PS_TCLK0: Ñ¡ÔñTCLK0ÓÃÓÚFTM0Ä£¿é
* @arg FTM0CLK_PS_TCLK1: Ñ¡ÔñTCLK1ÓÃÓÚFTM0Ä£¿é
* @arg FTM0CLK_PS_TCLK2: Ñ¡ÔñTCLK2ÓÃÓÚFTM0Ä£¿é
* @retval None
*/
void SIM_PINSEL_FTM0TCLK(uint8_t PinSelect)
{
SIM->PINSEL0 &= ~SIM_PINSEL0_FTM0CLKPS_MASK;
SIM->PINSEL0 |= ((uint32_t)PinSelect << SIM_PINSEL0_FTM0CLKPS_SHIFT);
}
/**
* @brief FTM1TCLKÒý½ÅÑ¡Ôñ
* @param PinSelect: Òý½ÅÑ¡Ôñ
* Õâ¸ö²ÎÊý¿ÉÒÔÈ¡ÏÂÃæµÄÖµ:
* @arg FTM1CLK_PS_TCLK0: Ñ¡ÔñTCLK0ÓÃÓÚFTM1Ä£¿é
* @arg FTM1CLK_PS_TCLK1: Ñ¡ÔñTCLK1ÓÃÓÚFTM1Ä£¿é
* @arg FTM1CLK_PS_TCLK2: Ñ¡ÔñTCLK2ÓÃÓÚFTM1Ä£¿é
* @retval None
*/
void SIM_PINSEL_FTM1TCLK(uint8_t PinSelect)
{
SIM->PINSEL0 &= ~SIM_PINSEL0_FTM1CLKPS_MASK;
SIM->PINSEL0 |= ((uint32_t)PinSelect << SIM_PINSEL0_FTM1CLKPS_SHIFT);
}
/**
* @brief FTM2TCLKÒý½ÅÑ¡Ôñ
* @param PinSelect: Òý½ÅÑ¡Ôñ
* Õâ¸ö²ÎÊý¿ÉÒÔÈ¡ÏÂÃæµÄÖµ:
* @arg FTM2CLK_PS_TCLK0: Ñ¡ÔñTCLK0ÓÃÓÚFTM2Ä£¿é
* @arg FTM2CLK_PS_TCLK1: Ñ¡ÔñTCLK1ÓÃÓÚFTM2Ä£¿é
* @arg FTM2CLK_PS_TCLK2: Ñ¡ÔñTCLK2ÓÃÓÚFTM2Ä£¿é
* @retval None
*/
void SIM_PINSEL_FTM2TCLK(uint8_t PinSelect)
{
SIM->PINSEL0 &= ~SIM_PINSEL0_FTM2CLKPS_MASK;
SIM->PINSEL0 |= ((uint32_t)PinSelect << SIM_PINSEL0_FTM2CLKPS_SHIFT);
}
/**
* @brief PWTCLKÒý½ÅÑ¡Ôñ
* @param PinSelect: Òý½ÅÑ¡Ôñ
* Õâ¸ö²ÎÊý¿ÉÒÔÈ¡ÏÂÃæµÄÖµ:
* @arg PWTCLK_PS_TCLK0: Ñ¡ÔñTCLK0ÓÃÓÚPWTÄ£¿é
* @arg PWTCLK_PS_TCLK1: Ñ¡ÔñTCLK1ÓÃÓÚPWTÄ£¿é
* @arg PWTCLK_PS_TCLK2: Ñ¡ÔñTCLK2ÓÃÓÚPWTÄ£¿é
* @retval None
*/
void SIM_PINSEL_PWTTCLK(uint8_t PinSelect)
{
SIM->PINSEL0 &= ~SIM_PINSEL0_PWTCLKPS_MASK;
SIM->PINSEL0 |= ((uint32_t)PinSelect << SIM_PINSEL0_PWTCLKPS_SHIFT);
}
/**
* @brief FTM2ͨµÀ0¶Ë¿ÚÒý½ÅÑ¡Ôñ
* @param PinSelect: Òý½ÅÑ¡Ôñ
* Õâ¸ö²ÎÊý¿ÉÒÔÈ¡ÏÂÃæµÄÖµ:
* @arg FTM2CH0_PS_PTC0: FTM2_CH0ͨµÀÓ³Éäµ½PTC0ÉÏ
* @arg FTM2CH0_PS_PTH0: FTM2_CH0ͨµÀÓ³Éäµ½PTH0ÉÏ
* @arg FTM2CH0_PS_PTF0: FTM2_CH0ͨµÀÓ³Éäµ½PTF0ÉÏ
* @retval None
*/
void SIM_PINSEL_FTM2CH0(uint8_t PinSelect)
{
SIM->PINSEL1 &= ~SIM_PINSEL1_FTM2PS0_MASK;
SIM->PINSEL1 |= (uint32_t)PinSelect;
}
/**
* @brief FTM2ͨµÀ1¶Ë¿ÚÒý½ÅÑ¡Ôñ
* @param PinSelect: Òý½ÅÑ¡Ôñ
* Õâ¸ö²ÎÊý¿ÉÒÔÈ¡ÏÂÃæµÄÖµ:
* @arg FTM2CH1_PS_PTC1: FTM2_CH1ͨµÀÓ³Éäµ½PTC1ÉÏ
* @arg FTM2CH1_PS_PTH1: FTM2_CH1ͨµÀÓ³Éäµ½PTH1ÉÏ
* @arg FTM2CH1_PS_PTF1: FTM2_CH1ͨµÀÓ³Éäµ½PTF1ÉÏ
* @retval None
*/
void SIM_PINSEL_FTM2CH1(uint8_t PinSelect)
{
SIM->PINSEL1 &= ~SIM_PINSEL1_FTM2PS1_MASK;
SIM->PINSEL1 |= ((uint32_t)PinSelect << SIM_PINSEL1_FTM2PS1_SHIFT);
}
/**
* @brief FTM2ͨµÀ2¶Ë¿ÚÒý½ÅÑ¡Ôñ
* @param PinSelect: Òý½ÅÑ¡Ôñ
* Õâ¸ö²ÎÊý¿ÉÒÔÈ¡ÏÂÃæµÄÖµ:
* @arg FTM2CH2_PS_PTC2: FTM2_CH2ͨµÀÓ³Éäµ½PTC2ÉÏ
* @arg FTM2CH2_PS_PTD0: FTM2_CH2ͨµÀÓ³Éäµ½PTD0ÉÏ
* @arg FTM2CH2_PS_PTG4: FTM2_CH2ͨµÀÓ³Éäµ½PTG4ÉÏ
* @retval None
*/
void SIM_PINSEL_FTM2CH2(uint8_t PinSelect)
{
SIM->PINSEL1 &= ~SIM_PINSEL1_FTM2PS2_MASK;
SIM->PINSEL1 |= ((uint32_t)PinSelect << SIM_PINSEL1_FTM2PS2_SHIFT);
}
/**
* @brief FTM2ͨµÀ3¶Ë¿ÚÒý½ÅÑ¡Ôñ
* @param PinSelect: Òý½ÅÑ¡Ôñ
* Õâ¸ö²ÎÊý¿ÉÒÔÈ¡ÏÂÃæµÄÖµ:
* @arg FTM2CH3_PS_PTC3: FTM2_CH3ͨµÀÓ³Éäµ½PTC3ÉÏ
* @arg FTM2CH3_PS_PTD1: FTM2_CH3ͨµÀÓ³Éäµ½PTD1ÉÏ
* @arg FTM2CH3_PS_PTG5: FTM2_CH3ͨµÀÓ³Éäµ½PTG5ÉÏ
* @retval None
*/
void SIM_PINSEL_FTM2CH3(uint8_t PinSelect)
{
SIM->PINSEL1 &= ~SIM_PINSEL1_FTM2PS3_MASK;
SIM->PINSEL1 |= ((uint32_t)PinSelect << SIM_PINSEL1_FTM2PS3_SHIFT);
}
/**
* @brief FTM2ͨµÀ4¶Ë¿ÚÒý½ÅÑ¡Ôñ
* @param PinSelect: Òý½ÅÑ¡Ôñ
* Õâ¸ö²ÎÊý¿ÉÒÔÈ¡ÏÂÃæµÄÖµ:
* @arg FTM2CH4_PS_PTB4: FTM2_CH4ͨµÀÓ³Éäµ½PTB4ÉÏ
* @arg FTM2CH4_PS_PTG6: FTM2_CH4ͨµÀÓ³Éäµ½PTG6ÉÏ
* @retval None
*/
void SIM_PINSEL_FTM2CH4(uint8_t PinSelect)
{
SIM->PINSEL1 &= ~SIM_PINSEL1_FTM2PS4_MASK;
SIM->PINSEL1 |= ((uint32_t)PinSelect << SIM_PINSEL1_FTM2PS4_SHIFT);
}
/**
* @brief FTM2ͨµÀ5¶Ë¿ÚÒý½ÅÑ¡Ôñ
* @param PinSelect: Òý½ÅÑ¡Ôñ
* Õâ¸ö²ÎÊý¿ÉÒÔÈ¡ÏÂÃæµÄÖµ:
* @arg FTM2CH5_PS_PTB5: FTM2_CH5ͨµÀÓ³Éäµ½PTB5ÉÏ
* @arg FTM2CH5_PS_PTG7: FTM2_CH5ͨµÀÓ³Éäµ½PTG7ÉÏ
* @retval None
*/
void SIM_PINSEL_FTM2CH5(uint8_t PinSelect)
{
SIM->PINSEL1 &= ~SIM_PINSEL1_FTM2PS5_MASK;
SIM->PINSEL1 |= ((uint32_t)PinSelect << SIM_PINSEL1_FTM2PS5_SHIFT);
}
/**
* @brief I2C1¶Ë¿ÚÒý½ÅÑ¡Ôñ
* @param PinSelect: Òý½ÅÑ¡Ôñ
* Õâ¸ö²ÎÊý¿ÉÒÔÈ¡ÏÂÃæµÄÖµ:
* @arg I2C1_PS_PTE1_PTE0: I2C1_SCLºÍI2C1_SDA·Ö±ðÓ³Éäµ½PTE1ºÍPTE0ÉÏ
* @arg I2C1_PS_PTH4_PTH3: I2C1_SCLºÍI2C1_SDA·Ö±ðÓ³Éäµ½PTH4ºÍPTH3ÉÏ
* @retval None
*/
void SIM_PINSEL_I2C1(uint8_t PinSelect)
{
SIM->PINSEL1 &= ~SIM_PINSEL1_I2C1PS_MASK;
SIM->PINSEL1 |= ((uint32_t)PinSelect << SIM_PINSEL1_I2C1PS_SHIFT);
}
/**
* @brief SPI1¶Ë¿ÚÒý½ÅÑ¡Ôñ
* @param PinSelect: Òý½ÅÑ¡Ôñ
* Õâ¸ö²ÎÊý¿ÉÒÔÈ¡ÏÂÃæµÄÖµ:
* @arg SPI1_PS_PTD0_PTD1_PTD2_PTD3: SPI0_SCK,SPI0_MOSI,SPI0_MISOºÍSPI0_CS·Ö±ðÓ³Éäµ½PTD0,PTD1,PTD2ºÍPTD3ÉÏ
* @arg SPI1_PS_PTG4_PTG5_PTG6_PTG7: SPI0_SCK,SPI0_MOSI,SPI0_MISOºÍSPI0_CS·Ö±ðÓ³Éäµ½PTG4,PTG5,PTG6ºÍPTG7ÉÏ
* @retval None
*/
void SIM_PINSEL_SPI1(uint8_t PinSelect)
{
SIM->PINSEL1 &= ~SIM_PINSEL1_SPI1PS_MASK;
SIM->PINSEL1 |= ((uint32_t)PinSelect << SIM_PINSEL1_SPI1PS_SHIFT);
}
/**
* @brief UART1¶Ë¿ÚÒý½ÅÑ¡Ôñ
* @param PinSelect: Òý½ÅÑ¡Ôñ
* Õâ¸ö²ÎÊý¿ÉÒÔÈ¡ÏÂÃæµÄÖµ:
* @arg UART1_PS_PTC7_PTC6: UART0_RXºÍUART0_TX·Ö±ðÓ³Éäµ½PTC7ºÍPTC6ÉÏ
* @arg UART1_PS_PTF3_PTF2: UART0_RXºÍUART0_TX·Ö±ðÓ³Éäµ½PTF3ºÍPTF2ÉÏ
* @retval None
*/
void SIM_PINSEL_UART1(uint8_t PinSelect)
{
SIM->PINSEL1 &= ~SIM_PINSEL1_UART1PS_MASK;
SIM->PINSEL1 |= ((uint32_t)PinSelect << SIM_PINSEL1_UART1PS_SHIFT);
}
/**
* @brief UART2¶Ë¿ÚÒý½ÅÑ¡Ôñ
* @param PinSelect: Òý½ÅÑ¡Ôñ
* Õâ¸ö²ÎÊý¿ÉÒÔÈ¡ÏÂÃæµÄÖµ:
* @arg UART2_PS_PTD7_PTD6: UART0_RXºÍUART0_TX·Ö±ðÓ³Éäµ½PTD7ºÍPTD6ÉÏ
* @arg UART2_PS_PTI1_PTI0: UART0_RXºÍUART0_TX·Ö±ðÓ³Éäµ½PTI1ºÍPTI0ÉÏ
* @retval None
*/
void SIM_PINSEL_UART2(uint8_t PinSelect)
{
SIM->PINSEL1 &= ~SIM_PINSEL1_UART2PS_MASK;
SIM->PINSEL1 |= ((uint32_t)PinSelect << SIM_PINSEL1_UART2PS_SHIFT);
}
/**
* @brief PWTIN0¶Ë¿ÚÒý½ÅÑ¡Ôñ
* @param PinSelect: Òý½ÅÑ¡Ôñ
* Õâ¸ö²ÎÊý¿ÉÒÔÈ¡ÏÂÃæµÄÖµ:
* @arg PWTIN0_PS_PTD5: PWTIN0Òý½ÅÓ³Éäµ½PTD5ÉÏ
* @arg PWTIN0_PS_PTE2: PWTIN0Òý½ÅÓ³Éäµ½PTE2ÉÏ
* @retval None
*/
void SIM_PINSEL_PWTIN0(uint8_t PinSelect)
{
SIM->PINSEL1 &= ~SIM_PINSEL1_PWTIN0PS_MASK;
SIM->PINSEL1 |= ((uint32_t)PinSelect << SIM_PINSEL1_PWTIN0PS_SHIFT);
}
/**
* @brief PWTIN1¶Ë¿ÚÒý½ÅÑ¡Ôñ
* @param PinSelect: Òý½ÅÑ¡Ôñ
* Õâ¸ö²ÎÊý¿ÉÒÔÈ¡ÏÂÃæµÄÖµ:
* @arg PWTIN1_PS_PTB0: PWTIN0Òý½ÅÓ³Éäµ½PTB0ÉÏ
* @arg PWTIN1_PS_PTH7: PWTIN0Òý½ÅÓ³Éäµ½PTH7ÉÏ
* @retval None
*/
void SIM_PINSEL_PWTIN1(uint8_t PinSelect)
{
SIM->PINSEL1 &= ~SIM_PINSEL1_PWTIN1PS_MASK;
SIM->PINSEL1 |= ((uint32_t)PinSelect << SIM_PINSEL1_PWTIN1PS_SHIFT);
}
/**
* @brief SPI0¶Ë¿ÚÒý½ÅÑ¡Ôñ 20190729XU
* @param PinSelect: Òý½ÅÑ¡Ôñ
* Õâ¸ö²ÎÊý¿ÉÒÔÈ¡ÏÂÃæµÄÖµ:
* @arg SPI0_PS_PTB2_PTB3_PTB4_PTB5: SPI0_SCK,SPI0_MOSI,SPI0_MISOºÍSPI0_CS·Ö±ðÓ³Éäµ½PTB2,PTB3,PTB4ºÍPTB5ÉÏ
* @arg SPI0_PS_PTE0_PTE1_PTE2_PTE3: SPI0_SCK,SPI0_MOSI,SPI0_MISOºÍSPI0_CS·Ö±ðÓ³Éäµ½PTE0,PTE1,PTE2ºÍPTE3ÉÏ
* @retval None
*/
void SIM_PINSEL_SPI0(uint8_t PinSelect)
{
SIM->PINSEL1 &= ~SIM_PINSEL1_SPI0PS_MASK;
SIM->PINSEL1 |= ((uint32_t)PinSelect << SIM_PINSEL1_SPI0PS_SHIFT);
}
/**
* @brief EWM¶Ë¿ÚÒý½ÅÑ¡Ôñ
* @param PinSelect: Òý½ÅÑ¡Ôñ
* Õâ¸ö²ÎÊý¿ÉÒÔÈ¡ÏÂÃæµÄÖµ:
* @arg EWM_PS_PTA3_PTA2: EWM_INºÍEWM_RESET·Ö±ðÓ³Éäµ½PTA3ºÍPTA2ÉÏ
* @arg EWM_PS_PTC4_PTA4: EWM_INºÍEWM_RESET·Ö±ðÓ³Éäµ½PTC4ºÍPTA4ÉÏ
* @arg EWM_PS_PTE7_PTH2: EWM_INºÍEWM_RESET·Ö±ðÓ³Éäµ½PTE7ºÍPTH2ÉÏ
* @retval None
*/
void SIM_PINSEL_EWM(uint8_t PinSelect)
{
SIM->PINSEL1 &= ~SIM_PINSEL1_EWMPS_MASK;
SIM->PINSEL1 |= ((uint32_t)PinSelect << SIM_PINSEL1_EWMPS_SHIFT);
}
/**
* @brief IRQ¶Ë¿ÚÒý½ÅÑ¡Ôñ 20190729XU
* @param PinSelect: Òý½ÅÑ¡Ôñ
* Õâ¸ö²ÎÊý¿ÉÒÔÈ¡ÏÂÃæµÄÖµ:
* @arg IRQ_PS_GROUP1: IRQÓ³Éäµ½µÚÒ»×éPIN½ÅÉÏ
* @arg IRQ_PS_GROUP2: IRQÓ³Éäµ½µÚ¶þ×éPIN½ÅÉÏ
* @arg IRQ_PS_GROUP3: IRQÓ³Éäµ½µÚÈý×éPIN½ÅÉÏ
* @arg IRQ_PS_GROUP4: IRQÓ³Éäµ½µÚËÄ×éPIN½ÅÉÏ
* @arg IRQ_PS_GROUP5: IRQÓ³Éäµ½µÚÎå×éPIN½ÅÉÏ
* @retval None
*/
void SIM_PINSEL_IRQ(uint8_t PinSelect)
{
SIM->PINSEL1 &= ~SIM_PINSEL1_IRQPS_MASK;
SIM->PINSEL1 |= ((uint32_t)PinSelect << SIM_PINSEL1_IRQPS_SHIFT);
}
/**
* @brief ACMP1Êä³öPS¶Ë¿ÚÒý½ÅÑ¡Ôñ 20190729XU
* @param PinSelect: Òý½ÅÑ¡Ôñ
* Õâ¸ö²ÎÊý¿ÉÒÔÈ¡ÏÂÃæµÄÖµ:
* @arg ACMP1_PS_PTB5: ACMP1Êä³öÓ³Éäµ½PTB5ÉÏ
* @arg ACMP1_PS_PTI1: ACMP1Êä³öÓ³Éäµ½PTI1ÉÏ
* @retval None
*/
void SIM_PINSEL_ACMP(uint8_t PinSelect)
{
SIM->PINSEL1 &= ~SIM_PINSEL1_ACMP1PS_MASK;
SIM->PINSEL1 |= ((uint32_t)PinSelect << SIM_PINSEL1_ACMP1PS_SHIFT);
}
/**
* @brief RTCÊä³öPS¶Ë¿ÚÒý½ÅÑ¡Ôñ 20190729XU
* @param PinSelect: Òý½ÅÑ¡Ôñ
* Õâ¸ö²ÎÊý¿ÉÒÔÈ¡ÏÂÃæµÄÖµ:
* @arg RTCO_PS_PTC4: RTCÊä³öÓ³Éäµ½PTC4ÉÏ
* @arg RTCO_PS_PTC5: RTCÊä³öÓ³Éäµ½PTC5ÉÏ
* @retval None
*/
void SIM_PINSEL_RTC(uint8_t PinSelect)
{
SIM->PINSEL1 &= ~SIM_PINSEL1_RTCPS_MASK;
SIM->PINSEL1 |= ((uint32_t)PinSelect << SIM_PINSEL1_RTCPS_SHIFT);
}
/**
* @brief I2C0¶Ë¿ÚÒý½ÅÑ¡Ôñ 20190729XU
* @param PinSelect: Òý½ÅÑ¡Ôñ
* Õâ¸ö²ÎÊý¿ÉÒÔÈ¡ÏÂÃæµÄÖµ:
* @arg I2C0_PS_PTA3_PTA2: I2C0_SCLºÍI2C0_SDA·Ö±ðÓ³Éäµ½PTA3ºÍPTA2ÉÏ
* @arg I2C0_PS_PTB7_PTB6: I2C0_SCLºÍI2C0_SDA·Ö±ðÓ³Éäµ½PTB7ºÍPTB6ÉÏ
* @retval None
*/
void SIM_PINSEL_I2C0(uint8_t PinSelect)
{
SIM->PINSEL1 &= ~SIM_PINSEL1_I2C0PS_MASK;
SIM->PINSEL1 |= ((uint32_t)PinSelect << SIM_PINSEL1_I2C0PS_SHIFT);
}
/**
* @brief FTM0ͨµÀ2¶Ë¿ÚÒý½ÅÑ¡Ôñ
* @param PinSelect: Òý½ÅÑ¡Ôñ
* Õâ¸ö²ÎÊý¿ÉÒÔÈ¡ÏÂÃæµÄÖµ:
* @arg FTM0CH2_PS_PTH7: FTM0_CH2ͨµÀÓ³Éäµ½PTH7ÉÏ
* @arg FTM0CH2_PS_PTD5: FTM0_CH2ͨµÀÓ³Éäµ½PTD5ÉÏ
* @retval None
*/
void SIM_PINSEL_FTM0CH2(uint8_t PinSelect)
{
SIM->PINSEL1 &= ~SIM_PINSEL1_FTM0PS2_MASK;
SIM->PINSEL1 |= ((uint32_t)PinSelect << SIM_PINSEL1_FTM0PS2_SHIFT);
}
/**
* @brief FTM0ͨµÀ3¶Ë¿ÚÒý½ÅÑ¡Ôñ
* @param PinSelect: Òý½ÅÑ¡Ôñ
* Õâ¸ö²ÎÊý¿ÉÒÔÈ¡ÏÂÃæµÄÖµ:
* @arg FTM0CH3_PS_PTE4: FTM0_CH3ͨµÀÓ³Éäµ½PTE4ÉÏ
* @arg FTM0CH3_PS_PTD4: FTM0_CH3ͨµÀÓ³Éäµ½PTD4ÉÏ
* @retval None
*/
void SIM_PINSEL_FTM0CH3(uint8_t PinSelect)
{
SIM->PINSEL1 &= ~SIM_PINSEL1_FTM0PS3_MASK;
SIM->PINSEL1 |= ((uint32_t)PinSelect << SIM_PINSEL1_FTM0PS3_SHIFT);
}
/**
* @brief FTM1ͨµÀ2¶Ë¿ÚÒý½ÅÑ¡Ôñ
* @param PinSelect: Òý½ÅÑ¡Ôñ
* Õâ¸ö²ÎÊý¿ÉÒÔÈ¡ÏÂÃæµÄÖµ:
* @arg FTM1CH2_PS_PTH1: FTM1_CH2ͨµÀÓ³Éäµ½PTH1ÉÏ
* @arg FTM1CH2_PS_PTB4: FTM1_CH2ͨµÀÓ³Éäµ½PTB4ÉÏ
* @retval None
*/
void SIM_PINSEL_FTM1CH2(uint8_t PinSelect)
{
SIM->PINSEL1 &= ~SIM_PINSEL1_FTM1PS2_MASK;
SIM->PINSEL1 |= ((uint32_t)PinSelect << SIM_PINSEL1_FTM1PS2_SHIFT);
}
/**
* @brief FTM1ͨµÀ3¶Ë¿ÚÒý½ÅÑ¡Ôñ
* @param PinSelect: Òý½ÅÑ¡Ôñ
* Õâ¸ö²ÎÊý¿ÉÒÔÈ¡ÏÂÃæµÄÖµ:
* @arg FTM1CH3_PS_PTH0: FTM1_CH3ͨµÀÓ³Éäµ½PTE4ÉÏ
* @arg FTM1CH3_PS_PTE3: FTM1_CH3ͨµÀÓ³Éäµ½PTD4ÉÏ
* @retval None
*/
void SIM_PINSEL_FTM1CH3(uint8_t PinSelect)
{
SIM->PINSEL1 &= ~SIM_PINSEL1_FTM1PS3_MASK;
SIM->PINSEL1 |= ((uint32_t)PinSelect << SIM_PINSEL1_FTM1PS3_SHIFT);
}
/**
* @brief FTM2ͨµÀ6¶Ë¿ÚÒý½ÅÑ¡Ôñ
* @param PinSelect: Òý½ÅÑ¡Ôñ
* Õâ¸ö²ÎÊý¿ÉÒÔÈ¡ÏÂÃæµÄÖµ:
* @arg FTM2CH6_PS_PTF3: FTM2_CH6ͨµÀÓ³Éäµ½PTF3ÉÏ
* @arg FTM2CH6_PS_PTD3: FTM2_CH6ͨµÀÓ³Éäµ½PTD3ÉÏ
* @retval None
*/
void SIM_PINSEL_FTM2CH6(uint8_t PinSelect)
{
SIM->PINSEL1 &= ~SIM_PINSEL1_FTM2PS6_MASK;
SIM->PINSEL1 |= ((uint32_t)PinSelect << SIM_PINSEL1_FTM2PS6_SHIFT);
}
/**
* @brief FTM2ͨµÀ7¶Ë¿ÚÒý½ÅÑ¡Ôñ
* @param PinSelect: Òý½ÅÑ¡Ôñ
* Õâ¸ö²ÎÊý¿ÉÒÔÈ¡ÏÂÃæµÄÖµ:
* @arg FTM2CH7_PS_PTF2: FTM2_CH7ͨµÀÓ³Éäµ½PTF2ÉÏ
* @arg FTM2CH7_PS_PTD2: FTM2_CH7ͨµÀÓ³Éäµ½PTD2ÉÏ
* @retval None
*/
void SIM_PINSEL_FTM2CH7(uint8_t PinSelect)
{
SIM->PINSEL1 &= ~SIM_PINSEL1_FTM2PS7_MASK;
SIM->PINSEL1 |= ((uint32_t)PinSelect << SIM_PINSEL1_FTM2PS7_SHIFT);
}
/**
* @brief ϵͳʱÖÓѡͨ
* @param SCGC_Type: Ö¸¶¨ÍâÉèʱÖÓʹÄÜ״̬
* Õâ¸ö²ÎÊý¿ÉÒÔΪÒÔÏÂÖµ:
* @arg SIM_SCGC_RTC: RTCʱÖÓѡͨ
* @arg SIM_SCGC_PIT: PITʱÖÓѡͨ
* @arg SIM_SCGC_EWM: EWMʱÖÓѡͨ
* @arg SIM_SCGC_PWT: PWTʱÖÓѡͨ
* @arg SIM_SCGC_FTM0: FTM0ʱÖÓѡͨ
* @arg SIM_SCGC_FTM1: FTM1ʱÖÓѡͨ
* @arg SIM_SCGC_FTM2: FTM2ʱÖÓѡͨ
* @arg SIM_SCGC_CLMA: FTM2ʱÖÓѡͨ
* @arg SIM_SCGC_CLMB: FTM2ʱÖÓѡͨ
* @arg SIM_SCGC_CRC: CRCʱÖÓѡͨ
* @arg SIM_SCGC_WDG: WDGʱÖÓѡͨ
* @arg SIM_SCGC_MCAN: MCANʱÖÓѡͨ
* @arg SIM_SCGC_I2C0: I2C0ʱÖÓѡͨ
* @arg SIM_SCGC_I2C1: I2C1ʱÖÓѡͨ
* @arg SIM_SCGC_SPI0: SPI0ʱÖÓѡͨ
* @arg SIM_SCGC_SPI1: SPI1ʱÖÓѡͨ
* @arg SIM_SCGC_UART0: UART0ʱÖÓѡͨ
* @arg SIM_SCGC_UART1: UART1ʱÖÓѡͨ
* @arg SIM_SCGC_UART2: UART2ʱÖÓѡͨ
* @arg SIM_SCGC_KBI0: KBI0ʱÖÓѡͨ
* @arg SIM_SCGC_KBI1: KBI1ʱÖÓѡͨ
* @arg SIM_SCGC_IRQ: IRQʱÖÓѡͨ
* @arg SIM_SCGC_DMA: DMAʱÖÓѡͨ
* @arg SIM_SCGC_ADC: ADCʱÖÓѡͨ
* @arg SIM_SCGC_ACMP0: ACMP0ʱÖÓѡͨ
* @arg SIM_SCGC_ACMP1: ACMP1ʱÖÓѡͨ
* @param State: Ñ¡¶¨Ö¸¶¨µÄÍâÉè
* Õâ¸ö²ÎÊý¿ÉÒÔÈ¡ÏÂÃæµÄÖµ:
* @arg ENABLE: ʹÄÜÏàӦģ¿é
* @arg DISABLE: ¹Ø±ÕÏàӦģ¿é
* @retval None
*/
void SIM_SCGC_Cmd(uint32_t SCGC_Type, FunctionalState State)
{
if(State == ENABLE)
{
SIM->SCGC |= SCGC_Type;
}
else
{
SIM->SCGC &= ~SCGC_Type;
}
}
/**
* @brief ϵͳʱÖÓѡͨ1
* @param SCGC_Type: Ö¸¶¨ÍâÉèʱÖÓʹÄÜ״̬
* Õâ¸ö²ÎÊý¿ÉÒÔΪÒÔÏÂÖµ:
* @arg SIM_SCGC1_FTM0F: FTM0Ñ¡ÓÃICSFFCLKʱÖÓʹÄÜ
* @arg SIM_SCGC1_FTM1F: FTM1Ñ¡ÓÃICSFFCLKʱÖÓʹÄÜ
* @arg SIM_SCGC1_FTM2F: FTM2Ñ¡ÓÃICSFFCLKʱÖÓʹÄÜ
* @arg SIM_SCGC1_RTCEC: RTCÑ¡ÓÃOSCERCLKʱÖÓʹÄÜ
* @arg SIM_SCGC1_ADCALTC: ADCÑ¡ÓÃALTCLKʱÖÓʹÄÜ
* @arg SIM_SCGC1_FTM0T: FTM0Ñ¡ÓÃTIMERCLKʱÖÓʹÄÜ
* @arg SIM_SCGC1_FTM1T: FTM1Ñ¡ÓÃTIMERCLKʱÖÓʹÄÜ
* @arg SIM_SCGC1_FTM2T: FTM2Ñ¡ÓÃTIMERCLKʱÖÓʹÄÜ
* @arg SIM_SCGC1_RTCLPOC: RTCÑ¡ÓÃLPOCLKʱÖÓʹÄÜ
* @param State: Ñ¡¶¨Ö¸¶¨µÄÍâÉè
* Õâ¸ö²ÎÊý¿ÉÒÔÈ¡ÏÂÃæµÄÖµ:
* @arg ENABLE: ʹÄÜÏàӦģ¿é
* @arg DISABLE: ¹Ø±ÕÏàӦģ¿é
* @retval None
*/
void SIM_SCGC1_Cmd(uint32_t SCGC1_Type, FunctionalState State)
{
if(State == ENABLE)
{
SIM->SCGC1 |= SCGC1_Type;
}
else
{
SIM->SCGC1 &= ~SCGC1_Type;
}
}
/**
* @brief »ñȡͨÓÃΨһ±êʶ·ûµÍλ
* @param None
* @retval ͨÓÃΨһ±êʶ·ûµÍλ
*/
uint32_t SIM_GetUUIDL(void)
{
return SIM->UUIDL;
}
/**
* @brief »ñȡͨÓÃΨһ±êʶ·ûÖеÍλ
* @param None
* @retval ͨÓÃΨһ±êʶ·ûµÍλ
*/
uint32_t SIM_GetUUIDML(void)
{
return SIM->UUIDML;
}
/**
* @brief »ñȡͨÓÃΨһ±êʶ·ûÖиßλ
* @param None
* @retval ͨÓÃΨһ±êʶ·ûµÍλ
*/
uint32_t SIM_GetUUIDMH(void)
{
return SIM->UUIDMH;
}
/**
* @brief »ñȡоƬSRAMÈÝÁ¿´óС
* @param None
* @retval SRAMÈÝÁ¿´óС(SRAM_SIZE_16KB or SRAM_SIZE_24KB)
*/
uint8_t SIM_GetSRAMSize(void)
{
return (uint8_t)(SIM->UUIDMH & SIM_UUIDMH_SS_MASK);
}
/**
* @brief »ñȡоƬFLASHÈÝÁ¿´óС
* @param None
* @retval FLASHÈÝÁ¿´óС(FLASH_SIZE_256KB or FLASH_SIZE_128KB)
*/
uint8_t SIM_GetFLASHSize(void)
{
return (uint8_t)((SIM->UUIDMH & SIM_UUIDMH_FS_MASK) >> SIM_UUIDMH_FS_SHIFT);
}
/**
* @brief »ñȡоƬ°æ±¾
* @param None
* @retval оƬ°æ±¾
*/
uint8_t SIM_GetVer(void)
{
return (uint8_t)((SIM->UUIDMH & SIM_UUIDMH_VER_MASK) >> SIM_UUIDMH_VER_SHIFT);
}
/**
* @brief »ñȡоƬÐͺÅ
* @param None
* @retval оƬÐͺÅ
*/
uint8_t SIM_GetDevID(void)
{
return (uint8_t)((SIM->UUIDMH & SIM_UUIDMH_DEVID_MASK) >> SIM_UUIDMH_DEVID_SHIFT);
}
/**
* @brief ÉèÖÃÄÚºËʱÖӵķ֯µÖµ
* @param divide: ÄÚºËʱÖÓ·ÖÆµÖµ(1-256)(ICSOUTCLK³ýÒÔdivide)
* @retval None
*/
void SIM_CLKDIV_OUTDIV1(uint32_t divide)
{
SIM->CLKDIV &= ~SIM_CLKDIV_OUTDIV1_MASK;
SIM->CLKDIV |= divide - (uint32_t)1;
}
/**
* @brief ÉèÖÃAHB×ÜÏߺÍFLASHʱÖӵķ֯µÖµ
* @param divide: AHB×ÜÏߺÍFLASHʱÖӵķ֯µÖµ(OUTDIV1³ýÒÔdivide) (1-256)
* @retval None
*/
void SIM_CLKDIV_OUTDIV2(uint32_t divide)
{
SIM->CLKDIV &= ~SIM_CLKDIV_OUTDIV2_MASK;
SIM->CLKDIV |= (divide - (uint32_t)1) << SIM_CLKDIV_OUTDIV2_SHIFT;
}
/**
* @brief ÉèÖÃAPB×ÜÏßʱÖӵķ֯µÖµ
* @param divide: APB×ÜÏßʱÖӵķ֯µÖµ(OUTDIV2³ýÒÔdivide)
* @retval None
*/
void SIM_CLKDIV_OUTDIV3(uint32_t divide)
{
SIM->CLKDIV &= ~SIM_CLKDIV_OUTDIV3_MASK;
SIM->CLKDIV |= (divide - (uint32_t)1) << SIM_CLKDIV_OUTDIV3_SHIFT;
}
/**
* @brief ÉèÖö¨Ê±Æ÷(FTM0,FTM1,FTM2,PWT)µÄ·ÖƵֵ
* @param divide: APB×ÜÏßʱÖӵķ֯µÖµ(ICSOUTCLK³ýÒÔdivide)
* @retval None
*/
void SIM_CLKDIV_OUTDIV4(uint32_t divide)
{
SIM->CLKDIV &= ~SIM_CLKDIV_OUTDIV4_MASK;
SIM->CLKDIV |= (divide - (uint32_t)1) << SIM_CLKDIV_OUTDIV4_SHIFT;
}
/**
* @brief µÃµ½OUTDIV1µÄ·ÖƵֵ
* @param None
* @retval ·ÖƵֵ
*/
uint8_t SIM_GetOUTDIV1(void)
{
return (uint8_t)(SIM->CLKDIV);
}
/**
* @brief µÃµ½OUTDIV2µÄ·ÖƵֵ
* @param None
* @retval ·ÖƵֵ
*/
uint8_t SIM_GetOUTDIV2(void)
{
return (uint8_t)(SIM->CLKDIV >> 8);
}
/**
* @brief µÃµ½OUTDIV3µÄ·ÖƵֵ
* @param None
* @retval ·ÖƵֵ
*/
uint8_t SIM_GetOUTDIV3(void)
{
return (uint8_t)(SIM->CLKDIV >> 16);
}
/**
* @brief µÃµ½OUTDIV4µÄ·ÖƵֵ
* @param None
* @retval ·ÖƵֵ
*/
uint8_t SIM_GetOUTDIV4(void)
{
return (uint8_t)(SIM->CLKDIV >> 24);
}
/**
* @brief ϵͳ¹¦ºÄ¿ØÖÆ
* @param LP_Type: Ñ¡Ôñ¹Ø¶ÏµçÔ´µÄÄ£¿é
* Õâ¸ö²ÎÊý¿ÉÒÔÈ¡ÏÂÃæµÄÖµ:
* @arg SIM_LP_USER_FLASH: Óû§Ä£Ê½ÊǹضÏFLASHµçÔ´
* @arg SIM_LP_USER_FLASH: STOPģʽÊǹضÏFLASHµçÔ´
* @arg SIM_LP_USER_RAM1: Óû§Ä£Ê½ÊǹضÏRAM1µçÔ´
* @arg SIM_LP_USER_RAM2: Óû§Ä£Ê½ÊǹضÏRAM2µçÔ´
* @arg SIM_LP_USER_RAM3: Óû§Ä£Ê½ÊǹضÏRAM3µçÔ´
* @arg SIM_LP_STOP_RAM1: STOPģʽÊǹضÏRAM1µçÔ´
* @arg SIM_LP_STOP_RAM2: STOPģʽÊǹضÏRAM2µçÔ´
* @arg SIM_LP_STOP_RAM3: STOPģʽÊǹضÏRAM3µçÔ´
* @retval None
*/
void SIM_LP_SetLowpowerCmd(uint32_t LP_Type)
{
SIM->LP = (0x55AA0000u | LP_Type);
}
/**
* @brief »ñÈ¡FLASHÉϵç±êÖ¾
* @param None
* @retval FLASHÉϵç±êÖ¾
*/
FlagStatus SIM_LP_FLASHPowerONStatus(void)
{
FlagStatus ret;
if( ((SIM->LP & SIM_LP_FLASHPON_MASK)>>SIM_LP_FLASHPON_SHIFT) != 0u)
{
ret= SET;
}
else
{
ret = RESET;
}
return ret;
}
/**
* @brief »ñÈ¡SRAMÉϵç±êÖ¾
* @param None
* @retval SRAMÉϵç±êÖ¾
*/
FlagStatus SIM_LP_SRAMPowerONStatus(void)
{
FlagStatus ret;
if( ((SIM->LP >> SIM_LP_SRAMPON_SHIFT)&(uint32_t)0x01) != 0u)
{
ret= SET;
}
else
{
ret = RESET;
}
return ret;
}
/**
* @brief ÉèÖÃϵͳÎȶ¨µÈ´ýʱ¼ä
* @param Clkwait: ICSOUTCLKµÄÎȶ¨¼ÆÊýÖÜÆÚ
* @retval None
*/
void SIM_WAIT_CLKWAITConfig(uint16_t Clkwait)
{
SIM->WAIT &= ~SIM_WAIT_CLKWAIT_MASK;
SIM->WAIT |= (uint32_t)Clkwait;
}
/**
* @brief ϵͳʱÖÓµÄ1us·ÖƵϵÊý
* @param Div1us: ϵͳʱÖÓµÄ1us·ÖƵϵÊý
* @retval None
*/
void SIM_WAIT_DIV1USConfig(uint16_t Div1us)
{
SIM->WAIT &= ~SIM_WAIT_DIV1US_MASK;
SIM->WAIT |= ((uint32_t)Div1us << SIM_WAIT_DIV1US_SHIFT);
}
/**
* @}
*/
/**
* @}
*/
/**
* @}
*/
#ifdef __cplusplus
}
#endif