注意引脚分配
只使能(Enable)接收中断(Receive)
代码:
#include "ti_msp_dl_config.h"
volatile uint8_t gEchoData = 0;
int main(void)
{
SYSCFG_DL_init();
// 清除UART 0的中断挂起位
NVIC_ClearPendingIRQ(UART_0_INST_INT_IRQN);
// 启用UART 0的中断
NVIC_EnableIRQ(UART_0_INST_INT_IRQN);
while (1) {
}
}
UART中断服务函数:
void UART_0_INST_IRQHandler(void)
{
// 获取UART 0的待处理中断类型
switch (DL_UART_Main_getPendingInterrupt(UART_0_INST)) {
case DL_UART_MAIN_IIDX_RX: // 接收中断
// 切换LED状态以指示数据接收
DL_GPIO_togglePins(GPIO_LEDS_PORT, GPIO_LEDS_LED_0_PIN | GPIO_LEDS_PIN_TEST_PIN);
// 接收UART 0的数据
gEchoData = DL_UART_Main_receiveData(UART_0_INST);
// 将接收到的数据回显到UART 0
DL_UART_Main_transmitData(UART_0_INST, gEchoData);
break;
default: // 其他中断类型,这里不处理
break;
}
}
串口调试助手
波特率和CCS中配置的一致,查看设备管理器中显示使用的哪个接口。
在串口调试助手中发送数据,会立马回传显示,并且LED会随着收发而亮灭变化。
如果不用LED显示,则UART中断服务函数:
void UART_0_INST_IRQHandler(void)
{
gEchoData = DL_UART_Main_receiveData(UART_0_INST);
DL_UART_Main_transmitData(UART_0_INST, gEchoData);
}