ARM·UART

发布者:心怀梦想最新更新时间:2015-11-17 来源: eefocus关键字:ARM  UART  初始化 手机看文章 扫描二维码
随时随地手机看文章
【本章内容】
 
【代码详解】
 
【UART初始化】
1)选定uart输出的管脚
2)ULCON (红外传输,奇偶校验,数据位,停止位)
3)UCON(不知道他怎么设置的,先照抄吧,完全没看懂)
4)UFCON(不使用UART FIFO)
#include "s3c24xx.h"
#include "serial.h"
 
#define TXD0READY   (1<<2)
#define RXD0READY   (1)
 
#define PCLK            50000000    // init.c中的clock_init函数设置PCLK为50MHz
#define UART_CLK        PCLK        //  UART0的时钟源设为PCLK
#define UART_BAUD_RATE  115200      // 波特率
#define UART_BRD        ((UART_CLK  / (UART_BAUD_RATE * 16)) - 1)
 
void uart0_init(void)
{
    GPHCON  |= 0xa0;    // GPH2,GPH3用作TXD0,RXD0 (1010 0000)
    GPHUP   = 0x0c;     // GPH2,GPH3内部上拉     (0000 1100)
 
    ULCON0  = 0x03;     // 8N1(8个数据位,无较验,1个停止位) (0000 0011)
    UCON0   = 0x05;     // 查询方式,UART时钟源为PCLK       ( )
    UFCON0  = 0x00;     // 不使用FIFO
    UMCON0  = 0x00;     // 不使用流控
    UBRDIV0 = UART_BRD; // 波特率为115200
}
 
void putc(unsigned char c)
{
   
    while (!(UTRSTAT0 & TXD0READY));
    
   
    UTXH0 = c;
}
 
unsigned char getc(void)
{
   
    while (!(UTRSTAT0 & RXD0READY));
    
   
    return URXH0;
}
 
int isDigit(unsigned char c)
{
    if (c >= '0' && c <= '9')
        return 1;
    else
        return 0;       
}
 
int isLetter(unsigned char c)
{
    if (c >= 'a' && c <= 'z')
        return 1;
    else if (c >= 'A' && c <= 'Z')
        return 1;       
    else
        return 0;
}
 
【main.c】
 
#include "serial.h"
 
int main()
{
    unsigned char c;
    uart0_init();   // 波特率115200,8N1(8个数据位,无校验位,1个停止位)
 
    while(1)
    {
        // 从串口接收数据后,判断其是否数字或子母,若是则加1后输出
        c = getc();
        if (isDigit(c) || isLetter(c))
            putc(c+1);
    }
 
    return 0;
}
 
【实验素材】
  1)GPH
 
【ARM·UART】
2)ULCON
3)UCON
 
【ARM·串行接口电路】
 
【ARM·UART】
【ARM·UART】
4)UFCON
【ARM·UART】

【ARM·UART】
5)UMCON
【ARM·UART】
6)UBRDIV
【ARM·UART】
 
7)
【ARM·UART】
对于UTRSTATx寄存器中的0,1空和非空的问题,无须纠缠太多,只要记住为“1”才可读,才可写即可。
 
(8)【UTXHn/URXHn】
UTXHn寄存器:SOC将数据写入这个寄存器,UART会将它保存到发送移位寄存器中,并自动发送出去;
URXHn寄存器:当UART收到数据时,SOC读取这个寄存器,即可获得数据
(详细可参考S3C2440全套中文手册)
关键字:ARM  UART  初始化 引用地址:ARM·UART

上一篇:ARM·系统时钟(MPLL,UPLL)
下一篇:uCOS-II在STM32上的移植步骤

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

