嵌入式系统第六章S3C2410A基本接口应用程序设计课件.ppt

上传人(卖家):三亚风情 文档编号:2863464 上传时间:2022-06-05 格式:PPT 页数:177 大小:7.66MB
下载 相关 举报
嵌入式系统第六章S3C2410A基本接口应用程序设计课件.ppt_第1页
第1页 / 共177页
嵌入式系统第六章S3C2410A基本接口应用程序设计课件.ppt_第2页
第2页 / 共177页
嵌入式系统第六章S3C2410A基本接口应用程序设计课件.ppt_第3页
第3页 / 共177页
嵌入式系统第六章S3C2410A基本接口应用程序设计课件.ppt_第4页
第4页 / 共177页
嵌入式系统第六章S3C2410A基本接口应用程序设计课件.ppt_第5页
第5页 / 共177页
点击查看更多>>
资源描述

1、3个串行接口(个串行接口(UART)117位通用并行接口(位通用并行接口(GPIO)1个个LCD控制器控制器1个触摸屏接口个触摸屏接口810位位A/D转换器转换器3个个USB接口接口1个个I2C总线接口总线接口2个个SPI总线接口总线接口4个定时个定时/1个内部时钟,个内部时钟,1个看门狗计数器个看门狗计数器可处理可处理56个中断源的中断系统个中断源的中断系统SD卡和卡和MMC卡接口卡接口SDRAM控制器控制器4DMA控制器控制器 S3C2410嵌入式微处理器的内部资源:嵌入式微处理器的内部资源:第第6章章 S3C2410A的基本接口应用程序设计的基本接口应用程序设计具有具有ARM9内核的内核

2、的S3C2410微处理器的嵌入式系统硬件平台微处理器的嵌入式系统硬件平台一、概一、概 述述S3C2410 的的UART(通用异步串行口)(通用异步串行口)有三个独立的异有三个独立的异步串行步串行I/O 端口端口:UART0、UART1、UART2,每个串口都,每个串口都可以在中断和可以在中断和DMA 两种模式下进行收发。两种模式下进行收发。UART支持的最支持的最高波特率达高波特率达230.4kbps。每个每个UART 包含:包含:波特率发生器、接收器、发送器和波特率发生器、接收器、发送器和控制单元。波特率发生器以控制单元。波特率发生器以PCLK或或UCLK为时钟源。发送为时钟源。发送器和接收

3、器各包含器和接收器各包含1个个16 字节的字节的FIFO 寄存器和移位寄存器。寄存器和移位寄存器。 S3C2410 的的3个个UART都有都有遵从遵从1.0规范的红外传输功能,规范的红外传输功能, UART0、UART1有完整的握手信号,可以连接有完整的握手信号,可以连接MODEM。当发送数据的时候,数据先写到当发送数据的时候,数据先写到FIFO 然后拷贝到发送然后拷贝到发送移位寄存器,然后从数据输出端口(移位寄存器,然后从数据输出端口(TxDn)依次被移位输)依次被移位输出。被接收的数据也同样从接收端口(出。被接收的数据也同样从接收端口(RxDn)移位输入到)移位输入到移位寄存器,然后拷贝到

4、移位寄存器,然后拷贝到FIFO 中。中。6.1 S3C2410A的串行通信接口的串行通信接口6.1.1 S3C2410A的内部结构的内部结构 S3C2410A的内部集成了的内部集成了3个异步接收发送器个异步接收发送器(UART),它们可以作为串口使用,它们可以作为串口使用实现串行通信。实现串行通信。UART的内部结构的内部结构串行口功能模块串行口功能模块 6.1.2 S3C2410A UART的主要功能的主要功能异步串行通信方式是将传输数据的每个字符一位接一位地传送。其字符传送协议为:1. 串行数据的发送和接收串行数据的发送和接收工作原理工作原理数据帧格式:数据帧格式:可编程,包含可编程,包含

5、1个开始位、个开始位、5 到到8 个数据位、个数据位、1个可选的奇偶校验位、个可选的奇偶校验位、1个或个或2个停止个停止位,通过线路控制器(位,通过线路控制器(ULCONn)来设置。)来设置。发送中止信号:迫使串口输出逻辑发送中止信号:迫使串口输出逻辑0 ,这种状,这种状态保持一个传输帧的时间长度。通常在一帧传输数态保持一个传输帧的时间长度。通常在一帧传输数据完整地传输完之后,再通过这个全据完整地传输完之后,再通过这个全0 状态将中止状态将中止信号发送给对方。中止信号发送之后,传送数据连信号发送给对方。中止信号发送之后,传送数据连续放到续放到FIFO 中(在不使用中(在不使用FIFO 模式下,

6、将被放模式下,将被放到输出保持寄存器)。到输出保持寄存器)。2. 红外线模式数据的发送和接收红外线模式数据的发送和接收UART连接红外收发器,可以进行红外数据通信连接红外收发器,可以进行红外数据通信3. 提供串行通信时的状态信息提供串行通信时的状态信息 S3C2410A的每个的每个UART可以产生可以产生5个状态信号:个状态信号: 接收缓冲器满、发送缓冲器空、发送移位器空、接收缓冲器满、发送缓冲器空、发送移位器空、超时错误、帧错误,这些状态信号由两个状态超时错误、帧错误,这些状态信号由两个状态寄存器(寄存器(UTRSTAT和和UERSTAT)来指示。)来指示。 接收器具有错误检测功能:可以检测

7、出溢出错接收器具有错误检测功能:可以检测出溢出错误,奇偶校验错误,帧错误和中止状况,每种误,奇偶校验错误,帧错误和中止状况,每种情况下都会将一个错误标志在接收状态寄存器情况下都会将一个错误标志在接收状态寄存器置位。置位。 4. 使用使用FIFO进行收发进行收发主要是通过对主要是通过对FIFO状态寄存器状态寄存器UFSTATn的查询,确定的查询,确定进行收发。进行收发。使用使用FIFO进行发送:进行发送:(1)选择发送模式(中断或者)选择发送模式(中断或者DMA模式)模式)(2)查询对方是否有请求发送要求,由)查询对方是否有请求发送要求,由MODEM状态状态寄存器寄存器UMSTATn0给出,该位

