MSPMOG3507学习记录(个人记录7)
UART串口学习
目的:参加电赛,学习记录,创作者的视角来学习。
使用芯片:LP-MSPM0G3507
工具:ccs
例程:uart_echo_interrupts_standby
Syscfg配置
-
名称设置
-
基础设置:
时钟选择:一般选用:LFCLK(低频时钟,由于波特率不高)
分频
Target Baud Rate为希望的波特率
Calculated Baud Rate为实际得到的波特率
Word Length字长为8Bit
-
高级设置
UART Mode模式选择一般都选用默认的Normal UART Mode,
Communication Direction一般选同时使用TX and RX(双向通信)
其他保存默认不管
-
中断
主要使能接受中断:
-
PinMuxPeripheral and Pin Configuration设置
-
总有4个串口和选择引脚。
代码编写过程中那个使用到的函数:
主程序编写:
DL_UART_transmitData()
作用:将数据写入TX FIFO进行传输。
DL_UART_receiveData()
作用:从RX FIFO读取数据。
例程代码以及个人编写
#include "ti_msp_dl_config.h"//标准头文件
volatile uint8_t gEchoData = 0;//定义全局变量,作用:保存数据
int main(void)
{
SYSCFG_DL_init();//初始化
NVIC_ClearPendingIRQ(UART_0_INST_INT_IRQN);
//中断控制器,清除当前状态,防止立马进入中断
NVIC_EnableIRQ(UART_0_INST_INT_IRQN);//使能中断
while (1) {
}
}
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 | GPIO_LEDS_USER_TEST_PIN);
//翻转引脚上的电平
gEchoData = DL_UART_Main_receiveData(UART_0_INST);
//DL_UART_Main_receiveData从RX FIFO读取数据,并赋值
DL_UART_Main_transmitData(UART_0_INST, gEchoData);
//DL_UART_Main_transmitData将数据写入TX FIFO进行传输
break;
default:
break;
}
}
#include "ti_msp_dl_config.h"
uint8_t gEchoData;//声明变量
int main(void)
{
SYSCFG_DL_init();
NVIC_ClearPendingIRQ(UART_0_INST_INT_IRQN);
//中断控制器,清除当前状态,防止立马进入中断
NVIC_EnableIRQ(UART_0_INST_INT_IRQN);
//使能中断
while (1) {
}
}
void UART_0_INST_IRQHandler (void)
//中断服务函数
{
gEchoData=DL_UART_Main_receiveData(UART_0_INST);//读取数据
DL_UART_Main_transmitData(UART_0_INST, gEchoData);//发送数据
}
作者:桂三岁