版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、3个串行接口(个串行接口(UART)117位通用并行接口(位通用并行接口(GPIO)1个个LCD控制器控制器1个触摸屏接口个触摸屏接口8通道通道10位位A/D转换器转换器3个个USB接口接口1个个I2C总线接口总线接口2个个SPI总线接口总线接口4个定时个定时/计数器和计数器和1个内部时钟,个内部时钟,1个看门狗计数器个看门狗计数器可处理可处理56个中断源的中断系统个中断源的中断系统SD卡和卡和MMC卡接口卡接口SDRAM控制器控制器4通道通道DMA控制器控制器 S3C2410嵌入式微处理器的内部资源:嵌入式微处理器的内部资源:第第6章章 S3C2410A的基本接口应用程序设计的基本接口应用程
2、序设计具有具有ARM9内核的内核的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 中(在不使
6、用中(在不使用FIFO 模式下,将被放模式下,将被放到输出保持寄存器)。到输出保持寄存器)。2. 红外线模式数据的发送和接收红外线模式数据的发送和接收UART连接红外收发器,可以进行红外数据通信连接红外收发器,可以进行红外数据通信3. 提供串行通信时的状态信息提供串行通信时的状态信息 S3C2410A的每个的每个UART可以产生可以产生5个状态信号:个状态信号: 接收缓冲器满、发送缓冲器空、发送移位器空、接收缓冲器满、发送缓冲器空、发送移位器空、超时错误、帧错误,这些状态信号由两个状态超时错误、帧错误,这些状态信号由两个状态寄存器(寄存器(UTRSTAT和和UERSTAT)来指示。)来指示。
7、接收器具有错误检测功能:可以检测出溢出错接收器具有错误检测功能:可以检测出溢出错误,奇偶校验错误,帧错误和中止状况,每种误,奇偶校验错误,帧错误和中止状况,每种情况下都会将一个错误标志在接收状态寄存器情况下都会将一个错误标志在接收状态寄存器置位。置位。 4. 使用使用FIFO进行收发进行收发主要是通过对主要是通过对FIFO状态寄存器状态寄存器UFSTATn的查询,确定的查询,确定进行收发。进行收发。使用使用FIFO进行发送:进行发送:(1)选择发送模式(中断或者)选择发送模式(中断或者DMA模式)模式)(2)查询对方是否有请求发送要求,由)查询对方是否有请求发送要求,由MODEM状态状态寄存器
8、寄存器UMSTATn0给出,该位为给出,该位为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)选择发送模式(中断或者)选择发送模式(中断或
10、者DMA模式)模式)(2)查询对方是否有请求发送要求,由)查询对方是否有请求发送要求,由MODEM状态状态寄存器寄存器UMSTATn0给出,该位为给出,该位为1,则有请求,再查询发,则有请求,再查询发送送/接收状态寄存器接收状态寄存器UTRSTATn1的的“发送缓冲器空发送缓冲器空”状态状态位是否为位是否为1,如果是,如果是1,可以向发送缓冲寄存器,可以向发送缓冲寄存器UTXHn写入写入发送的数据。发送的数据。数据接收(请求发送):数据接收(请求发送):(1)选择接收模式(中断或者)选择接收模式(中断或者DMA模式)模式)(2)请求发送。先要查询发送)请求发送。先要查询发送/接收状态寄存器接收
11、状态寄存器UTRSTATn0的接收缓冲器的接收缓冲器“数据就绪状态位数据就绪状态位”是否为是否为1,如果是如果是1,需要先读取数据,然后再请求对方发送数据,方,需要先读取数据,然后再请求对方发送数据,方法是对法是对MODEM控制寄存器控制寄存器MCONn中的请求发送信号产中的请求发送信号产生位置生位置1,使,使UARTn发出发出nRTS信号。信号。6. 中断或中断或DMA请求请求每个每个UART都有都有3类、类、7种事件产生中断请求或者种事件产生中断请求或者DMA请求。请求。7种中断请求事件是:溢出错误、奇偶校验错误、帧格种中断请求事件是:溢出错误、奇偶校验错误、帧格式错误、传输中断信号、接收
12、缓冲器数据就绪、发送缓冲式错误、传输中断信号、接收缓冲器数据就绪、发送缓冲器空、发送移位器空。器空、发送移位器空。它们可以分成它们可以分成3类:错误中断请求、接收中断请求、发类:错误中断请求、接收中断请求、发送中断请求。送中断请求。接收中断:接收中断: 非非FIFO模式:当接收缓冲寄存器收到数据后,产生中断请求。模式:当接收缓冲寄存器收到数据后,产生中断请求。FIFO模式:模式:Rx FIFO中数据的数目达到了触发中断的水平,或者中数据的数目达到了触发中断的水平,或者超时(在三帧时间内未收到任何数据),均产生中断请求。超时(在三帧时间内未收到任何数据),均产生中断请求。发送中断:发送中断:非非
13、FIFO模式:当发送缓冲器空时,产生中断请求。模式:当发送缓冲器空时,产生中断请求。 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设备,不设备,不能应用于能应用
17、于MODEM设备。设备。每个每个UART 的波特率发生器为传输提供了串行移位时的波特率发生器为传输提供了串行移位时钟。波特率产生器的时钟源可以从钟。波特率产生器的时钟源可以从S3C2410 的内部系统时的内部系统时钟钟PCLK或或UCLK 中来选择。波特率数值决定于波特率除中来选择。波特率数值决定于波特率除数寄存器(数寄存器(UBRDIVn)的值,波特率数与)的值,波特率数与UBRDIVn 的关的关系为:系为:UBRDIVn=(int)(CLK/( f f B*16) 1 其中其中CLK为所选择的时钟频率,为所选择的时钟频率, f f B为波特率。为波特率。f f B= CLK/16/ ( U
18、BRDIVn 1 )例如,如果波特率为例如,如果波特率为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)、)、Mo
19、dem控制寄存器控制寄存器(UMCON)、波特率因子寄存器()、波特率因子寄存器(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 x
20、00C R/W MODEM控制寄存器控制寄存器*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波特率除数
21、寄存器波特率除数寄存器-1、线路控制寄存器(、线路控制寄存器(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:红外红外0P
22、arity Mode5:3 奇偶校验类型。奇偶校验类型。 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控制
23、寄存器控制寄存器0 x00UCON10 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接收超
24、时中断控制。接收超时中断控制。0:禁止;:禁止;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
25、用用DMA0、DMA2;11:UART1用用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 T
26、ri Leve7:6 Tx FIFO的触发电平设置。的触发电平设置。 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 FIF
27、O清除控制。清除控制。0:正常;:正常;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保留(为保
28、留(为0)000Auto Flow 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 x06UTRSTAT
29、1 0 x50004010 RUART1状态寄存器状态寄存器0 x06UTRSTAT2 0 x50008010 RUART2状态寄存器状态寄存器0 x06字段名字段名 位位意意 义义 初值初值 Transmitter empty2 发送器空状态位。发送器空状态位。 0:发送器未空:发送器未空 1:发送器、发送缓冲器均空。:发送器、发送缓冲器均空。1Transmitbuffer empty1 发送缓冲器空状态位。发送缓冲器空状态位。 0:未空;:未空;1:空:空 在非在非FIFO模式,激发中断或模式,激发中断或DMA请求请求1Receive buffer data ready0 接收缓冲器状态位
30、。接收缓冲器状态位。 0:空;:空;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
31、Detect 3 暂停信号状态。暂停信号状态。 0:无:无暂停信号暂停信号; 1:收到:收到暂停信号暂停信号(产生中断请求产生中断请求)0Frame Error2 帧错误状态位。帧错误状态位。 0:无帧错误;:无帧错误; 1:有帧错误:有帧错误(产生中断请求产生中断请求)0Parity Error 1 奇偶校验错误状态。奇偶校验错误状态。0:无奇偶校验错:无奇偶校验错 1:有奇偶校验错误:有奇偶校验错误(产生中断请求产生中断请求)0Overrun Error0 溢出错误状态位。溢出错误状态位。 0:无溢出错误;:无溢出错误; 1:溢出错误:溢出错误(产生中断请求产生中断请求)07、FIFO状态
32、寄存器(状态寄存器(UFSTAT)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
33、Full8 接收接收FIFO状态位。状态位。 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
34、x0Reserved0 x5000801C 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 V
35、alue UTxH00 x50000020(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
37、x00字段名字段名 位位意意 义义 初值初值 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 x50
38、008028 R/W UART2 波特率除数寄存器波特率除数寄存器-字段名字段名 位位意意 义义 初值初值 UBRDIV15:0 波特率除数值。波特率除数值。UBRDIVn 0-【例例6.2】 编程实现编程实现UART0发送一个字符的程序和发送一个字符的程序和UART0接收一个字符的程序,发送和接收均采用查询的方法进行接收一个字符的程序,发送和接收均采用查询的方法进行控制。控制。 解:解:根据题目要求,采用根据题目要求,采用UTRSTAT0的第的第1位来判断发送位来判断发送缓冲器是否准备就绪,缓冲器是否准备就绪,UTRSTAT0的第的第0位来判断收缓冲位来判断收缓冲区是否接收到数据。区是否接收
39、到数据。 #define WrUTXH0(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
40、 Uart0_SendByten( int data) /发送一个字符的子函数定义发送一个字符的子函数定义 while(!(rUTRSTAT0 & 0 x2); /判断发送缓冲器是否为空,判断发送缓冲器是否为空, 未空则等待未空则等待.hudelay(10); /延时延时WrUTXH0(data); /发送数据发送数据接收一个字符的子函数为:接收一个字符的子函数为:char Uart0_Getchn( viod) /接收一个字符的子函数定义接收一个字符的子函数定义if (rUTRSTAT0 & 0 x1); /判断接收缓冲器是否有接收到数据判断接收缓冲器是否有接收到数据return RdURX
41、H0( ); / 有则返回接收到的数据有则返回接收到的数据elsereturn 0; /没有则返回没有则返回0计算机之间串行通信的硬件连接一般采用计算机之间串行通信的硬件连接一般采用RS-232C标标准,有如下两种基本连接方式:准,有如下两种基本连接方式: 简简单单连连接接完完全全连连接接S3C2410A UART与与RS232的连接的连接电平转换电路电平转换电路6.1.6 串口应用编程举例串口应用编程举例编程实现编程实现S3C2410与与PC机串行通信,在机串行通信,在PC机上通机上通过超级终端在键盘输入字符,由超级终端将字符过超级终端在键盘输入字符,由超级终端将字符经经PC机串口送到机串口
42、送到S3C2410的串口,的串口, S3C2410收到收到字符后再经字符后再经PC机串口将字符发回到超级终端显示。机串口将字符发回到超级终端显示。目标板初始化目标板初始化回车换行回车换行调串口接收调串口接收数据子函数数据子函数调串口发送调串口发送数据子函数数据子函数开始开始开始开始开始开始接收缓冲器有数据接收缓冲器有数据接收数据接收数据发送缓冲器空发送缓冲器空发送数据发送数据返回返回返回返回主程序主程序串口接收数据串口接收数据 子函数子函数串口发送数据串口发送数据 子函数子函数程序框图程序框图#include /包含字符处理库函数包含字符处理库函数#include /包含标准输入输出库函数包含
43、标准输入输出库函数#define 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) /定义串口
44、定义串口0的发送缓冲的发送缓冲器地址器地址#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(vo
45、id) /主函数主函数 char 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
47、 timeout) /串口串口0接收数据子函数接收数据子函数 while(!(rUTRSTAT0 & 0 x1); /串口串口0等待接收数据等待接收数据*Revdata=RdURXH0(); /串口串口0接收数据接收数据return TRUE; /串口串口0接收数据成功返回接收数据成功返回 串口串口0接收数据操作接收数据操作6.2 输入输入/输出端口输出端口主要内容主要内容概述概述寄存器寄存器应用举例应用举例一、概述一、概述S3C2410X有有117个输入个输入/输出端口输出端口。这些端口是:。这些端口是:A口(口(GPA):):23个输出口个输出口B口(口(GPB):):11个输入个输入/输
48、出口输出口C口(口(GPC):):16个输入个输入/输出口输出口D口(口(GPD):):16个输入个输入/输出口输出口E口(口(GPE):):16个输入个输入/输出口输出口F口(口(GPF):):8个输入个输入/输出口输出口G口(口(GPG):):16个输入个输入/输出口输出口H口(口(GPH):):11个输入个输入/输出口输出口这些端口都具有多功能,通过引脚配置寄存器,可以这些端口都具有多功能,通过引脚配置寄存器,可以将其设置为所需要的功能,如:将其设置为所需要的功能,如:I/O功能、中断功能等等。功能、中断功能等等。二、端口寄存器及引脚配置二、端口寄存器及引脚配置每一个端口都有每一个端口都
49、有4个寄存器,它们是:引脚配个寄存器,它们是:引脚配置寄存器、数据寄存器、引脚上拉寄存器等。置寄存器、数据寄存器、引脚上拉寄存器等。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寄存器为准备输出的数据寄存器为准备输出的数
50、据其值为其值为23位位22:0注意注意: (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
51、 0 x5600000C-端口端口A保留寄存器保留寄存器-1、端口、端口A寄存器及引脚配置寄存器及引脚配置位号位号 位位 名名 位值位值:0 1位号位号 位位 名名 位值位值:0 122GPA22输出输出nFCE10GPA10输出输出ADDR2521GPA21输出输出nRSTOUT9GPA9输出输出ADDR2420GPA20输出输出nFRE8GPA8输出输出ADDR2319GPA19输出输出nFWE7GPA7输出输出ADDR2218GPA18输出输出ALE6GPA6输出输出ADDR2117GPA17输出输出CLE5GPA5输出输出ADDR2016GPA16输出输出nGCS54GPA4输出输出A
52、DDR1915GPA15输出输出nGCS43GPA3输出输出ADDR1814GPA14输出输出nGCS32GPA2输出输出ADDR1713GPA13输出输出nGCS21GPA1输出输出ADDR1612GPA12输出输出nGCS10GPA0输出输出ADDR011GPA11输出输出ADDR26GPBDAT-为准备输出或输入的数据为准备输出或输入的数据其值为其值为11位位10:0GPBUP-端口端口B上拉寄存器,位上拉寄存器,位10:0有意义。有意义。 0:对应引脚设置为上拉:对应引脚设置为上拉1:无上拉功能:无上拉功能注意注意: 当当B口引脚配置为非输入口引脚配置为非输入/输出功能时,其寄存输出功
53、能时,其寄存器中的值没有意义。器中的值没有意义。2、端口、端口B寄存器及引脚配置寄存器及引脚配置Register Address R/W Description Reset Value GPBCON0 x56000010 R/W 端口端口B引脚配置寄存器引脚配置寄存器 0 x0 GPBDAT 0 x56000014 R/W 端口端口B数据寄存器数据寄存器- GPBUP0 x56000018 R/W 端口端口B上拉寄存器上拉寄存器0 x0RESERVED 0 x5600001C- 端口端口B保留寄存器保留寄存器-端口端口B引脚配置寄存器引脚配置寄存器位号位号位位 名名 位值位值:00 01 10
54、 1121,20GPB10输入输入输出输出nXDREQ0Reserved19,18GPB9输入输入输出输出nXDACK0Reserved17,16GPB8输入输入输出输出nXDREQ1Reserved15,14GPB7输入输入输出输出nXDACK1Reserved13,12GPB6输入输入输出输出nXBACKReserved11,10GPB5输入输入输出输出nXBREQReserved9,8GPB4输入输入输出输出TCLK0Reserved7,6GPB3输入输入输出输出TOUT3Reserved5,4GPB2输入输入输出输出TOUT2Reserved3,2GPB1输入输入输出输出TOUT1Re
55、served1,0GPB0输入输入输出输出TOUT0ReservedGPCDAT-为准备输出或输入的数据为准备输出或输入的数据其值为其值为16位位15:0GPCUP-端口端口C上拉寄存器,位上拉寄存器,位15:0有意义。有意义。 0:对应引脚设置为上拉:对应引脚设置为上拉1:无上拉功能:无上拉功能注意注意: 当当C口引脚配置为非输入口引脚配置为非输入/输出功能时,其寄存输出功能时,其寄存器中的值没有意义。器中的值没有意义。3、端口、端口C寄存器及引脚配置寄存器及引脚配置Register Address R/W Description Reset Value GPCCON0 x56000020
56、R/W 端口端口C引脚配置寄存器引脚配置寄存器 0 x0 GPCDAT 0 x56000024 R/W 端口端口C数据寄存器数据寄存器- GPCUP0 x56000028 R/W 端口端口C上拉寄存器上拉寄存器0 x0RESERVED 0 x5600002C- 端口端口C保留寄存器保留寄存器-端口端口C引脚配置寄存器引脚配置寄存器位号位号 位位 名名位位 值值位号位号 位名位名位位 值值000110110001101131,30 GPC15 输入输入 输出输出 VD7保留保留 15,14 GPC7 输入输入 输出输出 LCDVF2 保留保留29,28 GPC14 输入输入 输出输出 VD6保留
57、保留 13,12 GPC6 输入输入 输出输出 LCDVF1 保留保留27,26 GPC13 输入输入 输出输出 VD5保留保留 11,10 GPC5 输入输入 输出输出 LCDVF0 保留保留25,24 GPC12 输入输入 输出输出 VD4保留保留9,8 GPC4 输入输入 输出输出VM保留保留23,22 GPC11 输入输入 输出输出 VD3保留保留7,6 GPC3 输入输入 输出输出VFRAME保留保留21,20 GPC10 输入输入 输出输出 VD2保留保留5,4 GPC2 输入输入 输出输出VLINE保留保留19,18 GPC9 输入输入 输出输出 VD1保留保留3,2 GPC1
58、输入输入 输出输出VCLK保留保留17,16 GPC8 输入输入 输出输出 VD0保留保留1,0 GPC0 输入输入 输出输出VEND保留保留GPDDAT-为准备输出或输入的数据为准备输出或输入的数据其值为其值为16位位15:0GPDUP-端口端口D上拉寄存器,位上拉寄存器,位15:0有意义。有意义。 0:对应引脚设置为上拉:对应引脚设置为上拉1:无上拉功能:无上拉功能初始化时,初始化时,15:12无上拉功能,而无上拉功能,而11:0有上拉有上拉注意注意: 当当D口引脚配置为非输入口引脚配置为非输入/输出功能时,其寄存输出功能时,其寄存器中的值没有意义。器中的值没有意义。4、端口、端口D寄存器
59、及引脚配置寄存器及引脚配置Register Address R/W Description Reset Value GPDCON0 x56000030 R/W 端口端口D引脚配置寄存器引脚配置寄存器 0 x0 GPDDAT 0 x56000034 R/W 端口端口D数据寄存器数据寄存器- GPDUP0 x56000038 R/W 端口端口D上拉寄存器上拉寄存器0 xF000RESERVED 0 x5600003C- 端口端口D保留寄存器保留寄存器-端口端口D引脚配置寄存器引脚配置寄存器位号位号 位位 名名位位 值值位号位号 位名位名位位 值值000110110001101131,30GPD15
60、 输入输入 输出输出 VD23 nSS0 15,14 GPD7 输入输入输出输出 VD15 保留保留29,28GPD14 输入输入 输出输出 VD22 nSS1 13,12 GPD6 输入输入输出输出 VD14 保留保留27,26GPD13 输入输入 输出输出 VD21 保留保留 11,10 GPD5 输入输入输出输出 VD13 保留保留25,24GPD12 输入输入 输出输出 VD20 保留保留9,8 GPD4 输入输入输出输出 VD12 保留保留23,22GPD11 输入输入 输出输出 VD19 保留保留7,6 GPD3 输入输入输出输出 VD11 保留保留21,20GPD10 输入输入
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中职文秘(档案管理规范)试题及答案
- 2025年中职数字媒体技术应用(数字媒体操作)试题及答案
- 2025年大学酿酒工程(酿酒工程设计)试题及答案
- 2025年高职幼儿发展与健康管理(幼儿健康评估)试题及答案
- 2025年高职工业工程技术(生产流程优化)试题及答案
- 2025年中职(食品包装技术)包装设计阶段测试题及答案
- 2025年大学二年级(构造地质学)构造地质学试题及答案
- 2025年大学大三(旅游企业管理)管理策略实践测试试题及答案
- 2025年大学第四学年(工商管理)企业运营综合案例试题及答案
- 2025年高职(市场调查与分析)调查分析阶段测试题及答案
- 吉林省梅河口市五中2025-2026学年高二上学期期末语文试卷及答案
- 2026年共青团中央所属单位高校毕业生公开招聘66人备考题库及参考答案详解
- 2026年辽宁轨道交通职业学院单招综合素质笔试备考题库带答案解析
- 2026年6级英语模拟真题及答案
- 2025内蒙古鄂尔多斯市委政法委所属事业单位引进高层次人才3人考试题库含答案解析(夺冠)
- 2025年全国单独招生考试综合试卷(附答案) 完整版2025
- 2025-2026学年外研版八年级上册英语期末模拟考试题(含答案)
- 连锁超市总部部门岗位职责说明书
- 2024年包头轻工职业技术学院单招职业技能测试题库附答案解析
- 特许权使用费课件
- “五个带头”方面对照发言材料二
评论
0/150
提交评论