UART只有一个发送中断向量和一个接收中断向量,通过判断中断向量的标志来控制数据的收发 当用户想发送数据时,UxIFG产生一个中断,表明UxTXBUF已经准备好接收数据。当UxTXBUF接收字符后或中断被执行,U型IFG将会复位。 UxRXBUF每次接收一个字符并加载时,会URXIFGx会产生一个中断
目录
1. UART中断工作的机制
1.1 发送机制
SWRST = 1或PUC会置位UxIFG (SWRST: 系统复位)
SWRST = 1或PUC会复位UxIE1.2接收机制
UxRXBUF被读取时或中断被执行时,URXIFG被复位
当PUC或SWRST = 1时UxRXIE 复位2. 代码实现
//串口初始化模块 void UART_Init() { U0CTL|=SWRST + CHAR; //复位SWRST,8位数据模式 U0TCTL|=SSEL1; //SMCLK为串口时钟 U0BR1=baud_h; //BRCLK=8MHZ,Baud=BRCLK/N U0BR0=baud_l; //N=UBR+(UxMCTL)/8 U0MCTL=0x00; //微调寄存器为0,波特率9600bps ME1|=UTXE0; //UART0发送使能 ME1|=URXE0; //UART0接收使能 U0CTL&=~SWRST; IE1|=URXIE0; //接收中断使能位, //必须设置在SWRST之后,否则会复位 P3SEL|= BIT4 + BIT5; //设置IO口为第二功能模式,启用UART功能 P3DIR|= BIT4; //设置TXD0口方向为输出 }
//************************************************************************* // 串口0发送字符串函数 //************************************************************************* void Print_Str(uchar *s) { while(*s != ' ') { Send_Byte(*s++); } }
//************************************************************************* // 串口0发送数据函数 //************************************************************************* void Send_Byte(uchar data) { while(!(IFG1&UTXIFG0)); //发送寄存器空的时候发送数据 U0TXBUF=data; }
void main(void) { WDT_Init(); //看门狗设置 Clock_Init(); //系统时钟设置 Port_Init(); //LED端口初始化 UART_Init(); //串口设置初始化 Print_Str("QQ_ROWOSRn"); //发送字符串测试 _EINT(); //开中断 while(1) //无限循环 { } }
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算