8、为给出,该位为1,则有请求,再查询,则有请求,再查询FIFO状态寄存器状态寄存器UFSTATn的发送数据满状态位是否为的发送数据满状态位是否为1,如果不是如果不是1,可以向发送缓冲寄存器,可以向发送缓冲寄存器UTXHn写入发送的数写入发送的数据。上面二者有一个或者两个都不满足,则不发送数据。据。上面二者有一个或者两个都不满足,则不发送数据。使用使用FIFO进行接收(请求发送):进行接收(请求发送):(1)选择接收模式(中断或者)选择接收模式(中断或者DMA模式)模式)(2)请求发送。先要查询)请求发送。先要查询FIFO状态寄存器状态寄存器UFSTATn的接收数据满状态位是否为的接收数据满状态位

9、是否为1,如果不是,如果不是1,则可以向对方,则可以向对方发出发出“请求发送信号请求发送信号”,对,对MODEM控制寄存器控制寄存器MCONn中的请求发送信号产生位置中的请求发送信号产生位置1,使,使UARTn发出发出nRTS信号;信号;如果如果UFSTATn的数据满状态位是的数据满状态位是1,则不能够请求发送数,则不能够请求发送数据。据。5. 不使用不使用FIFO进行收发进行收发主要是通过对收主要是通过对收/发状态寄存器发状态寄存器UTRSTATn的查询,确的查询,确定进行收发。定进行收发。数据发送:数据发送:(1)选择发送模式(中断或者)选择发送模式(中断或者DMA模式)模式)(2)查询对

10、方是否有请求发送要求,由)查询对方是否有请求发送要求,由MODEM状态状态寄存器寄存器UMSTATn0给出,该位为给出,该位为1,则有请求,再查询发,则有请求,再查询发送送/接收状态寄存器接收状态寄存器UTRSTATn1的的“发送缓冲器空发送缓冲器空”状态状态位是否为位是否为1,如果是,如果是1,可以向发送缓冲寄存器,可以向发送缓冲寄存器UTXHn写入写入发送的数据。发送的数据。数据接收(请求发送):数据接收(请求发送):(1)选择接收模式(中断或者)选择接收模式(中断或者DMA模式)模式)(2)请求发送。先要查询发送)请求发送。先要查询发送/接收状态寄存器接收状态寄存器UTRSTATn0的接

