这里代码实现的效果是电脑给单片机发送数据 单片机接收到数据之后 马上返回给电脑
另外使用了PA0的LED作为单片机接收的指示灯,在单片机接收到数据时,PA0高低电平会反转,从来实现LED的亮灭
这里我只介绍USRT的配置,LED的配置不做介绍,如有疑问可以转到我主页中按键控制LED那一章去或在评论区留言
Name——自行编辑
Clock Source——选择时钟源 这里选择一个低速时钟源
Clock Divider——时钟分频 不分频
Target Baud Rate——选择波特率 9600
Word Length——传输数据长度 八字节
Parity——校验位 无校验位
Stop Bits——停止位 一位停止位
Communication Direction —— 选择通讯通道 这里选择发送和接收双通道
Enable Interrupts——使能中断 这里只使能接收中断
#include "ti_msp_dl_config.h"
volatile uint8_t gEchoData = 0;
int main(void)
{
SYSCFG_DL_init();
//防止一上电就进入中断 先清除中断标志位
NVIC_ClearPendingIRQ(UART_0_INST_INT_IRQN);
//使能UART0的中断
NVIC_EnableIRQ(UART_0_INST_INT_IRQN);
// DL_SYSCTL_enableSleepOnExit();
while (1) {
// __WFI();
}
}
//UART0的中断函数
void UART_0_INST_IRQHandler(void)
{
switch (DL_UART_Main_getPendingInterrupt(UART_0_INST)) {
case DL_UART_MAIN_IIDX_RX: //接收标志位
DL_GPIO_togglePins(GPIO_LEDS_PORT,
GPIO_LEDS_USER_LED_1_PIN);
//缓存接收到的数据
gEchoData = DL_UART_Main_receiveData(UART_0_INST);、
//发送接收到的数据
DL_UART_Main_transmitData(UART_0_INST, gEchoData);
break;
default:
break;
}
}