S3C2440的UART

发布者:phi31最新更新时间:2016-04-18 来源: eefocus关键字:S3C2440  UART 手机看文章 扫描二维码
随时随地手机看文章
S3C2440 的通用异步收发器(UART)配有3个独立异步串行I/O(SIO)端口

每个 UART 包含一个波特率发生器、发送器、接收器和一个控制单元

UART 基本工作原理
 内置波特率发生器,为串行数据的发送和接收提供时钟,根据这个时钟节拍,数据先写到FIFO中然后在拷贝到发送移位器中,在移位发送到引脚TxDn, 期间,发送过来的数据通过引脚RxDn进入移位器中然后拷贝到接收器的FIFO中

UART寄存器(详情见数据手册)
ULCONn(3个)
UCONn(3个)
UFCONn(3个)
UMCONn(2个)
UTRSTATn(3个)
UERSTATn(3个)
UFSTATn(3个)
UMSTATn(2个)
UTXHn(3个)
URXHn(3个)
UBRDIVn(3个)

存储在波特率分频寄存器中的值(UBRDIVn)是用于决定如下的串行Tx/Rx时钟率(波特率):  
 UBRDIVn = (int)( UART时钟 / ( 波特率 × 16) ) –1    
 ( UART时钟:PCLK,FCLK/n 或UEXTCLK )

一个例子(启动代码自己添加)

  1. #include "config.h"  
  2. #define PCLK 50000000  
  3.   
  4. void Uart0_Init(unsigned int bandrate)  
  5. {  
  6.     rGPHCON &=~((3<<4)|(3<<6));   
  7.     rGPHCON |=(2<<4)|(2<<6);    //GPH2--TXD[0];GPH3--RXD[0]  
  8.       
  9.     rGPHUP=0x00;        //使能上拉功能  
  10.       
  11.     rULCON0 |=0x03;     //8位数据,1位停止位  
  12.     rUCON0  = 0x05;  
  13.     rUBRDIV0= PCLK/bandrate/16-1;  
  14.     rURXH0 =0;      //清空UART0接收缓冲器    
  15. }  
  16.   
  17. void Sendchar(unsigned char c)  
  18. {  
  19.     rUTXH0=c;       //写入UART0发送缓冲器  
  20.     while(!(rUTRSTAT0 & (1<<2))); //等待字符发送完  
  21. }  
  22.   
  23. unsigned char Getchar(void)  
  24. {  
  25.     unsigned char c;  
  26.     while(!(rUTRSTAT0 & (1<<0))); //等待接收字符  
  27.     c=rURXH0;   //接收缓冲器的字符  
  28.     return c;  
  29. }  
  30.   
  31. int Main()  
  32. {  
  33.     unsigned char Z_char;  
  34.     Uart0_Init(115200);  
  35.     while(1)  
  36.     {  
  37.         Z_char=Getchar();  
  38.         Sendchar(Z_char);  
  39.           
  40.     }  
  41.     return 0;  
  42. }  


 

 

关键字:S3C2440  UART 引用地址:S3C2440的UART

上一篇:S3C2440 功能函数的使用
下一篇:S3C2440启动代码执行顺序

推荐阅读最新更新时间:2024-03-16 14:50

