USCI_A_UART的配置和控制函数:
//初始化函数(有返回值)
USCI_A_UART_init(uint16_t baseAddress, USCI_A_UART_initParam ∗param)
//使能UART模块
USCI_A_UART_enable(uint16_t baseAddress)
//失能UART模块
USCI_A_UART_disable(uint16_t baseAddress)
//将UART模块设置为休眠模式
USCI_A_UART_setDormant(uint16_t baseAddress)
//从休眠模式重新启用UART模块
USCI_A_UART_resetDormant(uint16_t baseAddress)
参数:baseAddress
是USCI_A_UART模块的基地址:包括(USCI_A0_BASE 或 USCI_A1_BASE)
参数:USCI_A_UART_initParam ∗param结构体
USCI_A_UART_initParam param1 = {0};
param1.selectClockSource = USCI_A_UART_CLOCKSOURCE_SMCLK;
param1.clockPrescalar = 6;
param1.firstModReg = 13;
param1.secondModReg = 0;
param1.parity = USCI_A_UART_NO_PARITY; //没有奇偶校验位
param1.msborLsbFirst = USCI_A_UART_LSB_FIRST; //控制接收和发送移位寄存器的方向。
param1.numberofStopBits = USCI_A_UART_ONE_STOP_BIT; //表示1 / 2个停止位
param1.uartMode = USCI_A_UART_MODE; //选择操作模式
param1.overSampling = USCI_A_UART_OVERSAMPLING_BAUDRATE_GENERATION; //低频或过采样波特产生
其中的clockPrescalar,firstModReg,secondModReg,overSampling
可在MSP430 USCI/EUSCI UART Baud Rate Calculation中获取
用于发送和接收数据的函数
//通过UART模块传输一个字节
USCI_A_UART_transmitData(uint16_t baseAddress, uint8_t transmitData)
//接收一个已发送到UART模块的字节。(有返回值)
USCI_A_UART_receiveData(uint16_t baseAddress)
//根据选定的多处理器模式,将下一个要传输的字节标记为地址
USCI_A_UART_transmitAddress(uint16_t baseAddress, uint8_t transmitAddress)
//传输中断
USCI_A_UART_transmitBreak(uint16_t baseAddress)
参数:transmitData
UART模块要传输的数据
参数:transmitAddress
is the next byte to be transmitted
管理USCI_A_UART中断和状态的函数:
//启用UART中断
USCI_A_UART_enableInterrupt(uint16_t baseAddress, uint8_t mask)
//失能UART中断
USCI_A_UART_disableInterrupt(uint16_t baseAddress, uint8_t mask)
//获取当前UART中断状态。这将根据传递的标志返回UART模块的中断状态(有返回值)
USCI_A_UART_getInterruptStatus(uint16_t baseAddress, uint8_t mask)
//清除UART中断源,使其不再断言。当使用中断向量生成器时,最高中断标志将自动清除
USCI_A_UART_clearInterrupt(uint16_t baseAddress, uint8_t mask)
//获取当前UART状态标志。这将根据传递的标志返回UART模块的状态。(有返回值)
USCI_A_UART_queryStatusFlags(uint16_t baseAddress, uint8_t mask)
参数:mask
USCI_A_UART_enableInterrupt、
USCI_A_UART_disableInterrupt:
USCI_A_UART_RECEIVE_INTERRUPT // - Receive interrupt
USCI_A_UART_TRANSMIT_INTERRUPT // - Transmit interrupt
USCI_A_UART_RECEIVE_ERRONEOUSCHAR_INTERRUPT // - Receive erroneous-character interrupt enable
USCI_A_UART_BREAKCHAR_INTERRUPT // - Receive break character interrupt enable
USCI_A_UART_getInterruptStatus、
USCI_A_UART_clearInterrupt:
USCI_A_UART_RECEIVE_INTERRUPT_FLAG // - Receive interrupt flag
USCI_A_UART_TRANSMIT_INTERRUPT_FLAG // - Transmit interrupt flag
USCI_A_UART_queryStatusFlags:
USCI_A_UART_LISTEN_ENABLE
USCI_A_UART_FRAMING_ERROR
USCI_A_UART_OVERRUN_ERROR
USCI_A_UART_PARITY_ERROR
USCI_A_UART_BREAK_DETECT
USCI_A_UART_RECEIVE_ERROR
USCI_A_UART_ADDRESS_RECEIVED
USCI_A_UART_IDLELINE
USCI_A_UART_BUSY
DMA相关:
//返回UART DMA模块的RX缓冲区地址(有返回值)
USCI_A_UART_getReceiveBufferAddressForDMA(uint16_t baseAddress)
//返回UART DMA模块的TX缓冲区地址(有返回值)
USCI_A_UART_getTransmitBufferAddressForDMA(uint16_t baseAddress)
本篇介绍了UART的所有函数,下一篇将详细介绍这些有返回值的一些函数