基于ARM Linux的图像采集与蓝牙传输
嵌入式Linux系统具有可移植性好、网络功能强、优秀的GNU编译工具、免费的开放源代码等优点。S3C2410处理器是一款采用ARM920T结构,内部资源非常丰富的32位嵌入式处理器。USB摄像头具有低廉的价格,良好的性能,加上Linux下有V4L支持对其编程,很容易集成到嵌入式系统中。蓝牙技术是目前被认可的短距离无线通信技术,广泛应用于手机、电脑以及汽车免提系统。 本文介绍基于嵌入式Linux的USB图像采集系统,并通过构建好的嵌入式Linux下的蓝牙环境将采集到的图片传送到蓝牙手机上,实现监控功能。 1 软硬件平台概述 系统硬件平台如图1所示。该平台软件上采用嵌入式Linux操作系统;硬件上采用Samsung公司的S3C2
[嵌入式]
新手入门ARM汇编 没你想象的那么难
笔者对C已经有10多年的经验,汇编用的很少。后来因为项目需要转到了ARM。一开始对ARM什么都不懂,看了本《ARM体系结构与编程》也是云里雾里的。但是也许是因为无知者无畏吧,直接就在mdk中建立一个工程,添加了自带的启动文件,然后做了个main函数,里面一个死循环没有操作任何硬件,居然跑起来了。然后以此为基础,慢慢的开始控制GPIO和串口通信。 其实,开发ARM还是很简单的,特别是使用mdk的话,会C语言也就能做一些简单的开发了。不要被那些稀奇古怪的东西给搞糊涂了。边开发边学习,项目做深了,那些东西自然就懂了。 罗嗦这么久,说几点建议吧: 1、ARM的汇编没必要去精通的,能够大概看懂就行了。如果一个速度要求苛刻到需要使
[单片机]
ARM寄存器的操作方法
#define GPIOCOUT *((volatile unsigned int *)0xc001c000) #define GPIOCOUTENB *((volatile unsigned int *)0xc001c004) #define GPIOCALTFN0 *((volatile unsigned int *)0xc001c020) void delay(unsigned int); void led_test(void) { /*配置选择GPIOC12管脚的功能1*/ GPIOCALTFN0 &= ~(3 24);//清0 bit24 25 GPIOCALTFN0 |= (1 24);//置1
[单片机]
基于ARM9的中央空调网络集中控制器研究
  单片机是单片微型计算机(Single-Chip Microcomputer)的简称,是一种将中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)采用超大规模集成电路技术集成到一块硅片上构成的微型计算机系统。 为控制核心的单机组控制器,即一个控制器只能控制一台中央空调机组,这种控制方法控制简单,但是在多层或者较大型的建筑中控制能力就显得力不从心了。近年来也出现了采用ARM7 处理器作为控制芯片的集中控制器,但是在此所采用的ARM9 处理器比ARM7 处理器又有了许多优点,如ARM9 处理器采用5 级
[工业控制]
基于<font color='red'>ARM</font>9的中央空调网络集中控制器研究
基于ARM和CPLD的开放式数控系统设计
随着工业自动化技术和数控技术的飞速发展,数控系统的功能得到了极大的扩展。用户对数控系统提出可联网、开放性等更高的要求。开放性是数控系统未来的发展趋势。开放式数控系统的核心是建立一种对数控系统的软硬件开发商、机床制造商和最终用户都开放的体系结构和标准,使数控系统不依赖于特定的厂家,达到可互联、可互操作、可重组和可互换的目的 。基于工业PC的开放式数控系统已得到广泛运用,它能够快速开发出独具特色的软件系统,具有良好的人机界面,但资源利用率不高、体积较大、携带不方便。ARM、CPLD和DSP等微处理器的快速发展,为开放式数控系统的发展提供了新的实现方法 。 ARM具有较强的事务管理功能,可以运行具有良好人机界面的多线程应用程序
[工业控制]
ARM全新DSTREAM-HT仿真器!带你看懂DSTREAM系列产品差异
DSTREAM-HT是ARM公司的一款高速占用引脚少的仿真调试器,更快速更少的引脚:非常适合收集大量追踪数据,其中SoC引脚数排除了并行追踪。捕获多个高速串行追踪通道(HSSTP)以启用软件分析,配合arm DS-5可对所有的ARM内核芯片进行开发。 优势功能 快速的数据传输:高达12.5 Gbps的单通道线路速率(60 Gbps组合通道速率),可配置和捕获CoreSight和自定义IP设备的详细追踪信息; 更少的追踪引脚:在单通道上 - 2个引脚 - HSSTP可以以与16引脚并行追踪端口相当的速率传输追踪数据; 支持多种协议:支持Arm HSSTP和Marve
[物联网]
<font color='red'>ARM</font>全新DSTREAM-HT仿真器!带你看懂DSTREAM系列产品差异
MC9S12G128 ADC
/***************************************************************** ** 函数名: AD_Init() ** 参 数:无 ** 功 能:AD初始化 ** 注 意: ******************************************************************/ void AD_Init(void) { //8路通道 ATDCTL1=0x20; //7:1-外部触发,65:00-8位精度,01-10位精度,4:放电,3210:ch ATDCTL2=0x40; //忽略外部触发,中断禁止 A
[单片机]
MC9S12G128 ADC
基于ARM的医用数据采集系统的人机接口设计
引言   医用数据采集系统能够为医务人员及时有效的提供患者的第一手数据,有助于加强医院的现代化信息管理和提高工作效率。而在家庭保健方面,它能够满足人们在快节奏的工作生活中及时准确的获知自身及家人的健康状况。在设备的日常使用中,良好的人机接口设计,也将为设备使用人员节约大量的时间并提供极大的便捷。本文主要以LM3S3748为核心,并采用TFT液晶作为系统的显示设备,而用触摸屏和手柄控制器作为系统的控制设备,介绍了其人机接口的设计方法。   1 系统硬件设计   系统人机接口主要包括TFT液晶、触摸屏和手柄控制器,其结构框图如图1所示。其中TFT液晶亮度好,对比度高,层次感强,颜色鲜艳,因此,在不考虑耗电的情况下,TFT液晶是一
[嵌入式]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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