UART串口通讯(中断).ppt

UART串口通讯(中断).ppt

ID:51620680

大小:484.31 KB

页数:9页

时间:2020-03-26

UART串口通讯(中断).ppt_第1页
UART串口通讯(中断).ppt_第2页
UART串口通讯(中断).ppt_第3页
UART串口通讯(中断).ppt_第4页
UART串口通讯(中断).ppt_第5页
资源描述:

《UART串口通讯(中断).ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、UART串口通讯中断方式LPC21XX串口通讯移位寄存器UnRSR接收缓冲寄存器UnRBRUARTn接收单元RxDn除数锁存寄存器UnDLL、UnDLMUARTn波特率发生器UARTn控制寄存器(UnLCR)FIFO控制寄存器(UnFCR)UARTn状态寄存器(UnLSR)中断中断使能寄存器UnIER中断标志寄存器UnIIRUARTn高速缓存寄存器UnSCR发送缓冲寄存器UnTHRUARTn发送单元TxDn移位寄存器UnTSRMODEMModem控制寄存器U1MCRModem状态寄存器U1MSRCTSDSRDCDDTR

2、RIRTSVPB总线UART结构图UART0、UART1各含有1个16字节的接收FIFO缓冲区。软件设置接收FIFO缓冲区的触发字节。UARTFIFO控制寄存器位76[5:3]210功能Rx触发点设置—复位TxFIFO复位RxFIFO使能FIFO接收FIFOUnRSRUnRBRUnFCRUART接收FIFO缓冲区00:1字节01:4字节10:8字节11:14字节UART0、UART1各含有1个16字节的发送FIFO缓冲区。UnTHR是UARTn发送FIFO的最高字节。UART的发送FIFO是一直使能的。发送FIFOUn

3、THRUnTSRUART发送FIFO缓冲区UART线状态寄存器位76543210功能RXFETEMTTHREBIFEPEOERDRRxFIFO错误发送器空发送保持寄存器空间隔中断帧错误奇偶错误溢出错误接收数据就绪UART线状态寄存器——UnLSR线状态寄存器(UnLSR)为只读寄存器,它提供UARTn发送和接收模块的状态信息。中断方式UART0初始化voidUART0_Ini(void){uint16Fdiv;PINSEL0=(PINSEL0&0x0fffffff0)

4、0x00000005;//只修改P0.0和P0.1

5、连接到UART0,教材P174表4.53U0LCR=0x83;//DLAB=1,允许设置波特率,教材P288Fdiv=(Fpclk/16)/UART_BPS;//设置波特率U0DLM=Fdiv/256;//教材P283U0DLL=Fdiv%256;U0LCR=0x03;//8位数据位,1位停止位,无奇偶校验U0FCR=0x0C7;//使能和复位TX和RXFIFO,Rx触发点为14字节U0IER=0X05;//RBR、Rx线状态中断使能,THRE中断禁止,P284VICIntSelect

6、=1<<6;//选择UART0为

7、IRQVICIntEnable=1<<6;//允许UART0中断VICVectCntl15=0x20

8、6;VICVectAddr15=(int)UART0_IRQHandler;}中断服务函数voidUART0_IRQHandler(void){inti;switch(U0IIR&0x0f){case0x04://RxFIFO达到14字节for(i=0;i<13;i++)RcvBuf[RcvP++]=U0RBR;break;case0x0c://接收超时,表示数据结束while(U0LSR&0x01)RcvBuf[Rc

9、vP++]=U0RBR;RcvL=RcvP;//一帧数据结束标志RcvP=0;break;//准备接受下一数据case0x02://发送缓冲器空if(TxdP==TxdL){U0IER=0X05;//THRE中断禁止TxdL=TxdP=0;}else{for(i=16;i>0;i--){if(TxdP==TxdL)break;//发送字符完elseU0THR=TxdBuf[TxdP++];}}break;case0x06://状态中断RcvL=U0LSR;//读状态,清除错误标志RcvP=RcvL=TxdP=RxdL=

10、0;break;}}演示程序intmain(void){uint8RcvP=0,RcvL=0,TxdP=0,RxdL=0;charRcvBuf[256],Txdbuf[256];inti=0;UART0_Ini();while(1){if(RcvL!=0){//接收到完整数据包……for(i=16;i>0;i--){if(TxdP==TxdL)break;//发送字符完elseU0THR=TxdBuf[TxdP++];}U0IER=0X07;//THRE中断使能RcvL=0;}//结束处理……//其它主程序处理}ret

11、urn(0);}练习通过PC串口助手或其它串口工具发送字符串将该字符串前面添加响应字符“>”,字符串后添加结束字符“#”,然后传送回PC比如接收到包“Thisisateststring!”,则返回字符串“>Thisisateststring!#”该练习主要锻炼中断发送接收程序设计,以及通过接收超时区分数据包间隔课后编写MODBUS

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。