/******************************************************************************* * Function Name : ADS7843_SPI_Init * Description : ADS7843 SPI 初始化 * Input : None * Output : None * Return : None * Attention : None *******************************************************************************/ static void ADS7843_SPI_Init(void) { volatile uint32_t dummy; /* Initialize and enable the SSP1 Interface module. */ LPC_SC->PCONP |= (1 << 10); /* Enable power to SSPI1 block */ /* P0.7 SCK, P0.8 MISO, P0.9 MOSI are SSP pins. */ LPC_PINCON->PINSEL0 &= ~((3UL<<14) | (3UL<<16) | (3UL<<18)) ; /* P0.7,P0.8,P0.9 cleared */ LPC_PINCON->PINSEL0 |= (2UL<<14) | (2UL<<16) | (2UL<<18); /* P0.7 SCK1,P0.8 MISO1,P0.9 MOSI1 */ /* PCLK_SSP1=CCLK */ LPC_SC->PCLKSEL0 &= ~(3<<20); /* PCLKSP0 = CCLK/4 (18MHz) */ LPC_SC->PCLKSEL0 |= (1<<20); /* PCLKSP0 = CCLK (72MHz) */ LPC_SSP1->CR0 = 0x0007; /* 8Bit, CPOL=0, CPHA=0 */ LPC_SSP1->CR1 = 0x0002; /* SSP1 enable, master */ LPC17xx_SPI_SetSpeed ( SPI_SPEED_500kHz ); /* wait for busy gone */ while( LPC_SSP1->SR & ( 1 << SSPSR_BSY ) ); /* drain SPI RX FIFO */ while( LPC_SSP1->SR & ( 1 << SSPSR_RNE ) ) { dummy = LPC_SSP1->DR; } }
/* Initialize the SSP0, SSP0_PCLK=CCLK=72MHz */ void LPC17xx_SPI_Init (void) { uint32_t dummy; dummy = dummy; // avoid warning /* Initialize and enable the SSP0 Interface module. */ LPC_SC->PCONP |= (1 << 21); /* Enable power to SSPI0 block */ /* SSEL is GPIO, output set to high. */ LPC_GPIO0->FIODIR |= (1<<16); /* P0.16 is output */ LPC_PINCON->PINSEL1 &= ~(3<<0); /* P0.16 SSEL (used as GPIO) */ LPC17xx_SPI_DeSelect (); /* set P0.16 high (SSEL inactiv) */ /* SCK, MISO, MOSI are SSP pins. */ LPC_PINCON->PINSEL0 &= ~(3UL<<30); /* P0.15 cleared */ LPC_PINCON->PINSEL0 |= (2UL<<30); /* P0.15 SCK0 */ LPC_PINCON->PINSEL1 &= ~((3<<2) | (3<<4)); /* P0.17, P0.18 cleared */ LPC_PINCON->PINSEL1 |= ((2<<2) | (2<<4)); /* P0.17 MISO0, P0.18 MOSI0 */ /* PCLK_SSP0=CCLK */ LPC_SC->PCLKSEL1 &= ~(3<<10); /* PCLKSP0 = CCLK/4 (18MHz) */ LPC_SC->PCLKSEL1 |= (1<<10); /* PCLKSP0 = CCLK (72MHz) */ LPC_SSP0->CR0 = 0x0007; /* 8Bit, CPOL=0, CPHA=0 */ LPC_SSP0->CR1 = 0x0002; /* SSP0 enable, master */ LPC17xx_SPI_SetSpeed (SPI_SPEED_400kHz); /* wait for busy gone */ while( LPC_SSP0->SR & ( 1 << SSPSR_BSY ) ); /* drain SPI RX FIFO */ while( LPC_SSP0->SR & ( 1 << SSPSR_RNE ) ) { dummy = LPC_SSP0->DR; } }