//*****************************************************************************
static inline void
SysCtl_enablePeripheral(SysCtl_PeripheralPCLOCKCR peripheral)
{
uint16_t regIndex;
uint16_t bitIndex;
//peripheral =0x1200
//SYSCTL_PERIPH_BIT_M = 0x001FU
//SYSCTL_PERIPH_BIT_S = 0x0008U
// Decode the peripheral variable.
//
regIndex = (uint16_t)2U * ((uint16_t)peripheral &
(uint16_t)SYSCTL_PERIPH_REG_M);
//bitIndex = (0x1200 & 0x001F) >> 0x0008U =0x12 =18
//新版的配置普遍采用这种方式,下面这句话的目的是要给某个寄存器赋值1,那么就要算出把1移动多少位
//才能到该寄存器的该位所在的位置
bitIndex = ((uint16_t)peripheral & SYSCTL_PERIPH_BIT_M) >> SYSCTL_PERIPH_BIT_S;
EALLOW;
//
// Turn on the module clock.
//
HWREG(CPUSYS_BASE + SYSCTL_O_PCLKCR0 + regIndex) |=
((uint32_t)1U << bitIndex);
EDIS;
}