MCU_S3C2410之UART分析

发布者:SereneWanderer最新更新时间:2016-08-03 来源: eefocus关键字:MCU  S3C2410  UART分析 手机看文章 扫描二维码
随时随地手机看文章
功能分析

寄存器分析

代碼分析

///////////////////////////////////////////////////////////////////////UART 初始化/////////////////////////////////////////////////////////////////////////////////////

void Uart_Init(int pclk,int baud)
{
 int i;
 if(pclk == 0)
 pclk = PCLK;       //APB IS USED FOR APB
 rUFCON0 = 0x0; //关闭UART0的FIFO
 rUFCON1 = 0x0; //关闭UART1的FIFO
 rUFCON2 = 0x0; //关闭UART2的FIFO

MCU_S3C2410之UART分析 - smalming - SmalmingS Blog

 

 


 rUMCON0 = 0x0;//关闭UART0自动流控制AFC (一般不进行握手协议控制)
 rUMCON1 = 0x0;//关闭UART1自动流控制AFC (UART2没有自动流控制功能)

MCU_S3C2410之UART分析 - smalming - SmalmingS Blog


 


 //UART0
 rULCON0 = 0x3; //Normal,No parity,1 stop bit,8 bits data基本协议控制

MCU_S3C2410之UART分析 - smalming - SmalmingS Blog

 


 rUCON0 = 0x245;

MCU_S3C2410之UART分析 - smalming - SmalmingS Blog

MCU_S3C2410之UART分析 - smalming - SmalmingS Blog

 

Transmit MODE:发送模式有请求中断发送和请求DMA发送

TX interrupt Type :当发送保持寄存器为空时(Non-FIFO MODE)或达到TX FIFO触发水平时触发中断的电平类型

(TX FIFO触发水平:00 = Empty  01 = 4-byte  10 = 8-byte  11 = 12-byte  in  UFCONn)

 

Receive  MODE 接收模式有请求中断读取和请求DMA读取

RX interrupt Type :当接收保持寄存器为空时(Non-FIFO MODE)或达到RX FIFO触发水平时触发中断的电平类型(RX FIFO触发水平:00 = 4-byte  01 = 8-byte  10 = 12-byte  11 = 16-byte  in  UFCONn)

 

 

 rUBRDIV0=( (int)(pclk/16/baud) -1 );

MCU_S3C2410之UART分析 - smalming - SmalmingS Blog


 
 //UART1
 rULCON1 = 0x3;
 rUCON1  = 0x245;
 rUBRDIV1=( (int)(pclk/16/baud) -1 );
   


 //UART2
  rULCON2 = 0x3;
  rUCON2  = 0x245;
  rUBRDIV2=( (int)(pclk/16/baud) -1 );
    
    for(i=0;i<100;i++);
}

总结UART的控制寄存器:有ULCON、UCON、UFCON、UMCON、UBRDIV

///////////////////////////////////////////////////////////////////////UART 初始化////////////////////////////////////////////////////////////////////////////////////

 

 

 

 

 

 

///////////////////////////////////////////////////////////////////////UART 发送////////////////////////////////////////////////////////////////////////////////////

void Uart_SendByte(int data)
{
    if(whichUart==0)
     {
         if(data==' ')
         {
              while(!(rUTRSTAT0 & 0x2));

MCU_S3C2410之UART分析 - smalming - SmalmingS Blog

non FIFO=1 Byte BUFFER REGISTER(HOLDING REGISTER)+SHIFTER REGISTER

FIFO mode = 16 Byte BUFFER REGISTER(FIFO REGISTER)+SHIFTER REGISTER


              Delay(10);                 //because the slow response of hyper_terminal 
              WrUTXH0(' ');

MCU_S3C2410之UART分析 - smalming - SmalmingS Blog
         }
         while(!(rUTRSTAT0 & 0x2));   //Wait until THR is empty.
         Delay(10);
          WrUTXH0(data);
     }
     else if(whichUart==1)
     {
         if(data==' ')
         {
              while(!(rUTRSTAT1 & 0x2));
              Delay(10);                 //because the slow response of hyper_terminal 
              rUTXH1 = ' ';
         }
         while(!(rUTRSTAT1 & 0x2));   //Wait until THR is empty.
         Delay(10);
         rUTXH1 = data;
    }   
     else if(whichUart==2)
     {
         if(data==' ')
         {
              while(!(rUTRSTAT2 & 0x2));
              Delay(10);                 //because the slow response of hyper_terminal 
              rUTXH2 = ' ';
         }
         while(!(rUTRSTAT2 & 0x2));   //Wait until THR is empty.
         Delay(10);
         rUTXH2 = data;
     }       
}         

