#include "ti_msp_dl_config.h"
#include "OLED.h"
#include "stdio.h"volatile unsigned int delay_times = 0;//搭配滴答定时器实现的精确ms延时
void delay_ms(unsigned int ms)
{delay_times = ms;while( delay_times != 0 );
} int a=0;
volatile uint8_t gEchoData = 0;int main(void)
{uint8_t str[64];SYSCFG_DL_init();//NVIC_EnableIRQ(TIMER_0_INST_INT_IRQN);// DL_TimerA_startCounter(TIMER_0_INST);delay_ms(500) ;OLED_Init();OLED_Fill(0x00);NVIC_ClearPendingIRQ(UART_2_INST_INT_IRQN); //先清除中断,防止直接进中断NVIC_EnableIRQ(UART_2_INST_INT_IRQN); while (1){sprintf((char *)str, "%d", a);OLED_ShowStr(0,4, str,2);}
}void UART_2_INST_IRQHandler(void)
{switch (DL_UART_Main_getPendingInterrupt(UART_2_INST)) {case DL_UART_MAIN_IIDX_RX:gEchoData = DL_UART_Main_receiveData(UART_2_INST);if (gEchoData==0x00){a=0;}if (gEchoData==0x01){a=1;}if (gEchoData==0x05){a=2;}if (gEchoData==0x07){a=3;}if (gEchoData==0x03){a=4;}break;default:break;}
}void SysTick_Handler(void)
{if( delay_times != 0 ){delay_times--;}
}
配置:大部分与OLED那一篇文章相同,另外加上这些: