第六章-S3C2410的串口UART及编程要点课件.ppt

上传人(卖家):ziliao2023 文档编号:6016791 上传时间:2023-05-22 格式:PPT 页数:34 大小:393KB
下载 相关 举报
第六章-S3C2410的串口UART及编程要点课件.ppt_第1页
第1页 / 共34页
第六章-S3C2410的串口UART及编程要点课件.ppt_第2页
第2页 / 共34页
第六章-S3C2410的串口UART及编程要点课件.ppt_第3页
第3页 / 共34页
第六章-S3C2410的串口UART及编程要点课件.ppt_第4页
第4页 / 共34页
第六章-S3C2410的串口UART及编程要点课件.ppt_第5页
第5页 / 共34页
点击查看更多>>
资源描述

1、第六章第六章 S3C2410的串口的串口UART及编程及编程 主要内容:主要内容:6.1 S3C2410的串口的串口UART概述概述 6.2 UART的控制寄存器的控制寄存器 6.3 UART通信程序例子通信程序例子6.1 S3C2410的串口的串口UART概述概述6.1.1 S3C2410串行通信(串行通信(UART)单元)单元 S3C2410 UART单元提供单元提供3个独立的异步串行通信接个独立的异步串行通信接口,皆可工作于中断和口,皆可工作于中断和DMA模模 式。使用系统时钟最高波特率达式。使用系统时钟最高波特率达230.4 kb/s,如果,如果使用外部设备提供的时钟,可以达到更高的速

2、率。使用外部设备提供的时钟,可以达到更高的速率。每一个每一个UART单元包含一个单元包含一个16字节的字节的FIFO发送缓冲器发送缓冲器和一个和一个16字节的字节的FIFO接收缓冲器,用于数据的接收接收缓冲器,用于数据的接收和发送。和发送。S3C2410X UART支持可编程波特率、红外发送支持可编程波特率、红外发送/接收接收(只只UART2)、1个或个或2个停止位、个停止位、5位位/6位位/7位位/8位数位数据宽度和奇偶校验。据宽度和奇偶校验。6.1.2 波特率的产生波特率的产生 波特率由一个专用的波特率由一个专用的UART波特率分频寄存器波特率分频寄存器(UBRDIVn)(n=02)控制,

3、计算公式如下)控制,计算公式如下 UBRDIVn=(int)ULK/(波特率波特率 16)1或者或者 UBRDIVn=(int)PLK/(波特率波特率 16)16.1.3 UART通信操作通信操作 下面简略介绍下面简略介绍UART操作,关于数据发送、数操作,关于数据发送、数据接收、中断产生、波特率产生、查询检测据接收、中断产生、波特率产生、查询检测模式、红外模式和自动流控制的详细介绍,模式、红外模式和自动流控制的详细介绍,请参照相关教材和数据手册。请参照相关教材和数据手册。发送数据帧是可编程的。一个数据帧包含发送数据帧是可编程的。一个数据帧包含1个个起始位、起始位、58个数据位、个数据位、1个

4、可选的奇偶校验个可选的奇偶校验位和位和12位停止位,停止位位数通过行控制寄位停止位,停止位位数通过行控制寄存器存器ULCONn配置。配置。6.2 UART的控制寄存器的控制寄存器6.2.1 UART线路控制寄存器线路控制寄存器ULCONn 该寄存器的位该寄存器的位6决定是否使用红外模式,决定是否使用红外模式,位位5、位、位4和位和位3决定校验方式,位决定校验方式,位2决定决定停止位长度,位停止位长度,位1和位和位0决定每帧的数据决定每帧的数据位数。具体如表位数。具体如表6-1所示所示:6.2.2 UART控制寄存器控制寄存器UCONn 该寄存器决定UART的各种模式,见表6-2所示:6.2.3

5、 UART FIFO控制寄存器控制寄存器UFCONn S3C2410 UART每通道有每通道有16个字节的先入先个字节的先入先出(出(FIFO)接收缓冲器和)接收缓冲器和16个字节的先入先个字节的先入先出(出(FIFO)发送缓冲器,如果在程序中使用)发送缓冲器,如果在程序中使用它们,必须要对它们,必须要对UART FIFO控制寄存器控制寄存器UFCONn进行定义,进行定义,UFCONn的配置如表的配置如表6-3所示:所示:6.2.4 UART 调制解调器控制寄存器调制解调器控制寄存器UMCONn(n=0或或1)6.2.5发送寄存器发送寄存器UTXH和接收寄存器和接收寄存器URXH 这两个寄存器