S3C2440中断与异常定义与基本知识
1. S3C2440中断初始化: #define BIT_ALLMSK (0xffffffff) void Isr_Init(void) { pISR_UNDEF=(unsigned)HaltUndef; pISR_SWI =(unsigned)HaltSwi; pISR_PABORT=(unsigned)HaltPabort; pISR_DABORT=(unsigned)HaltDabort; rINTMOD=0x0; // All=IRQ mode Address:0x4A000004 =1 FIQ mode; =0 IRQ mode rINTMSK=BIT_ALLMSK; // All interrupt is ma
[单片机]
S3C2440初始化时钟设置
S3C2440 CPU默认的工作主频为12MHz或16.9344MHz,在我的2440的开发板上上使用的是12MHZ,这里使用最多的也是12M。使用PLL电路可以产生更高的主频供CPU及外围器件使用。 S3C2440有两个PLL:MPLL和UPLL,UPLL专用与USB设备。MPLL用于CPU及其他外围器件。 通过MPLL会产生三个部分的时钟频率:FCLK、HCLK、PLCK。FCLK用于CPU核,HCLK用于AHB总线的设备(比如SDRAM),PCLK用于APB总线的设备(比如UART)。 设置S3c2440的时钟频率就是设置MPLL的几个寄存器: 1、LOCKTIME:设为0x00ffffff
[单片机]
s3c2440硬件篇之八:ADC和触摸屏接口
ADC和触摸屏接口 一。简介:S3C2440的CMOS模数转换器可以接收8个通道的模拟信号的输入,并将其转换为10位的二进制数据。在2.5MHZ的A/D转换时钟下,最大的转换速率可以达到500KSPS(SPS:samples per second,每秒采样的次数)。 我们从上面的结构图和数据手册可以知道,该ADC模块总共有8个通道可以进行模拟信号的输入,分别是AIN0、AIN1、AIN2、AIN3、YM、YP、XM、XP。那么ADC是怎么实现模拟信号到数字信号的转换呢?首先模拟信号从任一通道输入,然后设定寄存器中预分频器的值来确定AD转换器频率,最后ADC将模拟信号转换为数字信号保存到ADC数据寄存器0中(ADCDA
[单片机]
<font color='red'>s3c2440</font>硬件篇之八:ADC和触摸屏接口
stm8s开发(三) UART的使用:串口通信!
串口通信是单片机学习的一个最基本、最重要的功能之一。串口通信可以间接的当做调试接口使用,实现单片机与电脑之间的通信。当然可以与一些模块(比如蓝牙、wifi)通信,也可以作为和其他单片机通信的工具。 STM8S的通用异步收发器(UART)主要特性: ● 全双工的,异步通信 ● 可编程数据字长度(8位或9位) ● 可配置的停止位-支持1或2个停止位 一般的,我们使用串口通信主要是关心几点参数:波特率、停止位、奇偶校验位。 其次就是如何发送、如何接收数据,这里介绍的使用阻塞式发送数据、中断方式接收数据。 以下代码是初始化串口,参数为:115200 1停止位 无校验位 void Init_UART1(void)
[单片机]
stm8s开发(三) <font color='red'>UART</font>的使用:串口通信!
ARM7学习---LPC2103 UART0中断接收
花了差不多一天的时间在研究LPC2103的串口中断接收程序,终于搞定了,从昨天晚上一直在看资料和调试,到今天中午又好好的研究了下,终于把串口中断接收程序搞定了。哈哈!比较高兴!现在把调试成功的程序记录下来,以作以后学习的参考。接下来可以继续移植我的GPS串口接收程序了。我是在Keil for ARM编译环境中调试的,具体程序如下: /**************ARM7(LPC2103)练习程序**************************/ /************************************************************************/ /*****File Functio
[单片机]
STM8 通用异步收发器(UART)
STM8 UART介绍 STM8S微控制器家族的通用同步异步收发器(UART1,UART2或UART3)提供了一种灵活的方法与使用工业标准NRZ异步串行数据格式的外部设备之间进行全双工数据交换。STM8的UART提供宽范围的波特率选择,并且支持多处理器讯。UART也支持LIN(局部互连网)协议版本1.3,2.0和2.1以及在主模式下的J2602。UART1和UART2具有以下扩展特征(见表47) UART2和UART3支持LIN从模式。 UART1和UART2支持同步单向通信,也支持智能卡协议和IrDA(红外数据组织)SIR ENDEC规范。 UART1支持半双工单线通讯。 关于每个STM8微控制器型号中的可用UART配
[单片机]
STM8 通用异步收发器(<font color='red'>UART</font>)
s3c2440裸机触摸屏
1.0、触摸屏与LCD 触摸屏与lcd是两个独立的屏,但是他们之间有对应关系,简单的说就是一个触摸屏的坐标点对应lcd的一个像素点,这样当我们按下触摸屏后,系统通过计算得到该地方的坐标,然后通过对应关系找到相应位置的lcd显示的内容。因为触摸屏和lcd是独立的,总是因为一些物理的原因会有一些位置上的改变,所以这种对应关系不是不变的,我们可以通过开机的时候的校验来确定这种关系,比如 LCD上每个点PD的坐标为 ,触摸屏上每个点PT的坐标为 。要实现触摸屏上的坐标转换为LCD上的坐标,需要下列公式进行转换: XD=A×XT+B×YT+C YD=D×XT+E×YT+F 这样我们只有确定了ABCDEF六个参数我们就可以
[单片机]
UART多串口扩展器SP2338DP及其应用
摘要:SP2338DP是一种新颖的串口扩展器,可将一个高波特率的UART扩展为3个,解决了普通单片机UART串口太少的问题。文中给出该器件的主要特性、引脚说明及应用说明,并以AT89C52单片机为例给出多串口扩展应用电路及相应软件。 关键词:UART 串口扩展 单片机 1 概述 当前,以单片机为核心构成的智能化测控系统及电子产品不断涌现,为了满足数字化及智能化要求,许多外围电路功能模块、部件、器件及传感器也具备了UART串口通信功能。而现阶段的8位、16位、32位单片机却大部分仅提供一个UART串口,这样就很难满足系统中一方面要与具有UART功能的串口部件通信,另一方面又要与上位机通信的要求。利用SP2338DP多串口扩展器
[应用]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved