附件

  • 浏览量:720
  • 下载量:49
  • 资料大小:0 B
  • 日期:2015-08-30
  • 上传者:cztqwan
  • 分享
  • 评论
  • 举报
  • 收藏

资料描述

    一、简介


    串口作为mcu的重要外部接口,同时也是软件开发重要的调试手段, 其重要性不言而喻。现在基本上所有的mcu都会带有串口,s3c6410自然也不例外。


    s3c6410通用异步接收和发送器(uart)提供了四个独立的异步串行i / o端口。每个异步串行i/o端口通过中断或者直接存储器存取(dma)模式来操作。每个uart包含一个波特率发生器,发送器,接收器和控制单元。


    本讲介绍的是通过usb串口和电脑通信。实现利用串口0打印信息到电脑上,然后接收从串口发过来的数据,把发送过来的数据直接送回给电脑。 


    发射器和接收器包含64字节的fifo存储器和数据移位寄存器。发送数据之前,首先将数据写入fifo存储器,然后复制到发送移位寄存器。通过发送数据的引脚(txdn)将数据发送,同时,通过数据接收的引脚(rxdn)将接收到的数据从接收移位寄存器复制到fifo存储器。uart 的结构框图如下:





    串口最基本的设置,就是波特率的设置。串口的配置需要设置相应io口的模式,然后配置波特率,数据位长度,奇偶校验位等信息。下面,简单介绍下这几个与串口基本配置直接相关的寄存器。


    下面看一下要配置串口需要用到的寄存器:














    ulcon0是一个8位的寄存器,各位的含义如下图:





    这里需要设置为不使用红外模式,8位数据位,无较验位,无停止位。所以该寄存器的值应该设置为0x3。


    ucon0寄存器主要关心三个地方,10~11用来选择时钟源,低四位用来选择txd和rxd从uart缓冲寄存器读写数据的模式。





    这里需要设为pclk时钟源以及中断请求或轮询模式,所以该寄存器的值应该设为0x05。


    ufcon0用于设置fifo的属性,这里只使用最低位,置1使能fifo即可。


    umcon0用于流量控制,直接设为0即可。


    ubrdiv0和udivslot0都是和设置波特率有关的寄存器,这一点和stm32的波特率设置非常像。


    在手册上有这么一条公式:





    其中,num of 1’s in udivslotn指的是udivslotn中有多少位为1。


    本讲设置的串口波特率为115200,而从上一讲知道pclk 的频率为66.5mhz,所以div_val = 35.08,
评论(0)

登录后可评论,请 登录注册

   
相关资料
换一换