6、存放发送和接收的数这两个寄存器存放发送和接收的数据,当然只有据,当然只有1字节字节(8位数据位数据)。需要。需要注意的是,在发生溢出错误时,接注意的是,在发生溢出错误时,接收的数据必须被读出来,否则会引收的数据必须被读出来,否则会引发下次溢出错误。发下次溢出错误。6.2.6 UART TX/RX 状态寄存器状态寄存器UTRSTAT UART TX/RX状态寄存器UTRSTAT配置见表6-5:6.3 UART通信程序例子通信程序例子 UART通信电平可有三种形式,通信电平可有三种形式,TTL电平,电平,RS232或或RS485。嵌入式控制系统大多具有小、巧、轻、灵、。嵌入式控制系统大多具有小、巧

7、、轻、灵、薄的特点,许多传感器和薄的特点,许多传感器和S3C2410一体或距离很近,一体或距离很近,没有干扰,例如多参数监护仪等医疗设备,为简化没有干扰,例如多参数监护仪等医疗设备,为简化电路,可采用电路,可采用TTL电平直接与电平直接与S3C2410相连。相连。如果通信距离在几十米左右并是点对点通信可如果通信距离在几十米左右并是点对点通信可采用采用RS232接口,否则只能采用接口,否则只能采用RS485通信。在工程通信。在工程上上UART通信大多采用三线制(发送连对方接收、接通信大多采用三线制(发送连对方接收、接收连对方发送,双方共地)。本节在介绍收连对方发送,双方共地)。本节在介绍RS23

8、2接接口电路的同时给出了一个口电路的同时给出了一个UART通信程序实例。通信程序实例。6.3.1 RS232接口电路接口电路 本实验平台的电路中,本实验平台的电路中,UART0与与S3C2410连连接电路如图接电路如图6-1所示,所示,UART0只采用两根接只采用两根接线线RXD0和和TXD0(RS232只能实现点对点通信,只能实现点对点通信,且两点要共地且两点要共地),因此只能进行简单的数据,因此只能进行简单的数据传输及接收。传输及接收。UART0采用美信采用美信332电平转换电平转换器器(MAX332)做电平转换做电平转换 图6-1 UART0X与S3C2410的连接电路图 6.3.2 U

9、ART实验程序实验程序/-/头文件头文件uart0.h/-#define TX_INTTYPE 1 /1:发送中断电平触发标志:发送中断电平触发标志#define RX_INTTYPE 1 /1:接收中断电平触发标志:接收中断电平触发标志extern void Uart_Port_Set(void);/保存本程序使用的端口原状态保存本程序使用的端口原状态extern void Uart_Port_Return(void);/恢复本程序使用的端口原状态恢复本程序使用的端口原状态extern void Uart_Uclk_En(int,int);/串行通信使用串行通信使用UCLKextern vo

10、id Uart_Pclk_En(int,int);/串行通信使用串行通信使用PCLK void Test_Uart0_Int(void);/UART0初始化初始化/-/UART实验程序实验程序/-#include#include#include 2410addr.h#include 2410lib.h#include def.h#include uart0.hvoid Uart_Port_Set(void);void Uart_Port_Return(void);void _irq Uart0_TxInt(void);/发送中断服务程序发送中断服务程序void _irq Uart0_RxInt

11、OrErr(void);/接收字符和错误代码中断服务程序接收字符和错误代码中断服务程序void _sub_Uart0_RxInt(void);/接收字符子中断服务程序,从上面程接收字符子中断服务程序,从上面程序分出序分出volatile U32 save_rGPHCON,save_rGPHDAT,save_rGPHUP;volatile U32 save_ULCON0,save_UCON0,save_UFCON0,save_UMCON0;/*定义一些变量,做临时保存端口数据和状态的缓冲区,通信结束,端定义一些变量,做临时保存端口数据和状态的缓冲区,通信结束,端口数据和状态要恢复口数据和状态要恢

12、复*/Volatile U32 isTxint isRxint;/定义二个变量,分别做发送和接收中断结定义二个变量,分别做发送和接收中断结束与否标志束与否标志volatile static char*uart0TxStr;/UART0发送字串地址发送字串地址volatile static char*uart0RxStr;/UART0接收字串地址接收字串地址/-/保存保存UART实验使用的端口和寄存器实验使用的端口和寄存器/-void Uart_Port_Set(void)/保存保存H口控制寄存器口控制寄存器 save_rGPHCON=rGPHCON;save_rGPHDAT=rGPHDAT;s

