您的位置 首页 基础

【UART】USCI:UART形式

msp430f541x、msp430f543x多达4个通用串行通信接口(USCI)模块,支持多种串行通信模式,不同的USCI模块支持不同的模式。USCI_Ax模块

msp430f541x、msp430f543x多达4个通用串行通讯接口(USCI)模块,支撑多种串行通讯形式,不同的 USCI 模块支撑不同的形式。

USCI_Ax模块支撑:

  • UART形式;
  • IrDA通讯的脉冲整形;
  • LIN通讯的主动波特率检测;
  • SPI形式;

USCI_Bx模块支撑:

  • IIC形式;
  • SPI形式;

UART形式:


在异步形式下,USCI_Ax模块经过两个外部引脚UCAxRXD和UCAxTXD将芯片衔接到外部体系。当UCSYNC

位清零时,挑选UART形式。


UART模块特征包含:

  • 带奇校验、偶校验或非奇偶校验的7或8位数据;
  • 独立的发送和接纳移位寄存器;
  • 独立的发送和承受缓冲寄存器;
  • 发送和接纳的独立中止才能;
  • 最低位优先或最高位优先的数据发送和接纳;
  • 多处理器体系的内置闲暇线路和地址位通讯协议;
  • 用于主动从LPMx形式唤醒的接纳机开始边缘检测;
  • 波特率可编程操控,支撑小数波特率调制;
  • 用于过错检测和按捺的状况标志;
  • 用于地址检测的状况标志;

一、USCI初始化和复位

PUC或置位UCSWRST,能够使USCI复位。PUC后,UCSWRST位主动置位,这使 USCI保持在复位状况。UCSWRST方位位,将使UCRXIE,UCTXIE,UCRXIFG,UCRXERR,UCBRK,UCPE,UCOE,UCFE,UCSTOE 和 UCBTOE 位复位,UCTXIFG 方位位。铲除 UCSWRST 将开释 USCI,使其进入操作状况。

引荐运用以下进程,进行初始化或重新装备:

1.置位UCSWRST (BIS.B #UCSWRST,&UCAxCTL1);

2.2设置UCSWRST=1,初始化一切的USCI寄存器(包含UCAxCTL1);

3.装备端口;

4.软件铲除UCSWRST(B%&&&&&%.B #UCSWRST,&UCAxCTL1);

5.经过UCRXIE和/或UCTXIE使能中止(可选);

例:串口帮手发什么就回来什么.

#include “msp430x54x.h”

// ACLK = REFO = 32768Hz, MCLK = SMCLK = default DCO/2 = 1048576Hz

// P3.4,5——USCI_A0 TXD/RXD;P9.4,5——USCI_A2 TXD/RXD;P10.4,5——USCI_A3 TXD/RXD;

void main(void)
{
WDTCTL = WDTPW + WDTHOLD; // Stop WDT

P5SEL = 0xc0; // P5.6,7 = USCI_A1 TXD/RXD
UCA1CTL1 |= UCSWRST; // **Put state machine in reset**
UCA1CTL1 |= UCSSEL_2; // SMCLK
UCA1BR0 = 9; // 1MHz 115200 (see Users Guide)
UCA1BR1 = 0; // 1MHz 115200
UCA1MCTL |= UCBRS_1 + UCBRF_0; // Modulation UCBRSx=1, UCBRFx=0
UCA1CTL1 &= ~UCSWRST; // **Initialize USCI state machine**
UCA1IE |= UCRXIE; // Enable USCI_A1 RX interrupt

__bis_SR_register(LPM0_bits + GIE); // Enter LPM0, interrupts enabled
}

// Echo back RXed character, confirm TX buffer is ready first,发送数据之前确认发送缓存准备好

#pragma vector=USCI_A1_VECTOR
__interrupt void USCI_A1_ISR(void)
{
switch(__even_in_range(UCA1IV,4))
{
case 0:break; // Vector 0 – no interrupt
case 2: // Vector 2 – RXIFG
while (!(UCA1IFG&UCTXIFG)); // USCI_A1 TX buffer ready?
UCA1TXBUF = UCA1RXBUF; // TX -> RXed character
break;
case 4:break; // Vector 4 – TXIFG
default: break;
}
}

//UCTXIFG=0x02,UCA1IFG&UCTXIFG,当UCA1IFG的UCTXIFG位为1时,阐明UCA1TXBUF为空,跳出while循环循环;当UCTXIFG位为0时UCA1TXBUF不为空,停在循环。


二、USCI中止

USCI只要一个发送和接纳共用的中止向量,USCI_Ax和USC_Bx不共用中止向量。

2.1 USCI 发送中止操作

发射机置位 UCTXIFG 中止标志,这表明 UCAxTXBUF 现已准备好接纳另一个字符(即UCAxTXBUF 为空)假如UCTXIE 和GIE 也置位的话,将发生中止请求。假如将字符写入,UCAxTXBUF、UCTXIFG将主动复位而无需软件复位。PUC之后或UCSWRST = 1时,UCTXIFG 置位、UCTXIE 复位。

2.2 USCI 接纳中止操作

每接纳到1个字符并将其载入到 UCAxRXBUF 时,UCRXIFG 中止标志置位,假如 UCTXIE 和 GIE 也置位的话,将发生中止请求。UCRXIFG 和UCRXIE 能够经过体系复位PUC信号或 UCSWRST = 1复位。当读取UCAxRXBUF时,UCRXIFG 主动复位。

2.3 UCAxIV,中止向量发生器

USCI 中止标志具有必定的优先次第,组合运用一个中止向量。中止向量寄存器 UCAxIV 用于确认发生中止的标志。使能的具有最高优先级的中止在 UCAxIV寄存器内发生一个数值,该数值能够加到程序计数器上,然后主动跳转到相应的软件子程序处。制止中止不会影响 UCAxIV的值。

对UCAxIV寄存器的任何拜访,读或写,将会主动复位挂起的优先级最高的中止标志。假如另一个中止标志置位,在呼应完榜首个中止后,当即发生另一个中止。

三、寄存器

3.1




此寄存器主要是界说数据通讯的字符格局,UART 的字符格局包含一个开始位,7 或 8 位数据位,一个奇/偶/非奇偶校验位,地址位(地址位形式),以及1或2个中止位,UCMSB位操控传送方向,挑选低位或高位优先,UART 通讯的典型挑选是低位优先。

PUC之后全为0,即 字符长度8、1个中止位、无奇偶校验、低位优先,UART形式。

UCMODEx Bits2_1位:

两个芯片进行异步通讯时,对协议来说,不需要多处理器格局。当3 个或更多个芯片通讯时,USCI 支
持线路闲暇和地址位多处理器通讯格局。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/zhishi/jichu/259093.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部