11、收缓冲器的接收缓冲器“数据就绪状态位数据就绪状态位”是否为是否为1,如果是如果是1,需要先读取数据,然后再请求对方发送数据,方,需要先读取数据,然后再请求对方发送数据,方法是对法是对MODEM控制寄存器控制寄存器MCONn中的请求发送信号产中的请求发送信号产生位置生位置1,使,使UARTn发出发出nRTS信号。信号。6. 中断或中断或DMA请求请求每个每个UART都有都有3类、类、7种事件产生中断请求或者种事件产生中断请求或者DMA请求。请求。7种中断请求事件是:溢出错误、奇偶校验错误、帧格种中断请求事件是:溢出错误、奇偶校验错误、帧格式错误、传输中断信号、接收缓冲器数据就绪、发送缓冲式错误、

12、传输中断信号、接收缓冲器数据就绪、发送缓冲器空、发送移位器空。器空、发送移位器空。它们可以分成它们可以分成3类:错误中断请求、接收中断请求、发类:错误中断请求、接收中断请求、发送中断请求。送中断请求。接收中断:接收中断: 非非FIFO模式:当接收缓冲寄存器收到数据后,产生中断请求。模式:当接收缓冲寄存器收到数据后,产生中断请求。FIFO模式:模式:Rx FIFO中数据的数目达到了触发中断的水平,或者中数据的数目达到了触发中断的水平,或者超时(在三帧时间内未收到任何数据),均产生中断请求。超时(在三帧时间内未收到任何数据),均产生中断请求。发送中断:发送中断:非非FIFO模式:当发送缓冲器空时,

13、产生中断请求。模式:当发送缓冲器空时,产生中断请求。 FIFO模式:模式:Tx FIFO中数据的数目达到了触发中断的水平。中数据的数目达到了触发中断的水平。错误中断:错误中断:一共有一共有4种错误中断:溢出错误、奇偶检验错误、帧格种错误中断:溢出错误、奇偶检验错误、帧格式错误、传输中断信号错误。式错误、传输中断信号错误。非非FIFO模式:只要有任何一个错误出现,就会产生中断请求。模式:只要有任何一个错误出现,就会产生中断请求。 FIFO模式:模式:Rx FIFO中数据溢出,或者出现了帧格式错误、奇偶中数据溢出,或者出现了帧格式错误、奇偶校验错误、传输中断信号错误,都会产生中断请求。校验错误、传

14、输中断信号错误,都会产生中断请求。说明:说明:(1)对于)对于“奇偶校验错误、帧格式错误、传输中断信奇偶校验错误、帧格式错误、传输中断信号错误号错误”中断,在数据接收时就产生了,但是在数据接收中断,在数据接收时就产生了,但是在数据接收产生时并非出现中断请求,而是产生时并非出现中断请求,而是在读出错误数据时才出现在读出错误数据时才出现中断请求中断请求。(2)如果设置的是)如果设置的是DMA模式,而不是中断请求模式,模式,而不是中断请求模式,对于以上所出现的中断请求,应该是对于以上所出现的中断请求,应该是DMA请求。请求。(3)传输中断信号定义:在超出一帧的时间内,全部)传输中断信号定义:在超出一