13、ave_rGPHUP=rGPHUP;/配置配置UART口口 rGPHCON&=0 x3c0000;rGPHCON|=0 x2faaa;/H口控制寄存器口控制寄存器nRTS1,nCTS1功能使能功能使能 rGPHUP|=0 x1ff;/Uart 口上拉禁止口上拉禁止 /rINTSUBMSK=0 x7ff;/屏蔽全部子中断屏蔽全部子中断 save_ULCON0=rULCON0;/保存保存UART控制寄存器控制寄存器 save_UCON0=rUCON0;save_UFCON0=rUFCON0;save_UMCON0=rUMCON0;/Initialize UART0,port /-/恢复恢复UART

14、实验使用的端口和寄存器实验使用的端口和寄存器/-void Uart_Port_Return(void)/Pop UART GPIO port configuration rGPHCON=save_rGPHCON;rGPHDAT=save_rGPHDAT;rGPHUP=save_rGPHUP;/Pop Uart control registers rULCON0=save_ULCON0;rUCON0=save_UCON0;rUFCON0=save_UFCON0;rUMCON0=save_UMCON0;/-/UART通信使用通信使用UCLK做波特率发生器做波特率发生器void Uart_Uclk_

15、En(int ch,int baud)int ch,baud;Uart_Printf(nSelect UART channel0:UART0;1:UART1;2:UART2:n);ch=Uart_GetIntNum();/从键盘读通道号从键盘读通道号 Uart_Printf(nSelect baud rate:n);baud=Uart_GetIntNum();/从键盘读波特率从键盘读波特率 if(ch=0)/选选UART0 Uart_Select(0);rUCON0|=0 x400;/选选UCLK rUBRDIV0=(int)(UCLK/16./baud)-1);/波特率因子寄存器波特率因子寄

