添加一些关于midi播放的项目
This commit is contained in:
@@ -0,0 +1,164 @@
|
||||
/*************************************************************************!
|
||||
* 技术讨论:QQ群 123763203
|
||||
* 官网 :www.navota.com
|
||||
*
|
||||
* @file sim.c
|
||||
* @brief 系统集成模块(SIM)函数库
|
||||
* @author Navota
|
||||
* @date 2018-3-1
|
||||
*************************************************************************/
|
||||
|
||||
#include "common.h"
|
||||
#include "sim.h"
|
||||
|
||||
|
||||
#if defined(CPU_NV32)
|
||||
/*****************************************************************************//*!
|
||||
*
|
||||
* @ 初始化SIM寄存器.
|
||||
*
|
||||
* @ 输入 pConfig 指向SIM配置结构体.
|
||||
*
|
||||
* @ 无返回
|
||||
*
|
||||
* @ 参看 SIM_ConfigType
|
||||
*
|
||||
*****************************************************************************/
|
||||
void SIM_Init(SIM_ConfigType *pConfig)
|
||||
{
|
||||
uint32_t u32Sopt;
|
||||
uint32_t u32PinSel;
|
||||
uint32_t u32Scgc;
|
||||
uint32_t u32BusDiv;
|
||||
/*
|
||||
* 初始化SIM寄存器
|
||||
*/
|
||||
u32Sopt = 0x0010000E; /*使能SWD、RESET、NMI引脚 */
|
||||
u32PinSel = 0;
|
||||
u32Scgc = 0x00003000; /* 使能SWD、FLASH模块的总线时钟 */
|
||||
u32BusDiv = 0;
|
||||
u32BusDiv = pConfig->sBits.bBusDiv; /*总线时钟分频值*/
|
||||
if(pConfig->sBits.bDisableNMI) /*禁用NMI引脚*/
|
||||
{
|
||||
u32Sopt &= ~SIM_SOPT_NMIE_MASK;
|
||||
}
|
||||
if(pConfig->sBits.bDisableRESET) /*禁用RSTPE引脚*/
|
||||
{
|
||||
u32Sopt &= ~SIM_SOPT_RSTPE_MASK;
|
||||
}
|
||||
if(pConfig->sBits.bDisableSWD) /*禁用SWDE引脚*/
|
||||
{
|
||||
u32Sopt &= ~SIM_SOPT_SWDE_MASK;
|
||||
}
|
||||
if(pConfig->sBits.bEnableCLKOUT) /*使能总线时钟*/
|
||||
{
|
||||
u32Sopt |= SIM_SOPT_CLKOE_MASK;
|
||||
}
|
||||
if(pConfig->sBits.bETMSYNC) /*ETM2同步选择*/
|
||||
{
|
||||
u32Sopt |= SIM_SOPT_ETMSYNC_MASK; /*生成ETM2模块的PWM同步触发*/
|
||||
}
|
||||
if(pConfig->sBits.bRXDCE) /*UAT0_RX捕捉选择*/
|
||||
{
|
||||
u32Sopt |= SIM_SOPT_RXDCE_MASK; /*UAT0_RX输入信号接到UART0模块和ETM0通道1*/
|
||||
}
|
||||
if(pConfig->sBits.bTXDME) /*URAT0_TX捕捉选择*/
|
||||
{
|
||||
u32Sopt |= SIM_SOPT_TXDME_MASK; /*URAT0_TX输出映射到引出线前由ETM0通道调制*/
|
||||
}
|
||||
if(pConfig->sBits.bACIC) /*模拟比较器至输入捕获使能*/
|
||||
{
|
||||
u32Sopt |= SIM_SOPT_ACIC_MASK; /* ACMP0输出连接到ETM1输出通道0*/
|
||||
}
|
||||
if(pConfig->sBits.bRTCC)
|
||||
{
|
||||
u32Sopt |= SIM_SOPT_RTCC_MASK; /*RTC溢出连接到ETM1输入通道*/
|
||||
}
|
||||
if(pConfig->sBits.bRXDFE) /*URT0 RxD滤波器选择*/
|
||||
{
|
||||
u32Sopt |= SIM_SOPT_RXDFE_MASK; /*RXD0输入信号由ACMP0滤波,然后注入UART0*/
|
||||
}
|
||||
u32Sopt |= ((pConfig->u8BusRef & 0x07) << 16); /*总线时钟128分频*/
|
||||
u32Sopt |= ((pConfig->u8Delay) << 24); /*设置从ETM2初始化/匹配到触发ADC转换的延时时间*/
|
||||
u32Sopt |= ((pConfig->sBits.u8ADHWT & 0x03) << 8); /*选择ETM2匹配作为ADC转换的硬件触发源*/
|
||||
u32PinSel = pConfig->u32PinSel;
|
||||
u32Scgc = pConfig->u32SCGC;
|
||||
|
||||
/*写数据到SIM模块寄存器 */
|
||||
SIM->SOPT = u32Sopt;
|
||||
SIM->PINSEL = u32PinSel;
|
||||
SIM->SCGC = u32Scgc;
|
||||
SIM->BUSDIV = u32BusDiv;
|
||||
}
|
||||
#endif
|
||||
|
||||
/****************************************************************************//*!
|
||||
*
|
||||
* @ 设置SIM时钟选通控制寄存器,使能或者禁用外设门控时钟
|
||||
*
|
||||
* @ 输入 u32PeripheralMask 外设时钟掩码
|
||||
* @ 输入 u8GateOn 1:开启, 0:关闭.
|
||||
*
|
||||
* @ 无返回
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
void SIM_SetClockGating(uint32_t u32PeripheralMask, uint8_t u8GateOn)
|
||||
{
|
||||
uint32_t u32Scgc;
|
||||
|
||||
u32Scgc = SIM->SCGC;
|
||||
|
||||
if(u8GateOn)
|
||||
{
|
||||
u32Scgc |= u32PeripheralMask;
|
||||
}
|
||||
else
|
||||
{
|
||||
u32Scgc &= ~u32PeripheralMask;
|
||||
}
|
||||
|
||||
SIM->SCGC = u32Scgc;
|
||||
}
|
||||
|
||||
/*****************************************************************************//*!
|
||||
*
|
||||
* @ 读取相应的状态标志位.
|
||||
*
|
||||
* @ 输入 u32StatusMask 指示要被读取的状态
|
||||
*
|
||||
* @ 返回状态.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
uint32_t SIM_GetStatus(uint32_t u32StatusMask)
|
||||
{
|
||||
uint32_t u32Status;
|
||||
|
||||
u32Status = SIM->SRSID & u32StatusMask; //读取状态标志位
|
||||
|
||||
return (u32Status);
|
||||
}
|
||||
|
||||
/*****************************************************************************//*!
|
||||
*
|
||||
* @ 读相应的ID寄存器.
|
||||
*
|
||||
* @ 输入 u8ID ID的类型.
|
||||
*
|
||||
* @ 返回 ID
|
||||
*
|
||||
* 参看 IDType
|
||||
*
|
||||
*****************************************************************************/
|
||||
uint8_t SIM_ReadID(IDType sID)
|
||||
{
|
||||
uint32_t u32ID;
|
||||
uint8_t u8IDOffset[4] =
|
||||
{
|
||||
28, 24, 20,16
|
||||
};
|
||||
u32ID = (SIM->SRSID >> u8IDOffset[sID]) & 0x0F; //读取ID
|
||||
return (u32ID);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,472 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* @brief SIM 驱动头文件.
|
||||
*
|
||||
******************************************************************************/
|
||||
#ifndef SIM_H_
|
||||
#define SIM_H_
|
||||
|
||||
typedef enum {
|
||||
ID_TYPE_FAMID, /*!< NV32F100x系列 ID */
|
||||
ID_TYPE_SUBFAMID, /*!< NV32F100x子系列 ID */
|
||||
ID_TYPE_REVID, /*!< 器件版本 ID */
|
||||
ID_TYPE_PINID /*!< 器件引脚 ID */
|
||||
} IDType;
|
||||
|
||||
|
||||
#if defined(CPU_NV32)
|
||||
typedef struct{
|
||||
struct{
|
||||
uint32_t bEnableCLKOUT : 1; /*!< 1: 使能 , 0: 禁用 */
|
||||
uint32_t bTXDME : 1; /*!< 1: 使能 TXDME, 0: 禁用 */
|
||||
uint32_t bETMSYNC : 1; /*!< 1: 使能 ETM SYNC, 0: 未触发任何同步 */
|
||||
uint32_t bRXDFE : 1; /*!< 1: 使能 RXD 滤波, 0: 无滤波 */
|
||||
uint32_t bRXDCE : 1; /*!< 1: 使能 RXD 捕捉, 0: 无捕捉 */
|
||||
uint32_t bACIC : 1; /*!< 1: ACMP0的输出通道连接到ETM1的输入通道0, 0: 无连接 */
|
||||
uint32_t bRTCC : 1; /*!< 1: RTC溢出连接到ETM1输入通道1, 0: 无连接 */
|
||||
uint32_t u8ADHWT : 2; /*!< 选择ADC转换硬件触发源 */
|
||||
uint32_t bDisableSWD : 1; /*!< 1: 禁用SWD, 0: 使能 */
|
||||
uint32_t bDisableRESET : 1; /*!< 1: 禁用复位引脚, 0: 使能 */
|
||||
uint32_t bDisableNMI : 1; /*!< 1: 禁用NMI中断输入引脚, 0:使能 */
|
||||
uint32_t bBusDiv : 1; /*!< 总线分频系数 */
|
||||
} sBits;
|
||||
uint8_t u8Delay; /*!< ETM触发ADC转换延时值 */
|
||||
uint8_t u8BusRef; /*!< 总线参考 */
|
||||
uint32_t u32PinSel; /*!< 引脚选择寄存器的值*/
|
||||
uint32_t u32SCGC; /*!< 时钟选通寄存器的值 */
|
||||
} SIM_ConfigType, *SIM_ConfigPtr; /*!< SIM模块配置结构体类型 */
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(CPU_NV32)
|
||||
/*****************************************************************************//*!
|
||||
*
|
||||
* @brief 设置ETM2触发ADC转换的延时时间
|
||||
*
|
||||
* @param[in] u8Delay 延时时间模数值,参考时钟采用总线时钟分频
|
||||
*
|
||||
* @return none
|
||||
*
|
||||
* @ Pass/ Fail criteria: none
|
||||
*****************************************************************************/
|
||||
__STATIC_INLINE void SIM_DelayETM2Trig2ADC(uint8_t u8Delay)
|
||||
{
|
||||
SIM->SOPT = (SIM->SOPT & ~(SIM_SOPT_DELAY_MASK)) | SIM_SOPT_DELAY(u8Delay);
|
||||
}
|
||||
/*****************************************************************************//*!
|
||||
*
|
||||
* @brief 使能总线时钟在PH2上
|
||||
*
|
||||
* @param none
|
||||
*
|
||||
* @return none
|
||||
*
|
||||
* @ 参看 SIM_DisableClockOutput
|
||||
*****************************************************************************/
|
||||
__STATIC_INLINE void SIM_EnableClockOutput(void)
|
||||
{
|
||||
SIM->SOPT |= (SIM_SOPT_CLKOE_MASK);
|
||||
}
|
||||
|
||||
/*****************************************************************************//*!
|
||||
*
|
||||
* @brief 禁用总线时钟输出在PH2上
|
||||
*
|
||||
* @param none
|
||||
*
|
||||
* @return none
|
||||
*
|
||||
* @参看 SIM_EnableClockOutput
|
||||
*****************************************************************************/
|
||||
__STATIC_INLINE void SIM_DisableClockOutput(void)
|
||||
{
|
||||
SIM->SOPT &= ~(SIM_SOPT_CLKOE_MASK);
|
||||
}
|
||||
/*****************************************************************************//*!
|
||||
*
|
||||
* @brief 设置总线时钟输出分频.
|
||||
*
|
||||
* @param[in] u8Divide 分频系数 (3-bits)
|
||||
*
|
||||
* @return none
|
||||
*
|
||||
*****************************************************************************/
|
||||
__STATIC_INLINE void SIM_SetClockOutputDivide(uint8_t u8Divide)
|
||||
{
|
||||
SIM->SOPT = (SIM->SOPT & ~(SIM_SOPT_BUSREF_MASK)) | SIM_SOPT_BUSREF(u8Divide & 0x07);
|
||||
}
|
||||
/*****************************************************************************//*!
|
||||
*
|
||||
* @brief UART0_RX输入信号连接到UART0模块和ETM0通道1
|
||||
*
|
||||
* @param none
|
||||
*
|
||||
* @return none
|
||||
*
|
||||
*****************************************************************************/
|
||||
__STATIC_INLINE void SIM_EnableUART0RXDConnectETMOCH1(void)
|
||||
{
|
||||
SIM->SOPT |= (SIM_SOPT_RXDCE_MASK);
|
||||
}
|
||||
/*****************************************************************************//*!
|
||||
*
|
||||
* @brief UART0_TX输出在映射到引出线前由ETM0通道0调制
|
||||
*
|
||||
* @param none
|
||||
*
|
||||
* @return none
|
||||
*
|
||||
*****************************************************************************/
|
||||
__STATIC_INLINE void SIM_EnableUART0Modulation(void)
|
||||
{
|
||||
SIM->SOPT |= (SIM_SOPT_TXDME_MASK);
|
||||
}
|
||||
|
||||
/*****************************************************************************//*!
|
||||
*
|
||||
* @brief UART0_TX输出直接连接到引出线上
|
||||
*
|
||||
* @param none
|
||||
*
|
||||
* @return none
|
||||
*
|
||||
*****************************************************************************/
|
||||
__STATIC_INLINE void SIM_DisableUART0Modulation(void)
|
||||
{
|
||||
SIM->SOPT &= ~(SIM_SOPT_TXDME_MASK);
|
||||
}
|
||||
/*****************************************************************************//*!
|
||||
*
|
||||
* @brief 生成ETM2模块的PWM同步触发
|
||||
*
|
||||
* @param none
|
||||
*
|
||||
* @return none
|
||||
*
|
||||
* @ Pass/ Fail criteria: none
|
||||
*****************************************************************************/
|
||||
__STATIC_INLINE void SIM_GenerateSoftwareTrig2ETM2(void)
|
||||
{
|
||||
SIM->SOPT |= (SIM_SOPT_ETMSYNC_MASK);
|
||||
}
|
||||
/*****************************************************************************//*!
|
||||
*
|
||||
* @brief ETM2_CH3通道映射到PD1上
|
||||
*
|
||||
* @param none
|
||||
*
|
||||
* @return none
|
||||
*
|
||||
* @ Pass/ Fail criteria: none
|
||||
*****************************************************************************/
|
||||
__STATIC_INLINE void SIM_RemapETM2CH3Pin(void)
|
||||
{
|
||||
SIM->PINSEL |= SIM_PINSEL_ETM2PS3_MASK;
|
||||
}
|
||||
|
||||
/*****************************************************************************//*!
|
||||
*
|
||||
* @brief ETM2_CH2通道映射到PD0上
|
||||
*
|
||||
* @param none
|
||||
*
|
||||
* @return none
|
||||
*
|
||||
* @ Pass/ Fail criteria: none
|
||||
*****************************************************************************/
|
||||
__STATIC_INLINE void SIM_RemapETM2CH2Pin(void)
|
||||
{
|
||||
SIM->PINSEL |= SIM_PINSEL_ETM2PS2_MASK;
|
||||
}
|
||||
/*****************************************************************************//*!
|
||||
*
|
||||
* @brief ETM0_CH1通道映射到PB3上
|
||||
*
|
||||
* @param none
|
||||
*
|
||||
* @return none
|
||||
*
|
||||
*****************************************************************************/
|
||||
__STATIC_INLINE void SIM_RemapETM0CH1Pin(void)
|
||||
{
|
||||
SIM->PINSEL |= SIM_PINSEL_ETM0PS1_MASK;
|
||||
}
|
||||
/*****************************************************************************//*!
|
||||
*
|
||||
* @brief ETM0_CH0通道映射到PB2上
|
||||
*
|
||||
* @param none
|
||||
*
|
||||
* @return none
|
||||
*
|
||||
*****************************************************************************/
|
||||
__STATIC_INLINE void SIM_RemapETM0CH0Pin(void)
|
||||
{
|
||||
SIM->PINSEL |= SIM_PINSEL_ETM0PS0_MASK;
|
||||
}
|
||||
/*****************************************************************************//*!
|
||||
*
|
||||
* @brief UART0_RX和UART0_TX映射到PA2和PA3上
|
||||
*
|
||||
* @param none
|
||||
*
|
||||
* @return none
|
||||
*
|
||||
*****************************************************************************/
|
||||
__STATIC_INLINE void SIM_RemapUART0Pin(void)
|
||||
{
|
||||
SIM->PINSEL |= SIM_PINSEL_UART0PS_MASK;
|
||||
}
|
||||
|
||||
/*****************************************************************************//*!
|
||||
*
|
||||
* @brief SPI0_SCK SPI0_MOSI SPI0_MISO和SPI0_PCS映射到PE0、PE1、PE2、PE3上
|
||||
*
|
||||
* @param none
|
||||
*
|
||||
* @return none
|
||||
*
|
||||
*****************************************************************************/
|
||||
__STATIC_INLINE void SIM_RemapSPI0Pin(void)
|
||||
{
|
||||
SIM->PINSEL |= SIM_PINSEL_SPI0PS_MASK;
|
||||
}
|
||||
|
||||
/*****************************************************************************//*!
|
||||
*
|
||||
* @brief I2C0_SCL和I2C_SDA分别映射到PB7、PB6上
|
||||
*
|
||||
* @param none
|
||||
*
|
||||
* @return none
|
||||
*
|
||||
*****************************************************************************/
|
||||
__STATIC_INLINE void SIM_RemapI2CPin(void)
|
||||
{
|
||||
SIM->PINSEL |= SIM_PINSEL_IICPS_MASK;
|
||||
}
|
||||
/*****************************************************************************//*!
|
||||
*
|
||||
* @brief RXD0输入信号由ACPM0滤波,然后注入UART0
|
||||
*
|
||||
* @param none
|
||||
*
|
||||
* @return none
|
||||
*
|
||||
*****************************************************************************/
|
||||
__STATIC_INLINE void SIM_EnableUART0Filter(void)
|
||||
{
|
||||
SIM->SOPT |= (SIM_SOPT_RXDFE_MASK);
|
||||
}
|
||||
/******************************************************************************!
|
||||
*
|
||||
* @brief RXD0输入信号直接连接到UARTO模块
|
||||
*
|
||||
* @param none
|
||||
*
|
||||
* @return none
|
||||
*
|
||||
*****************************************************************************/
|
||||
__STATIC_INLINE void SIM_DisableUART0Filter(void)
|
||||
{
|
||||
SIM->SOPT &= ~(SIM_SOPT_RXDFE_MASK);
|
||||
}
|
||||
/*****************************************************************************//*!
|
||||
*
|
||||
* @brief 选择RTC溢出作为ADC硬件触发源
|
||||
*
|
||||
* @param none
|
||||
*
|
||||
* @return none
|
||||
*
|
||||
*****************************************************************************/
|
||||
__STATIC_INLINE void SIM_TriggerADCByRTC(void)
|
||||
{
|
||||
SIM->SOPT &= ~(SIM_SOPT_ADHWT_MASK);
|
||||
}
|
||||
/*****************************************************************************//*!
|
||||
*
|
||||
* @brief 选择PIT溢出作为ADC硬件触发源
|
||||
*
|
||||
* @param none
|
||||
*
|
||||
* @return none
|
||||
*
|
||||
*****************************************************************************/
|
||||
__STATIC_INLINE void SIM_TriggerADCByPIT(void)
|
||||
{
|
||||
SIM->SOPT = (SIM->SOPT & ~(SIM_SOPT_ADHWT_MASK)) | SIM_SOPT_ADHWT(1);
|
||||
}
|
||||
/*****************************************************************************//*!
|
||||
*
|
||||
* @brief 设置ETM2初始化作为ADC硬件触发源.ETM2初始化后经过一段时间延时触发ADC转换
|
||||
*
|
||||
* @param none
|
||||
*
|
||||
* @return none
|
||||
*
|
||||
*****************************************************************************/
|
||||
__STATIC_INLINE void SIM_TriggerADCByETM2Init(void)
|
||||
{
|
||||
SIM->SOPT = (SIM->SOPT & ~(SIM_SOPT_ADHWT_MASK)) | SIM_SOPT_ADHWT(2);
|
||||
}
|
||||
|
||||
/*****************************************************************************//*!
|
||||
*
|
||||
* @brief 设置ETM2匹配作为ADC硬件触发源,ETM2匹配后经过一段时间的延时触发ADC转换
|
||||
*
|
||||
* @param none
|
||||
*
|
||||
* @return none
|
||||
*
|
||||
*****************************************************************************/
|
||||
__STATIC_INLINE void SIM_TriggerADCByETM2Match(void)
|
||||
{
|
||||
SIM->SOPT = (SIM->SOPT & ~(SIM_SOPT_ADHWT_MASK)) | SIM_SOPT_ADHWT(3);
|
||||
}
|
||||
/*****************************************************************************//*!
|
||||
*
|
||||
* @brief RTC溢出连接到ETM1输入通道1
|
||||
*
|
||||
* @param none
|
||||
*
|
||||
* @return none
|
||||
*
|
||||
*****************************************************************************/
|
||||
__STATIC_INLINE void SIM_EnableRTCCapture(void)
|
||||
{
|
||||
SIM->SOPT |= (SIM_SOPT_RTCC_MASK);
|
||||
}
|
||||
/*****************************************************************************//*!
|
||||
*
|
||||
* @brief RTC溢出未连接到ETM1输入通道1
|
||||
*
|
||||
* @param none
|
||||
*
|
||||
* @return none
|
||||
*
|
||||
*****************************************************************************/
|
||||
__STATIC_INLINE void SIM_DisableRTCCapture(void)
|
||||
{
|
||||
SIM->SOPT &= ~(SIM_SOPT_RTCC_MASK);
|
||||
}
|
||||
/*****************************************************************************//*!
|
||||
*
|
||||
* @brief ACMP0输出连接到ETM1输入通道0
|
||||
*
|
||||
* @param none
|
||||
*
|
||||
* @return none
|
||||
*
|
||||
*****************************************************************************/
|
||||
__STATIC_INLINE void SIM_EnableACMP0InputCapture(void)
|
||||
{
|
||||
SIM->SOPT |= (SIM_SOPT_ACIC_MASK);
|
||||
}
|
||||
/*****************************************************************************//*!
|
||||
*
|
||||
* @brief ACMP0输出未连接到ETM1输入通道0
|
||||
*
|
||||
* @param none
|
||||
*
|
||||
* @return none
|
||||
*
|
||||
*****************************************************************************/
|
||||
__STATIC_INLINE void SIM_DisableACMP0InputCapture(void)
|
||||
{
|
||||
SIM->SOPT &= ~(SIM_SOPT_ACIC_MASK);
|
||||
}
|
||||
/*****************************************************************************//*!
|
||||
*
|
||||
* @brief RTC0映射到PC5上
|
||||
*
|
||||
* @param none
|
||||
*
|
||||
* @return none
|
||||
*
|
||||
*****************************************************************************/
|
||||
__STATIC_INLINE void SIM_RemapRTCPin(void)
|
||||
{
|
||||
SIM->PINSEL |= SIM_PINSEL_RTCPS_MASK;
|
||||
}
|
||||
/*****************************************************************************//*!
|
||||
*
|
||||
* @brief 设置总线时钟频率
|
||||
*
|
||||
* @param none
|
||||
*
|
||||
* @return none
|
||||
*
|
||||
*****************************************************************************/
|
||||
__STATIC_INLINE void SIM_SetBusDivide(uint8_t u8Divide)
|
||||
{
|
||||
SIM->BUSDIV = u8Divide;
|
||||
}
|
||||
/*****************************************************************************//*!
|
||||
*
|
||||
* @brief ETM2_CH1通道映射到PH1上
|
||||
*
|
||||
* @param none
|
||||
*
|
||||
* @return none
|
||||
*
|
||||
*****************************************************************************/
|
||||
__STATIC_INLINE void SIM_RemapETM2CH1Pin(void)
|
||||
{
|
||||
SIM->PINSEL |= SIM_PINSEL_ETM2PS1_MASK;
|
||||
}
|
||||
|
||||
/*****************************************************************************//*!
|
||||
*
|
||||
* @brief ETM2_CH0通道映射到PH0上
|
||||
*
|
||||
* @param none
|
||||
*
|
||||
* @return none
|
||||
*
|
||||
*****************************************************************************/
|
||||
__STATIC_INLINE void SIM_RemapETM2CH0Pin(void)
|
||||
{
|
||||
SIM->PINSEL |= SIM_PINSEL_ETM2PS0_MASK;
|
||||
}
|
||||
|
||||
/*****************************************************************************//*!
|
||||
*
|
||||
* @brief ETM1_CH1通道映射到PE7上
|
||||
*
|
||||
* @param none
|
||||
*
|
||||
* @return none
|
||||
*
|
||||
*****************************************************************************/
|
||||
__STATIC_INLINE void SIM_RemapETM1CH1Pin(void)
|
||||
{
|
||||
SIM->PINSEL |= SIM_PINSEL_ETM1PS1_MASK;
|
||||
}
|
||||
|
||||
/*****************************************************************************//*!
|
||||
*
|
||||
* @brief ETM1_CH0映射到PH2上
|
||||
*
|
||||
* @param none
|
||||
*
|
||||
* @return none
|
||||
*
|
||||
*****************************************************************************/
|
||||
__STATIC_INLINE void SIM_RemapETM1CH0Pin(void)
|
||||
{
|
||||
SIM->PINSEL |= SIM_PINSEL_ETM1PS0_MASK;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
void SIM_Init(SIM_ConfigType *pConfig);
|
||||
void SIM_SetClockGating(uint32_t u32PeripheralMask, uint8_t u8GateOn);
|
||||
uint32_t SIM_GetStatus(uint32_t u32StatusMask);
|
||||
uint8_t SIM_ReadID(IDType sID);
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
Reference in New Issue
Block a user