void msp430_spi_a0_init() { /**Configure Pins for SPI * Set P2.7, P3.3 and P3.4 as Secondary Module Function. * */ GPIO_setAsPeripheralModuleFunctionInputPin( GPIO_PORT_P2, GPIO_PIN7 ); GPIO_setAsPeripheralModuleFunctionInputPin( GPIO_PORT_P3, GPIO_PIN3 + GPIO_PIN4 ); //Initialize Master USCI_A_SPI_initMasterParam param = {0}; param.selectClockSource = USCI_A_SPI_CLOCKSOURCE_SMCLK; param.clockSourceFrequency = UCS_getSMCLK(); param.desiredSpiClock = 8000000; param.msbFirst = USCI_A_SPI_MSB_FIRST; param.clockPhase = USCI_A_SPI_PHASE_DATA_CHANGED_ONFIRST_CAPTURED_ON_NEXT; param.clockPolarity = USCI_A_SPI_CLOCKPOLARITY_INACTIVITY_LOW; USCI_A_SPI_initMaster(USCI_A0_BASE, ¶m); //Enable SPI module USCI_A_SPI_enable(USCI_A0_BASE); //Enable Receive interrupt USCI_A_SPI_clearInterrupt(USCI_A0_BASE, USCI_A_SPI_RECEIVE_INTERRUPT); USCI_A_SPI_enableInterrupt(USCI_A0_BASE, USCI_A_SPI_RECEIVE_INTERRUPT); }
bool USCI_A_SPI_masterInit(uint16_t baseAddress, uint8_t selectClockSource, uint32_t clockSourceFrequency, uint32_t desiredSpiClock, uint8_t msbFirst, uint8_t clockPhase, uint8_t clockPolarity) { USCI_A_SPI_initMasterParam param = {0}; param.selectClockSource = selectClockSource; param.clockSourceFrequency = clockSourceFrequency; param.desiredSpiClock = desiredSpiClock; param.msbFirst = msbFirst; param.clockPhase = clockPhase; param.clockPolarity = clockPolarity; return(USCI_A_SPI_initMaster(baseAddress, ¶m)); }