16、存器 Uart_Printf(UCLK is enabled by UART0.n);for(i=0;i100;i+UART实验使用实验使用PCLK/-void Uart_Pclk_En(int ch,int baud)int ch,baud;Uart_Printf(nSelect UART channel0:UART0/1:UART1/2:UART2:n);ch=Uart_GetIntNum();Uart_Printf(nSelect baud rate:n);baud=Uart_GetIntNum();if(ch=0)选选UART0 Uart_Select(0);rUCON0&=0 x3f

17、f;/Select PCLK rUBRDIV0=(int)(PCLK/16./baud)-1);/Baud rate divisior register Uart_Printf(PCLK is enabled by UART0.n);for(i=0;iUART0 Tx interrupt test is good!rn;/发送的实验字串发送的实验字串Uart_Printf(Uart channel 0 Tx Interrupt Testn);/在终端上提示在终端上提示pISR_UART0=(unsigned)Uart0_TxInt;/设中断向量,即发送中断服务程序设中断向量,即发送中断服务程序

18、入口入口rULCON0=(06)|(03)|(02)|(3);/*正常发送,无效验,一个停止位,正常发送,无效验,一个停止位,8个数据位个数据位 选选 UCLK*/rUCON0&=0 x400;rUCON0|=(TX_INTTYPE9)|(RX_INTTYPE8)|(07)|(06)|(05)|(04)|(12)|();/选时钟,发送,接收中断选时钟,发送,接收中断 Uart_TxEmpty(0);/等,直到发送缓冲器空,此时会产生发送等,直到发送缓冲器空,此时会产生发送中断中断 rINTMSK=(BIT_UART0);/总中断屏蔽(总中断屏蔽(UART0位)打开位)打开 rINTSUBMSK

19、=(BIT_SUB_TXD0);/子中断屏蔽(子中断屏蔽(UART0发送位)打开发送位)打开 while(isTxInt);/*从此处进入中断,中断结束又返回这里等下次中断,从此处进入中断,中断结束又返回这里等下次中断,直到发送结束直到发送结束 isTxInt=0跳出,在超级终端上可看到发给它的字符跳出,在超级终端上可看到发给它的字符*/UART0接收中断实验,接收中断实验,UART0接收从键盘上输入的字符,按接收从键盘上输入的字符,按ENTER键接收结束键接收结束isRxInt=1;/接收中断标志,接收结束,接收中断标志,接收结束,isRxInt=0 uart0RxStr=(char*)UA

20、RTBUFFER;/接收字串缓冲区首地址设定接收字串缓冲区首地址设定Uart_Printf(nUart channel 0 Rx Interrupt Test:n);/提示提示Uart_Printf(After typing ENTER key,you will see the characters which was typed by you.);Uart_Printf(nTo quit,press ENTER key.!n);Uart_TxEmpty(0);/*等,直到发送缓冲器空,(等上面发送的最后一个字符被等,直到发送缓冲器空,(等上面发送的最后一个字符被对方取走,才进行接收实验)对方

21、取走,才进行接收实验)*/pISR_UART0=(unsigned)Uart0_RxIntOrErr;/设中断向量,即接收中断服务程序入设中断向量,即接收中断服务程序入口口rULCON0=(06)|(03)|(02)|(3);/正常接收,无效验,一个停止位,正常接收,无效验,一个停止位,8个数据个数据位位rUCON0&=0 x400;/选选 UCLKrUCON0|=(TX_INTTYPE9)|(RX_INTTYPE8)|(07)|(16)|(05)|(04)|(12)|(1);/选时钟,发送,接收中断选时钟,发送,接收中断 ClearPending(BIT_UART0);/清清UART0中断挂

22、起中断挂起 rINTMSK=(BIT_UART0);/中断打开中断打开 rSUBSRCPND=(BIT_SUB_TXD0|BIT_SUB_RXD0|BIT_SUB_ERR0);rINTSUBMSK=(BIT_SUB_RXD0|BIT_SUB_ERR0);/子中断打开子中断打开 while(isRxInt);/*从此处进入中断,中断结束又返回这里从此处进入中断,中断结束又返回这里等下次中断,直到接收结束等下次中断,直到接收结束isRxInt=0跳出跳出*/rINTSUBMSK|=(BIT_SUB_RXD0|BIT_SUB_ERR0);/中断结束中断结束,屏蔽子中断屏蔽子中断(0通道接收位通道接收

23、位)rINTMSK|=(BIT_UART0);/中断结束,屏蔽总中断中断结束,屏蔽总中断(0通道通道UART位位)Uart_Printf(%sn,(char*)UARTBUFFER);/打印接收的字符打印接收的字符串,实际就是在终端上显示串,实际就是在终端上显示Uart_Port_Return();/恢复口状态恢复口状态/-/UART初始化初始化/-void Uart_Init(int pclk,int baud)int i;static int whichUart=0;if(pclk=0)pclk =PCLK;/UART0rULCON0=0 x3;/正常模式正常模式,无效验无效验,1个停止位

24、个停止位,8个数据位个数据位rUCON0 =0 x245;10 9 8 7 6 5 4 3:2 1:0/Clock Sel,Tx Int,Rx Int,Rx Time Out,Rx err,Loop-back,Send break,Transmit Mode,Receive Mode/0 1 0 0 1 0 0 01 01/PCLK Level Pulse Disable Generate Normal Normal Interrupt or Polling rUBRDIV0=(int)(pclk/16./baud+0.5)-1);/波特率因子波特率因子 /-/UART实验主程序实验主程序/-void main(void)Uart_Init(0,115200);/UART初始化初始化Test_Uart0_Int();/*该程序同时完成发送中断实验和接收中断实验,发送的字符该程序同时完成发送中断实验和接收中断实验,发送的字符串由发送程序设定。接收的字符串由键盘发出,按串由发送程序设定。接收的字符串由键盘发出,按ENTER结束接收。先做发送,结束接收。先做发送,后做接收后做接收*/

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(第六章-S3C2410的串口UART及编程要点课件.ppt)为本站会员(ziliao2023)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|