///////////////////////////////////////////////////////////////////////UART 发送////////////////////////////////////////////////////////////////////////////////////

 

 

 

 

 

///////////////////////////////////////////////////////////////////////UART 接收////////////////////////////////////////////////////////////////////////////////////

char Uart_Getch(void)

{
     if(whichUart==0)
     {       
         while(!(rUTRSTAT0 & 0x1)); //Receive data ready
         return RdURXH0();

MCU_S3C2410之UART分析 - smalming - SmalmingS Blog
     }
     else if(whichUart==1)
     {       
         while(!(rUTRSTAT1 & 0x1)); //Receive data ready
         return RdURXH1();
     }
     else if(whichUart==2)
     {
         while(!(rUTRSTAT2 & 0x1)); //Receive data ready
         return RdURXH2();
     }

 

///////////////////////////////////////////////////////////////////////UART 接收////////////////////////////////////////////////////////////////////////////////////

总结UART有状态寄存器UTRSTAT、UERSTAT、UFSTAT、UMSTAT

有数据寄存器UTXH和URXH

关键字:MCU  S3C2410  UART分析 引用地址:MCU_S3C2410之UART分析

上一篇:MCU_S3C2410之中断控制
下一篇:S3C2410时钟&电源管理单元

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

单片机设计要注意的事项总结
单片机的设计要注意的事项 1.降低外时钟频率 外时钟是高频的噪声源,除能引起对本应用系统的干扰之外,还可能产生对外界的干扰,以8051单片机为例 最短指令周期1μs时,外时钟是12MHz。而同样速度的Motorola 单片机系统时钟只需4MHz微控制器产生的最有影响的高频噪声大约是时钟频率的3倍 2.低噪声系列单片机 改进的技术将电源、地安排在两个相邻的引脚上,外部去耦电容在PCB设计上更容易安排 3.时钟监测电路、看门狗技术与低电压复位 时钟监控有效与省电指令STOP是一对矛盾。只能使用其中之一。 看门狗技术是监测应用程序中的一段定时中断低电压复位技术是监测单片机电源电压,当电压低于某一值时产生复位信号。由于单片机
[单片机]
PIC单片机以及51和AVR单片机的IO口操作方法解析
对于pic单片机的学习,很多朋友总是能充满激情,不断利用闲余时间研究pic单片机的各类技术。而谈及pic单片机,必须牵扯至51、AVR单片机。因此本文中,将探讨pic单片机以及51、AVR单片机对于IO口的操作。对于本文,希望大家认真研读,以在pic单片机的学习之路上更为精进。 一.51单片机IO口的操作 51单片机IO口的结构比较简单,每个IO口只有一个IO口寄存器Px,而且这个寄存器可以位寻址,操作起来是所有单片机里最简单的,可以直接进行总线操作也可以直接进行位操作,这也是51单片机之所以成为经典的原因之一。下例的运行坏境为Keil软件,器件为AT89S52。 #i nclude sbit bv=P2^0;//定义位变量
[单片机]
PIC<font color='red'>单片机</font>以及51和AVR<font color='red'>单片机</font>的IO口操作方法解析
51单片机——单总线OneWrite、DS18B20温度传感器 C语言入门编程
单总线OneWrite: (1)初始化时序: 单总线上的所有通信都是以初始化序列开始。主机输出低电平,保持低电平时间至少480us(该时间的时间范围可以从480到960微妙),以产生复位脉冲。接着主机释放总线,外部的上拉电阻将单总线拉高,延时15~60us,并进入接收模式。接着DS18B20拉低总线60~240us,以产生低电平应答脉冲,若为低电平,还要做延时,其延时的时间从外部上拉电阻将单总线拉高算起最少要480微妙。 (2)写时序: 写时序包括写0时序和写1时序。所有写时序至少需要60us,且在2次独立的写时序之间至少需要1us的恢复时间,两种写时序均起始于主机拉低总 线。写1时序:主机输出低电平,延时2us,然后释放总
[单片机]
51<font color='red'>单片机</font>——单总线OneWrite、DS18B20温度传感器 C语言入门编程
TI FPGA 扩展板可体验Stellaris MCU 的接口功能
日前,德州仪器 (TI) 宣布推出专用于 DK-LM3S9B96 开发套件的新型 Stellaris FPGA 扩展板,可显着加速开发低成本安全接入控制系统及其它需要高速外部处理单元接口的应用。这款全新电路板使开发人员能够轻松评估 Stellaris 微处理器 (MCU) 高灵活性外设接口 (EPI) 的高带宽机器对机器 (M2M) 并行接口功能。EPI 的 M2M 模式可支持高达 32 位的数据宽度以及高达每秒 150 MB 的数据速率,专用于帮助低成本安全接入控制应用的开发人员将摄像系统或低分辨率视频与 Stellaris MCU 接口相连,以为经处理的编码影像提供高性价比的以太网通信功能。在上述系统中,专用的视频处理任
[单片机]
MSP432E401Y单片机智能小车PID调速代码
* MSP432E401Y * Description:PID处理函数 * 引脚: * * Author: Robin.J ***************************************************************************/ #include PID.h #include ti/devices/msp432e4/driverlib/driverlib.h float iError_l , iIncpid_l; //当前误差 float iError_r , iIncpid_r; //当前误差 float variable_l; float variab
[单片机]
单片机控制的简易单相逆变电源
    摘要: 文章介绍了用AT89C1051单片机控制的单相逆变器电源的设计文字,该方案通过消谐PWM控制可使逆变电源的输出谐波明显减少,并经小容量的高通滤波后即可得到高质量的正弦波电压输出。该电源通过单相电机的运行试验证明,效果良好,而且结构简单、成本低廉、性能稳定可靠,具有一定的实用价值。     关键词: 逆变电源 消谐控制 单片机 AT89C1051 1 概述 消除输出电压谐波是逆变电源PWM控制的主要目的之一。在此方面,单相逆变电源的结构较三相电源简单,PWM控制也更为方便,因而在单片机的控制下实现PWM的调节策略十分有效。然而,从控制系统的结构和硬件成本方面应考虑采用什么控制算法才能使逆变电
[应用]
MCU将如何在未来十年推进边缘人工智能的发展
微控制器 (MCU) 正在日益推进端点智能化变革。那么,对 MCU 未来十年有何期待?日前瑞萨电子战略市场业务拓展总监Carmelo Sansone做了七个关键预测,本文编译自 https://www.embedded.com/how-mcus-will-advance-endpoint-intelligence-over-the-next-decade/ 以下是文章详情: 对于每台计算机和智能手机,微处理器一直是嵌入式系统中最核心部分,并且无论是在低功耗还是智能化上的需求都最为迫切,但目前微控制器也加入到边缘智能这一浪潮中,并且相比SoC的功耗、成本、面积等优势更为明显 微控制器最近在工业设备的预测性维护和消费产品的
[单片机]
<font color='red'>MCU</font>将如何在未来十年推进边缘人工智能的发展
基于单片机和CAN总线的智能家居控制系统
  1 引言   智能家居于20 世纪80 年代兴起于日本和欧美,于90 年代末进入中国,伴随着经济的发展和人们生活水平的提高逐渐为国人所了解和接受。目前国内的各种智能化系统和产品较多,但各系统相互独立,集成度较低,彼此联系不大。比如楼宇对讲系统、安防系统、家用电器自动控制系统等,都各有自己的终端,没有统一的智能控制平台。对用户而言,这种状况增加了使用成本和操作的复杂性;对施工而言,则导致了重复布线。本文针对此种状况,设计一种采用单片机AT89C52 为控制核心,利用原有的电话网络,将楼宇对讲、安防报警和电话远程监控系统集成起来,形成一个统一的智能控制平台,并通过CAN 总线组网与门口机和管理机相连,能实现楼宇对讲、电话远程监控和报
[嵌入式]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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