MSP430UART驱动程序头文件,高效率超低功耗收发数据_第1页
MSP430UART驱动程序头文件,高效率超低功耗收发数据_第2页
MSP430UART驱动程序头文件,高效率超低功耗收发数据_第3页
MSP430UART驱动程序头文件,高效率超低功耗收发数据_第4页
MSP430UART驱动程序头文件,高效率超低功耗收发数据_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、严*MSP430串IIUART头文件*by:杜运福2011-3-18*/defineTXRX.FIFO1#defineAddiessUse1ifhdefuclw#defineucharunsignedchar#endififhdefumt#defineumtunsignedmt#endif严*名*功*入|I参数:*出丨I参数:*使用范例:称:UARTSetQ能:UART串丨1设置baud:波特率1200240048009600(默认)192003840057600data:数据位,8:8位,7:7位,默认8位jiouwei:奇偶位,X:无(默认),O:奇校验,e:偶校验stop:停止位,2:2

2、位停止位,其他均为默认的1位无UARTSet(9600,8;nl)*/voidUART_Set(umtbaud.uchardata,charjiouwei,uclwstop)U0BR1=0;if(baud=9600)U0TCTL|=SSELO;/ACLKelseU0TCTL|=SSEL1;/SMCLKswitch(baud)case1200:U0BR0=0X1B:U0MCTL=0X6B;break;case2400:U0BR0=0X0D;U0MCTL=0X6B;break;case4800:U0BR0=0X0D;U0MCTL=0X6B;break;case9600:U0BR0=0X03;U0M

3、CTL=0X4A;break;case19200:U0BR0=0X36;U0MCTL=0X6B;break;case38400:U0BR0=0X1B;U0MCTL=0X88;break;case57600:U0BR0=0X12;U0MCTL=0X88;break;defoult:UOBRO=0X03;默认9600波特率UOMCTL=0X4A;if(data=8)U0CTL=CHAR;elseif(data=7)U0CTL=CHAR;elseUOCTL=CHAR;/默认8位数据位switch(jiouwei)casebreak;/无校验casero:UOCTL|=PENA;break;/奇校验c

4、aseFUOCTL|=PENA+PEV;偶校验break:default:break;默认无校验if(stop=2)UOCTL|=SPB;/两位停止位,默认为1位停止位*名称:UART_Imt()*功能:初始化串IIUART0,设置引脚voidUART_Iiut()P2SEL|=BIT4+BIT5;/ZP2.4:TXD0,P2.5:RXD0P2DIR&=EIT5;MEI|=UTXEO+URXEO;开启UARTO收发模块严*名称:UARTOSendChar()*功能:从串口UART0发送一字节数据*入门参数:ch:待发送的一个字节数据(范围0255)*出口参数:无*说明:发送过程中阻塞CPU运行

5、*/voidUARTO_SendChar(ucharch)TXBUFO=ch;wlule(IFGl&UTXIFG0)=0);等待发完该字节IFG1&=UTXIFGO;严*名称:UARTlSendCharQ*功能:从串口UART1发送一字节数据*入门参数:ch:待发送的一个字节数据(范围0255)*出口参数:无*说明:发送过程中阻塞CPU运行*voidUARTl_SendChar(ucharch)TXBUF1=ch;wlule(IFG2&UTXIFG1尸=0);/等待发完该字节严*名称:UARTOGetCliaiQ*功能:从串IIUART0接收一字节数据*入口参数:无*出口参数:收到的一字节数据

6、*使用范例:如果串II没有数据,会一直等待uchaiUARTO_GetChar()wlule(IFGl&URXIFG0尸=0);/等待接收一个字节返回接收到的一字节数据IFG1&=URXIFG0;return(RXBUF0);严*名称:UARTlGetCliarO*功能:从串IIUART1接收一字节数据*入口参数:无*出口参数:收到的一字节数据*使用范例:如果串II没有数据,会一直等待*/uchaiUARTl_GetChar()wlule(IFG2&URXIFG1)=O);等待接收一个字节letuin(RXBUF1);返回接收到的一字节数据严*名称:UARTOGetCliaiQ*功能:从串II

