将USART模块配置成最基本的SPI模式。没有中断,死循环发送。
例子:
#include <stdint.h>
#include <stdbool.h>
#include "efm32.h"
#include "efm32_chip.h"
#include "efm32_cmu.h"
#include "efm32_gpio.h"
#include "efm32_usart.h"
void SPI_Initial(void)
{
CMU_ClockEnable(cmuClock_HFPER, true);
CMU_ClockEnable(cmuClock_GPIO, true);
CMU_ClockEnable(cmuClock_USART1, true);
USART_InitSync_TypeDef SPI_init = USART_INITSYNC_DEFAULT;
SPI_init.baudrate = 200000;
USART_InitSync(USART1, &SPI_init);
GPIO_PinModeSet(gpioPortD,0,gpioModePushPull,1); //tx
GPIO_PinModeSet(gpioPortD,1,gpioModeInput,1); //rx
GPIO_PinModeSet(gpioPortD,2,gpioModePushPull,1); //clk
GPIO_PinModeSet(gpioPortD,3,gpioModePushPull,1); //cs
USART1->ROUTE |= USART_ROUTE_CSPEN | USART_ROUTE_CLKPEN | USART_ROUTE_TXPEN | USART_ROUTE_RXPEN | USART_ROUTE_LOCATION_LOC1;
}
/**************************************************************************//**
* @brief Main function
*****************************************************************************/
/**************************************************************************//**
* @brief Main function
*****************************************************************************/
int main(void)
{
/* Chip errata */
CHIP_Init();
SystemCoreClockUpdate();
SPI_Initial();
/* Infinite blink loop */
while (1)
{
unsigned long ulDelay = 4000;
while(ulDelay--);
USART_Tx(USART1,0x55);
}
}