| 什么也不说了.先上一个串口通讯代码 #include <stdint.h>
 #include <stdbool.h>
 #include "efm32.h"
 #include "em_chip.h"
 #include "em_cmu.h"
 #include "em_gpio.h"
 #include "em_usart.h"
 
 //读取数据中断
 void USART1_RX_IRQHandler(void)
 {
 if(USART_Rx(USART1) == 0x5)
 {
 GPIO_PinOutToggle(gpioPortD, 7); //如果接收到数据,反置PD7 在开发板STK3300上为LCD
 }
 }
 
 void UART_Initial(void)
 {
 //初始化时钟
 CMU_ClockEnable(cmuClock_HFPER, true);
 CMU_ClockEnable(cmuClock_GPIO, true);
 CMU_ClockEnable(cmuClock_USART1, true);
 
 // 初始化 通讯参数
 USART_InitAsync_TypeDef UART_init = USART_INITASYNC_DEFAULT;
 UART_init.baudrate = 9600;
 
 USART_InitAsync(USART1, &UART_init);
 
 // 初始化中断
 USART1->IFC = _USART_IFC_MASK;
 NVIC_ClearPendingIRQ(USART1_RX_IRQn);
 NVIC_EnableIRQ(USART1_RX_IRQn);
 USART1->IEN = USART_IEN_RXDATAV;
 
 //设置PD0 为RX PD1为TX
 GPIO_PinModeSet(gpioPortD,0,gpioModePushPull,1); //tx
 GPIO_PinModeSet(gpioPortD,1,gpioModeInput,1);    //rx
 
 USART1->ROUTE |=  USART_ROUTE_TXPEN | USART_ROUTE_RXPEN | USART_ROUTE_LOCATION_LOC1;
 }
 
 /**************************************************************************//**
 * @brief  Main function
 *****************************************************************************/
 /**************************************************************************//**
 * @brief  Main function
 *****************************************************************************/
 int main(void)
 {
 /* Chip errata */
 CHIP_Init();
 
 //设置时钟
 SystemCoreClockUpdate();
 
 UART_Initial();
 
 CMU_ClockEnable(cmuClock_GPIO, true);
 // 允许PD7GPIO输出
 GPIO_PinModeSet(gpioPortD, 7, gpioModePushPull,0);
 
 unsigned char ucData = 0;
 /* Infinite blink loop */
 while(1)
 {
 unsigned long ulDelay = 100000; // 延时100MS
 while(ulDelay--);
 if(ucData < 10)ucData++;
 else ucData = 0;
 USART_Tx(USART1,ucData); // 输出ucData
 }
 }
 
 
 |