7、UART0接收一字节数据,带有校验功能*入口参数:无*出丨1参数:收到的一字节数据,奇偶校验错误点亮P5.0的LED数据覆盖错误点亮P5.1的LED停止位错误点亮P5.2的LED数据中断错误点亮P5.3的LED*使用范例:如果串II没有数据,会一直等待uchaiUARTO_GetChaiBugQP5DIR=Oxff;P5OUT=Oxff:wlule(IFGl&URXIFGO尸=0);/等待接收一个字节if(UORCTL|PE)P5OUT&=EITO;if(UORCTL|OE)P5OUT&=EIT1;if(U0RCTL|FE)P5OUT&=EIT2;if(U0RCTL|BRK)P5OUT&=EI

8、T3;IFG1&=-URXIFGO;retuin(RXBUFO);返回接收到的一字节数据严*祁由宏定义AddiessUse控制此段代码的编译枠用于接收和发送一串数据,起始字节为本机地址,发送有空闲#if(AddressUse=1)defineFiameLenth8数据帧长度初始为8个字节#defineLocalAddr0 x01本机地址uchaiRX_BUFF1FiameLenth;接收数组/UART0接收一帧数据,本机的地址作为识别严*名称:UARTO_GetFrameO*功能:从串I发接收一帧数据,首字节是地址*入门参数:Addr:本机地址*Lenth:数据帧的长度*出口参数:无*说明:接

9、收过程中会阻塞CPU*/voidUARTO_GetFrame(uchai-Addi;uintLength)umtRcvCnt;wlule(l)UORCTL|=URXWIE;wlule(IFGl&URXIFG0)=0);IFG1&=URXIFG0;CHK_ADDR:if(UORXBUF=LocalAddr)UORCTL&=URXWIE;RX_BUFF10=U0RXBUF;RcvCnt=1;break;while(RcvCntLength)wlule(IFGl&URXIFGO)=O);IFG1&=URXIFGO;if(UORCTL&RXWAKE)gotoCHK_ADDR:RX_BUFF1RcvCn

10、t=UORXBUF;RcvCnt+;严*名称:UARTO_SendFiame()*功能:从串丨I发送一帧数据,首字节前使线路空闲libit时间*入【I参数:PU-:待发数组的首地址*Lenth:数据帧的长度*出口参数:无*说明:发送过程中会阻塞CPU*/voidUARTO_SendFrame(uchar*PtiumtLenth)Hit1;UOTCTL|=TXWAKE;产生一个线路空闲时间TXBUFO=0;/写入任意字节wlule(IFGl&UTXIFG0)=0);/等待发完,实际上只是延时fbr(i=O;i=TXBUF.SIZE)TX_IndexW=O;IE1|=UTXEO;_EINT();r

11、eturn1;严*UART0发送中断服务程序*/#pragniavectoi-UARTOTX_VECTORmtemiptvoidUART0_TX(void)if(UART_OutLen0)UART_OutLen-;UOTXBUF=TX_BUFFTX.nidexR;if(+TX_IndexR=TXBUF.SIZE)TX_IndexR=O;elseIE1&=UTXIEO;严*名称:UARTO_GetByte()*功能:从串丨I读取一字节数据(从接收FIFO中读出一字节数据)*入1参数:*chr:读取数据所存放的地址指针*出丨1参数:返回1:读取成功返回0:读取失败叫兑明:读取过程中,不阻塞CPU的运行uchaiUARTO_GetByte(uchar*clir)if(UART_IiipLen=O)retuni0;_DINT();UART_IiipLen-;*clu=RX_BUFFRX.IndexR;if(+RX_IndexR=RXBUF_SIZE)RX_IndexR=0;_EINT();return1;从接收FIFO中获取已接收的数据字节数uiiitUARTO_GetIiipLen()returnUART_IiipLen;清除接收FIFO缓冲区voidUARTO_CliRxBuf()_DINT();UART_IiipLen=0;R

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论