15、帧的时间内,全部输出低电平。输出低电平。7. 循环检测模式循环检测模式S3C2410X的每一个的每一个UART都提供有检测功能,它是一都提供有检测功能,它是一种数据循环流动的自发、自收方式,数据从发送缓冲器传种数据循环流动的自发、自收方式,数据从发送缓冲器传送到送到TXD,数据不经过引脚输出,在内部将数据传到接收,数据不经过引脚输出,在内部将数据传到接收引脚引脚RXD,再传输到接收缓冲器。,再传输到接收缓冲器。8. 串行口的自动流控制功能(串行口的自动流控制功能(AFC)UART0和和UART1不仅有完整的握手信号,而且有自动不仅有完整的握手信号,而且有自动流控制功能,在寄存器流控制功能,在寄

16、存器UMCONn中设置实现。自动流控制中设置实现。自动流控制是利用信号是利用信号nRTS、nCTS来实现的。在接收数据时,只要来实现的。在接收数据时,只要接收接收FIFO中有两个空字节就会使中有两个空字节就会使nRTS有效,使对方发送有效,使对方发送数据;在发送数据时,只要数据;在发送数据时,只要nCTS有效,就会发送数据。其有效,就会发送数据。其实现过程如下图所示。实现过程如下图所示。nRTS:请求对方发送:请求对方发送nCTS:清除请求发送:清除请求发送注意:这种自动流控制应用于对方也是注意:这种自动流控制应用于对方也是UART设备,不设备,不能应用于能应用于MODEM设备。设备。每个每个

17、UART 的波特率发生器为传输提供了串行移位时的波特率发生器为传输提供了串行移位时钟。波特率产生器的时钟源可以从钟。波特率产生器的时钟源可以从S3C2410 的内部系统时的内部系统时钟钟PCLK或或UCLK 中来选择。波特率数值决定于波特率除中来选择。波特率数值决定于波特率除数寄存器(数寄存器(UBRDIVn)的值,波特率数与)的值,波特率数与UBRDIVn 的关的关系为:系为:UBRDIVn=(int)(CLK/( f f B*16) 1 其中其中CLK为所选择的时钟频率,为所选择的时钟频率, f f B为波特率。为波特率。f f B= CLK/16/ ( UBRDIVn 1 )例如,如果波

18、特率为例如,如果波特率为115200bps 且且PCLK 或或UCLK 为为40MHz,则则UBRDIVn 为:为:UBRDIVn =(int)(40000000)(115200*16) 1 = (int)(21.7) 1 = 21 1 = 20 6.1.36.1.3串行口的波特率发生器串行口的波特率发生器6.1.4 UART的初始化的初始化UART在工作前必须对其进行初始化,即对在工作前必须对其进行初始化,即对UART的的线控制寄存器(线控制寄存器(ULCON)、控制寄存器()、控制寄存器(UCON)、)、FIFO控制寄存器(控制寄存器(UFCON)、)、Modem控制寄存器控制寄存器(UM

19、CON)、波特率因子寄存器()、波特率因子寄存器(UBRDIV)进行)进行设置。设置。UART专用寄存器专用寄存器3个个UART,每个都有,每个都有11个专用寄存器,共个专用寄存器,共31个寄存器个寄存器Register Address R/W Description Reset Value ULCONn0 x5000 x000 R/W 线路控制寄存器线路控制寄存器0 x00UCONn0 x5000 x004 R/W 控制寄存器控制寄存器0 x00UFCONn 0 x5000 x008 R/W FIFO控制寄存器控制寄存器0 x00UMCONn0 x5000 x00C R/W MODEM控制寄

20、存器控制寄存器*0 x00UTRSTATn0 x5000 x010R发送发送/接收状态寄存器接收状态寄存器0 x6UERSTATn0 x5000 x014 RRx错误状态寄存器错误状态寄存器0 x0UFSTATn0 x5000 x018 RFIFO状态寄存器状态寄存器0 x00UMSTATn0 x5000 x01C RMODEM状态寄存器状态寄存器*0 x0UTXHn0 x5000 x020/23 W 发送缓冲寄存器发送缓冲寄存器- URXHn 0 x5000 x024/27 R接收缓冲寄存器接收缓冲寄存器-UBRDIVn0 x5000 x028R/W波特率除数寄存器波特率除数寄存器-1、线路

21、控制寄存器(、线路控制寄存器(ULCON)Register Address R/W Description Reset Value ULCON00 x50000000 R/W UART0线路控制寄存器线路控制寄存器0 x00ULCON10 x50004000 R/W UART1线路控制寄存器线路控制寄存器0 x00ULCON20 x50008000 R/W UART2线路控制寄存器线路控制寄存器0 x00字段名字段名 位位意意 义义 初值初值 -7保保 留留0Infra-Red-Mode6 红外模式设置位。红外模式设置位。0:正常模式;正常模式;1:红外红外0Parity Mode5:3 奇偶

22、校验类型。奇偶校验类型。 0 xx:不校验;:不校验; 100:奇校验;:奇校验; 101:偶校验;:偶校验; 110:强制为:强制为1; 111:强制为:强制为0000Num of stop bit2 停止位个数。停止位个数。 0:1个;个;1:2个个0Word Length1:0 数据位数目。数据位数目。 00:5位;位; 01:6位;位; 10:7位;位; 11:8位位002、控制寄存器(、控制寄存器(UCON)Register Address R/W Description Reset Value UCON00 x50000004 R/W UART0控制寄存器控制寄存器0 x00UCO

23、N10 x50004004 R/W UART1控制寄存器控制寄存器0 x00UCON20 x50008004 R/W UART2控制寄存器控制寄存器0 x002、控制寄存器(、控制寄存器(UCON)字段名字段名 位位意意 义义 初值初值 Clock Selection10波特率时钟源选择。波特率时钟源选择。0:PCLK;1:UCLK0Tx Int Type9发送中断请求类型。发送中断请求类型。0 :脉冲型:脉冲型;1:电平:电平0Rx Int Type8接收中断请求类型。接收中断请求类型。0 :脉冲型:脉冲型;1:电平:电平0Rx Time OV Ena7接收超时中断控制。接收超时中断控制。0

24、:禁止;:禁止;1:允许:允许0Rx ERR Int Ena6接收错误中断控制。接收错误中断控制。0:禁止;:禁止;1:允许:允许0Loopback Mode5回送模式控制。回送模式控制。0 = 正常操作;正常操作;1 = 回送模式回送模式 0Send Break Signal4发送暂停信号控制。发送暂停信号控制。 0 = 正常传输;正常传输;1 = 发送暂停信号(全为发送暂停信号(全为0) 0Transmit Mode3:2 发送发送/接收接收模式控制。模式控制。00:禁止:禁止发送发送/接收接收; 01:中断或查询模式;:中断或查询模式;10:UART0、2用用DMA0、DMA2;11:U

25、ART1用用DMA100Receive Mode1:0003、FIFO控制寄存器(控制寄存器(UFCON)Register Address R/W Description Reset Value UFCON00 x50000008 R/W UART0 FIFO控制寄存器控制寄存器0 x00UFCON10 x50004008 R/W UART1 FIFO控制寄存器控制寄存器0 x00UFCON20 x50008008 R/W UART2 FIFO控制寄存器控制寄存器0 x003、FIFO控制寄存器控制寄存器字段名字段名 位位意意 义义 初值初值 Tx FIFO Tri Leve7:6 Tx FI

26、FO的触发电平设置。的触发电平设置。 00:空;:空; 01:减少到:减少到4字节;字节;10:减少到:减少到8字节;字节;11:减少到:减少到12字节字节00lRx FIFO Tri Level5:4 Rx FIFO的触发电平设置。的触发电平设置。 00:增加到:增加到4字节;字节; 01:增加到:增加到8字节;字节; 10:增加到:增加到12字节;字节;11 :增加到:增加到16字节字节00reserved3保保 留留0Tx FIFO Reset2 Tx FIFO清除控制。清除控制。0:正常;:正常;1:清零:清零0Rx FIFO Reset1 Rx FIFO清除控制。清除控制。0:正常;

27、:正常;1:清零:清零0FIFO Enable0 FIFO应用控制应用控制。 0:失能;:失能;1:使能:使能04、MODEM控制寄存器(控制寄存器(UMCON)Register Address R/W Description Reset Value UMCON00 x5000000C R/W UART0 MODEM控制寄控制寄存器存器0 x00UMCON10 x5000400C R/W UART1MODEM控制寄控制寄存器存器0 x00reserved0 x5000800C - 保留保留-字段名字段名 位位意意 义义 初值初值 reserved7:5保留(为保留(为0)000Auto Flo

28、w Control (AFC)4 自动流控制。自动流控制。 0:一般方式;:一般方式;1:自动流控制:自动流控制0reserved3:1保留(为保留(为0)000Request to Send0 nRTS引脚信号控制。引脚信号控制。 0:nRTS 为为 高电平;高电平;1:nRTS为低电平,有效。为低电平,有效。05、发送、发送/接收状态寄存器(接收状态寄存器(UTRSTAT)Register Address R/W Description Reset Value UTRSTAT0 0 x50000010 RUART0状态寄存器状态寄存器0 x06UTRSTAT1 0 x50004010 RU

29、ART1状态寄存器状态寄存器0 x06UTRSTAT2 0 x50008010 RUART2状态寄存器状态寄存器0 x06字段名字段名 位位意意 义义 初值初值 Transmitter empty2 发送器空状态位。发送器空状态位。 0:发送器未空:发送器未空 1:发送器、发送缓冲器均空。:发送器、发送缓冲器均空。1Transmitbuffer empty1 发送缓冲器空状态位。发送缓冲器空状态位。 0:未空;:未空;1:空:空 在非在非FIFO模式,激发中断或模式,激发中断或DMA请求请求1Receive buffer data ready0 接收缓冲器状态位。接收缓冲器状态位。 0:空;:

30、空;1:有数据:有数据 在非在非FIFO模式,激发中断或模式,激发中断或DMA请求请求06、Rx错误状态寄存器(错误状态寄存器(UERSTAT)Register Address R/W Description Reset Value UERSTAT0 0 x50000014 RUART0Rx错误状态寄存器错误状态寄存器0 x0UERSTAT1 0 x50004014 RUART1Rx错误状态寄存器错误状态寄存器0 x0UERSTAT2 0 x50008014 RUART2Rx错误状态寄存器错误状态寄存器0 x0字段名字段名 位位意意 义义 初值初值 Break Detect 3 暂停信号状态。

31、暂停信号状态。 0:无:无暂停信号暂停信号; 1:收到:收到暂停信号暂停信号(产生中断请求产生中断请求)0Frame Error2 帧错误状态位。帧错误状态位。 0:无帧错误;:无帧错误; 1:有帧错误:有帧错误(产生中断请求产生中断请求)0Parity Error 1 奇偶校验错误状态。奇偶校验错误状态。0:无奇偶校验错:无奇偶校验错 1:有奇偶校验错误:有奇偶校验错误(产生中断请求产生中断请求)0Overrun Error0 溢出错误状态位。溢出错误状态位。 0:无溢出错误;:无溢出错误; 1:溢出错误:溢出错误(产生中断请求产生中断请求)07、FIFO状态寄存器(状态寄存器(UFSTAT

32、)Register Address R/W Description Reset Value UFSTAT0 0 x50000018 RUART0 FIFO状态寄存器状态寄存器0 x00UFSTAT1 0 x50004018 RUART1 FIFO状态寄存器状态寄存器0 x00UFSTAT2 0 x50008018 RUART2 FIFO状态寄存器状态寄存器0 x00字段名字段名 位位意意 义义 初值初值 Reserved15:10 保留(为保留(为0)0Tx FIFO Full9 发送发送FIFO满状态。满状态。 0:未满;:未满; 1:满:满0Rx FIFO Full8 接收接收FIFO状态

33、位。状态位。 0:未满;:未满; 1:满:满0Tx FIFO Count7:4 发送发送FIFO中数据的数目,字节单位。中数据的数目,字节单位。0Rx FIFO Count3:0 接收接收FIFO中数据的数目,字节单位。中数据的数目,字节单位。08、MODEM状态寄存器(状态寄存器(UMSTAT)Register Address R/W Description Reset Value UMSTAT0 0 x5000001C RUART0 Modem状态寄存器状态寄存器0 x0UMSTAT1 0 x5000401C RUART1 Modem状态寄存器状态寄存器0 x0Reserved0 x500

34、0801C R保留保留-字段名字段名 位位意意 义义 初值初值 Reserved3 保留(为保留(为0)0Delta CTS 2 nCTS引脚信号自上次读后变化状态。引脚信号自上次读后变化状态。 0:未改变;:未改变;1:已改变。:已改变。0Reserved1 保留(为保留(为0)0Clear to Send0 nCTS引脚信号状态。引脚信号状态。 0:nCTS为高为高 电平;电平;1:nCTS引脚为低电平,有效。引脚为低电平,有效。09、发送缓冲寄存器(、发送缓冲寄存器(UTxH)Register Address R/W Description Reset Value UTxH00 x500

35、00020(L)0 x50000023(B)W(byte)UART0 发送缓冲寄存器发送缓冲寄存器-UTxH10 x50004020(L)0 x50004023(B)W (byte)UART1发送缓冲寄存器发送缓冲寄存器-UTxH20 x50008020(L)0 x50008023(B)W (byte)UART2发送缓冲寄存器发送缓冲寄存器-字段名字段名 位位意意 义义 初值初值 Tx DATAn7:0 UARTn发送的一个字节数据发送的一个字节数据-注:表中L地址为小端模式下的地址,B为大端模式时地址. 当判断串口准备好发送数据时,将数据放入发送当判断串口准备好发送数据时,将数据放入发送缓冲

36、器缓冲器UTXHUTXH发送数据。发送数据。10、接收缓冲寄存器(、接收缓冲寄存器(URxH)Register Address R/W Description Reset Value URxH00 x50000024(L)0 x50000027(B)R(byte)UART0 接收缓冲寄存器接收缓冲寄存器0 x00URxH10 x50004024(L)0 x50004027(B)R (byte)UART1接收缓冲寄存器接收缓冲寄存器0 x00URxH20 x50008024(L)0 x50008027(B)R (byte)UART2接收缓冲寄存器接收缓冲寄存器0 x00字段名字段名 位位意意 义

37、义 初值初值 Rx DATAn7:0 UARTn接收的一个字节数据。接收的一个字节数据。-当判断串口已接收到数据时,从接收缓冲器当判断串口已接收到数据时,从接收缓冲器URXHURXH中读取数据。中读取数据。11、波特率除数寄存器(、波特率除数寄存器(UBRDIV)Register Address R/W Description Reset Value UBRDIV0 0 x50000028 R/W UART0 波特率除数寄存器波特率除数寄存器-UBRDIV1 0 x50004028 R/W UART1 波特率除数寄存器波特率除数寄存器-UBRDIV2 0 x50008028 R/W UART2

38、 波特率除数寄存器波特率除数寄存器-字段名字段名 位位意意 义义 初值初值 UBRDIV15:0 波特率除数值。波特率除数值。UBRDIVn 0-【例例6.2】 编程实现编程实现UART0发送一个字符的程序和发送一个字符的程序和UART0接收一个字符的程序,发送和接收均采用查询的方法进行接收一个字符的程序,发送和接收均采用查询的方法进行控制。控制。 解:解:根据题目要求,采用根据题目要求,采用UTRSTAT0的第的第1位来判断发送位来判断发送缓冲器是否准备就绪,缓冲器是否准备就绪,UTRSTAT0的第的第0位来判断收缓冲位来判断收缓冲区是否接收到数据。区是否接收到数据。 #define WrU

39、TXH0(ch) (*(volatileunsigned char ) 0 x50000020) =(unsigned char)(ch) /* 定义串口定义串口0发送缓冲器发送缓冲器 */# define RdURXH0( ) (*(volatile unsigned char *)0 x50000024) /*定义串口0接收缓冲器*/#define rUTRSTAT0 (*(volatile unsigned *)0 x50000010) /*定义串口定义串口0接收接收/发送状态寄存器发送状态寄存器*/发送一个字符的子函数为:发送一个字符的子函数为:void Uart0_SendByten

40、( int data) /发送一个字符的子函数定义发送一个字符的子函数定义 while(!(rUTRSTAT0 & 0 x2); /判断发送缓冲器是否为空,判断发送缓冲器是否为空, 未空则等待未空则等待.hudelay(10); /延时延时WrUTXH0(data); /发送数据发送数据接收一个字符的子函数为:接收一个字符的子函数为:char Uart0_Getchn( viod) /接收一个字符的子函数定义接收一个字符的子函数定义if (rUTRSTAT0 & 0 x1); /判断接收缓冲器是否有接收到数据判断接收缓冲器是否有接收到数据return RdURXH0( ); / 有则返回接收到

41、的数据有则返回接收到的数据elsereturn 0; /没有则返回没有则返回0计算机之间串行通信的硬件连接一般采用计算机之间串行通信的硬件连接一般采用RS-232C标标准,有如下两种基本连接方式:准,有如下两种基本连接方式: 简简单单连连接接完完全全连连接接S3C2410A UART与与RS232的连接的连接电平转换电路电平转换电路6.1.6 串口应用编程举例串口应用编程举例编程实现编程实现S3C2410与与PC机串行通信,在机串行通信,在PC机上通机上通过超级终端在键盘输入字符,由超级终端将字符过超级终端在键盘输入字符,由超级终端将字符经经PC机串口送到机串口送到S3C2410的串口,的串口

42、, S3C2410收到收到字符后再经字符后再经PC机串口将字符发回到超级终端显示。机串口将字符发回到超级终端显示。目标板初始化目标板初始化回车换行回车换行调串口接收调串口接收数据子函数数据子函数调串口发送调串口发送数据子函数数据子函数开始开始开始开始开始开始接收缓冲器有数据接收缓冲器有数据接收数据接收数据发送缓冲器空发送缓冲器空发送数据发送数据返回返回返回返回主程序主程序串口接收数据串口接收数据 子函数子函数串口发送数据串口发送数据 子函数子函数程序框图程序框图#include /包含字符处理库函数包含字符处理库函数#include /包含标准输入输出库函数包含标准输入输出库函数#define

43、 U8 unsigned char#define TRUE 1#define FALSE 0#pragma import(_use_no_semihosting_swi) / 不使用软中断不使用软中断 /*串口通信主函数串口通信主函数*/#define rUTRSTAT0 (*(volatile unsigned *)0 x50000010)/定义串口定义串口0的状态寄存器地址的状态寄存器地址#define WrUTXH0(ch) (*(volatile unsigned char *)0 x50000020)=(unsigned char)(ch) /定义串口定义串口0的发送缓冲的发送缓冲器

44、地址器地址#define RdURXH0( )(*(volatile unsigned char *)0 x50000024)/定义串口定义串口0的接收缓冲器地址的接收缓冲器地址void Uart_SendByten(int , U8); /发送函数发送函数char Uart_Getchn(char* Revdata, int Uartnum, int timeout); /接收函数接收函数void ARMTargetInit(void); /目标板初始化函数目标板初始化函数void hudelay(int time); /延时函数延时函数int main(void) /主函数主函数 char

45、 c11; char err; ARMTargetInit(); / 目标板初始化目标板初始化while(1) Uart_SendByten(0,0 xa);/换行换行 Uart_SendByten(0,0 xd);/回车回车 err=Uart_Getchn(c1,0,0);/调串口调串口0接收数据子函数接收数据子函数 Uart_SendByten(0,c10); /调串口调串口0发送数据子函数发送数据子函数 串口串口0发送发送“换行符换行符”接收数据的存放数组接收数据的存放数组串口串口0允许超时时间允许超时时间串口串口0发送数据的存放数组发送数据的存放数组调串口接收函数的返回值,返回值可用来

46、判断接收是否成功调串口接收函数的返回值,返回值可用来判断接收是否成功void Uart_SendByten(int Uartnum, U8 data) /串口串口0发送发送数据子函数数据子函数 while(!(rUTRSTAT0 & 0 x4); /串口串口0等待发送数据等待发送数据 hudelay(10); /延时延时WrUTXH0(data); /串口串口0发送数据发送数据 串口号串口号要发送的数据要发送的数据发送的数据发送的数据串口串口0发送数据操作发送数据操作char Uart_Getchn(char* Revdata, int Uartnum, int timeout) /串口串口0

47、接收数据子函数接收数据子函数 while(!(rUTRSTAT0 & 0 x1); /串口串口0等待接收数据等待接收数据*Revdata=RdURXH0(); /串口串口0接收数据接收数据return TRUE; /串口串口0接收数据成功返回接收数据成功返回 串口串口0接收数据操作接收数据操作6.2 输入输入/输出端口输出端口主要内容主要内容概述概述寄存器寄存器应用举例应用举例一、概述一、概述S3C2410X有有117个输入个输入/输出端口输出端口。这些端口是:。这些端口是:A口(口(GPA):):23个输出口个输出口B口(口(GPB):):11个输入个输入/输出口输出口C口(口(GPC):)

48、:16个输入个输入/输出口输出口D口(口(GPD):):16个输入个输入/输出口输出口E口(口(GPE):):16个输入个输入/输出口输出口F口(口(GPF):):8个输入个输入/输出口输出口G口(口(GPG):):16个输入个输入/输出口输出口H口(口(GPH):):11个输入个输入/输出口输出口这些端口都具有多功能,通过引脚配置寄存器,可以这些端口都具有多功能,通过引脚配置寄存器,可以将其设置为所需要的功能,如:将其设置为所需要的功能,如:I/O功能、中断功能等等。功能、中断功能等等。二、端口寄存器及引脚配置二、端口寄存器及引脚配置每一个端口都有每一个端口都有4个寄存器,它们是:引脚配个寄

49、存器,它们是:引脚配置寄存器、数据寄存器、引脚上拉寄存器等。置寄存器、数据寄存器、引脚上拉寄存器等。Register Address R/W Description Reset Value GPXCON0 x560000 x0 R/W 端口端口X配置寄存器配置寄存器 X GPXDAT 0 x560000 x4 R/W 端口端口X数据寄存器数据寄存器X GPXUP0 x560000 x8 R/W 端口端口X上拉寄存器上拉寄存器X RESERVED0 x560000 xC R/W 端口端口X保留寄存器保留寄存器-GPADAT寄存器为准备输出的数据寄存器为准备输出的数据其值为其值为23位位22:0注

50、意注意: (1)当当A口引脚配置为非输出功能时,其输出口引脚配置为非输出功能时,其输出无意义;无意义; (2)从引脚输入没有意义。)从引脚输入没有意义。1、端口、端口A寄存器及引脚配置寄存器及引脚配置Register Address R/W Description Reset Value GPACON0 x56000000 R/W 端口端口A引脚配置寄存器引脚配置寄存器 0 x7FFFFF GPADAT 0 x56000004 R/W 端口端口A数据寄存器数据寄存器- RESERVED 0 x56000008 -端口端口A保留寄存器保留寄存器- RESERVED 0 x5600000C-端口端

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

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

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


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

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


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