文档详情

嵌入式系统开发基础——基于ARM9微处理器C语言程序设计(第六版)第六章 S3C2410的串口UART及编程.ppt

发布:2024-11-28约4.68千字共34页下载文档
文本预览下载声明

voidUart_Uclk_En(intch,intbaud){intch,baud;Uart_Printf(\nSelectUARTchannel[0:UART0;1:UART1;2:UART2]:\n);ch=Uart_GetIntNum();//从键盘读通道号Uart_Printf(\nSelectbaudrate:\n);baud=Uart_GetIntNum();//从键盘读波特率if(ch==0){//选UART0 Uart_Select(0); rUCON0|=0x400; //选UCLK rUBRDIV0=((int)(UCLK/16./baud)-1); //波特率因子寄存器 Uart_Printf(UCLKisenabledbyUART0.\n); }for(i=0;i100;i++UART实验使用PCLK//--------------------------------------------------------------------------------------------------------------voidUart_Pclk_En(intch,intbaud){intch,baud;Uart_Printf(\nSelectUARTchannel[0:UART0/1:UART1/2:UART2]:\n);ch=Uart_GetIntNum();Uart_Printf(\nSelectbaudrate:\n);baud=Uart_GetIntNum();if(ch==0){选UART0 Uart_Select(0);rUCON0=0x3ff; //SelectPCLK rUBRDIV0=((int)(PCLK/16./baud)-1); //Baudratedivisiorregister Uart_Printf(PCLKisenabledbyUART0.\n); }for(i=0;i100;i++); //短延时,给硬件响应时间}//-------------------------------------------------------------------------------------------------------------//UART0发送中断//-------------------------------------------------------------------------------------------------------------void__irqUart0_TxInt(void){rINTSUBMSK|=(BIT_SUB_RXD0|BIT_SUB_TXD0|BIT_SUB_ERR0);/*屏蔽接收和发送以及错误子中断*/第六章S3C2410的串口UART及编程主要内容:6.1S3C2410的串口UART概述6.2UART的控制寄存器6.3UART通信程序例子6.1S3C2410的串口UART概述

6.1.1S3C2410串行通信(UART)单元S3C2410UART单元提供3个独立的异步串行通信接口,皆可工作于中断和DMA模式。使用系统时钟最高波特率达230.4kb/s,如果使用外部设备提供的时钟,可以达到更高的速率。每一个UART单元包含一个16字节的FIFO发送缓冲器和一个16字节的FIFO接收缓冲器,用于数据的接收和发送。S3C 2410XUART支持可编程波特率、红外发送/接收(只UART2)、1个或2个停止位、5位/6位/7位/8位数据宽度和奇偶校验。6.1.2波特率的产生

波特率由一个专用的UART波特率分频寄存器(UBRDIVn)(n=0~2)控制,计算公式如下UBRDIVn=(int)[ULK/(波特率×16)]-1或者UBRDIVn=(int)[PLK/(波特率×16)]-16.1.3UART通信操作

下面简略介绍UART操作,关于数据发送、数据接收、中断产生、波特率产生、查询检测模式、红外模式和自动流控制

显示全部
相似文档