S3C2440串口通信基本功能的代码

发布者:清新自然最新更新时间:2024-07-18 来源: cnblogs关键字:S3C2440  串口通信  基本功能 手机看文章 扫描二维码
随时随地手机看文章

功能:将通过串口接收到的内容再发送出去,在PC机上看到的现象就是在串口通信软件中输入什么就会实时地显示什么。


主文件:serial.c


 1 //最常用的寄存器是ULCON、UCON、UBRDIV、UTRSTAT、UTXH、URXH这六个寄存器

 2 #define ULCON0         (*(volatile unsigned *)0X50000000)     //UART线控制寄存器

 3 #define UCON0          (*(volatile unsigned *)0X50000004)     //UART控制寄存器

 4 #define UFCON0         (*(volatile unsigned *)0X50000008)     //FIFO控制寄存器

 5 #define UTRSTAT0     (*(volatile unsigned *)0X50000010)     //UART状态寄存器

 6 #define UBRDIV0     (*(volatile unsigned *)0X50000028)    //波特率

 7 #define UTXH0          (*(volatile unsigned *)0X50000020)

 8 #define URXH0          (*(volatile unsigned *)0X50000024)

 9 //还有UMCON、UERSTAT、UFSTAT、UMSTAT这四个寄存器,有需要的话再设置不迟

10 

11 #define GPBDAT         (*(volatile unsigned *)0X58000054)

12 

13 int TSmain()

14 {

15     char buf;

16     

17     ULCON0 &=0XFFFFFF00;     //不使用红外模式,使用正常模式+无校验位+1位停止位

18     ULCON0 |=0X03;           //8位数据位

19     

20     UCON0  =0X0805;          //串口时钟PCLK,发送与接收的中断类型均为pulse,禁止接收超时中断,禁止接收错误中断,不使用loopback模式,使用正常模式,查询方式

21                              //不发送break signal,发送模式与接收模式均为中断响应或轮询模式

22     

23     //UFCON的默认值是关闭FIFO,所以如果不用的话可以直接不设置即可

24     

25     //UBRDIV如何设定?UBRDIV=(int)(用户通过UCON设定的UART时钟/(用户想要的波特率*16))-1

26     UBRDIV0 =0X1A;           //波特率115200

27     

28     while(1)

29     {  

30         //UTRSTAT寄存器既有表示接收缓冲区状态的bit,也有表示发送缓冲区状态的bit。

31         if(UTRSTAT0 & 0X01)  //UTRSTAT的[0]位用于表示接收缓冲区是否就绪,=0表示缓冲区为空,可以接收了,=1表示缓冲区内有数据,暂时不能接收。

32         {

33             buf=URXH0;       //URXH为接收缓冲区寄存器,缓冲区共8bit=2Byte,

34             while(!(UTRSTAT0 & 0X04));//UTRSTAT[3]=1时表示发送缓冲区与发送移位寄存器都为空,可以放入数据进行发送,=0时表示暂时不为空,不能放入数据。

35             UTXH0=buf;//将接收到的数据再发送出去

36             

37         } 

38     }

39     return 0;

40 }


上电后运行的初始汇编代码init.s:


    AREA |DATA|,CODE,READONLY

    ENTRY

    ldr r13,=0x1000

    IMPORT TSmain

    b TSmain

    END


关键字:S3C2440  串口通信  基本功能 引用地址:S3C2440串口通信基本功能的代码

上一篇:uboot在s3c2440上的移植(2)
下一篇:Uboot S3C2440 BL1 的流程

推荐阅读最新更新时间:2024-11-16 20:37

ARM9(S3C2440) ADC
模拟信号/数字信号 (1)、模拟信号是一种在时间上连续,数值上也连续的物理量,具有无穷多的数值,从自然界感知的大部分物理量都是模拟性质的,如速度,压力,温度,声音等。 (2)、数字信号在时间上和数值上均是离散的,而离散信号的值只有真与假,是或不是,因此可以使用二进制中的0与1来表示 。 ADC驱动流程 ADC主要驱动程序 main.c #define ADC_FREQ 2500000 void Main(void) { /*时钟初始化*/ Set_Clk(); /*adc初始化*/ adc_init(); while(1) {
[单片机]
ARM9_S3C2440学习(四)FIQ和IRQ区别
ARM 处理器有 FIQ和 IRQ 两级外部中断,它们都是由对电平敏感的低电平(LOW)信号激活进入处理器的。为了产生中断,CPSR 中的相应禁用位必须清零。 快速中断请求(Fast Interrupt Request,FIQ),IRQ全称为Interrupt Request,即是“中断请求”的意思。 FIQ 的优先级比 IRQ高,具体表现如下: (1)当发生多个中断时,首先处理 FIQ。 (2)处理 FIQ会导致禁用 IRQ 和后续 FIQ,在 FIQ处理程序启用之前,不会处理 IRQ 和后续 FIQ。这通常是通过在处理程序结束时从 SPSR恢复 CPSR来完成的。 FIQ 向量是向量表的最后一个入口,因此
[单片机]
STM32之串口通信之printf重定向
当我们在学习一款CPU时,最经典的实验莫过于流水灯了,掌握流水灯的话就基本等于学会操作I/O口了,那么在学会I/O之后,相对于我们来说会把学习串口的操作放在第二位。在程序运行的时候我们可以点亮一个LED来显示代码的执行状态,但有时候我们还想把某些中间量后者其他程序状态信息打印出来显示在计算机上,那么这时候串口的作用就可显而知了。 下面我们来看一下什么是串口 串行接口简称串口,也称串行通信接口或串行通讯接口(通常指COM接口),是采用串行通信方式的扩展接口。串行接口 (Serial Interface) 是指数据一位一位地顺序传送,其特点是通信线路简单,只要一对传输线就可以实现双向通信(可以直接利用电话线作为传输线),从而大大降
[单片机]
11.S3C2440 中断实验(一)und和swi实验
S3C2440 中断体系结构 ARM的7种工作模式 用户模式(usr):ARM处理器正常的程序执行状态 快速中断模式(fiq):用于高速数据传输或通道处理 中断模式(irq):用于通用的中断处理 管理模式(svc):操作系统使用的保护模式 数据访问终止模式(abt):当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护 系统模式(sys):运行具有特权的操作系统任务 未定义指令终止模式(und):当未定义的指令执行时进入该模式,可用于支持硬件协处理器的软件仿真 除了用户模式之外,其他的6种工作模式都属于特权模式。大多数程序运行于用户模式,进入特权模式是为了处理中断、异常或者访问被保护的系统资源。 当发
[单片机]
11.S3C2440 中断实验(一)und和swi实验
51单片机RS232串口通信代码分析
一、串口初始化 void usart_init() { SCON = 0x50; //REN=1允许串行接受状态,串口工作模式1 TMOD = 0x20; //定时器工作方式2 PCON = 0x00; TH1 = 0xFD; //波特率9600、数据位8、停止位1。效验位无 (11.0592M) TL1 = 0xFD; ES = 1; //开串口中断 EA = 1; //开总中断 TR1 = 1; //启动定时器 } SCON寄存器 1.SM0、SM1:串行口工作方式控制位 2.SM2:多机通信控制位 3.REN:允许接收位 4.TB8:发送接收数据位8 5.RB8:接收数据位8 6.TI:发送中断标志位 TI=1表
[单片机]
51单片机RS232<font color='red'>串口通信</font>代码分析
s3c2440裸机-UART编程(一、UART硬件介绍及传输原理)
1.uart硬件介绍UART的全称是Universal Asynchronous Receiver and Transmitter(异步收发器)。 uart主要用于: 1.打印调试 2.数据传输 串口通过三根线即可,发送、接收、地线。 pc的TxD - arm的RxD (UART write) arm的TxD - pc的RxD (UART read) 2.uart的参数和格式 波特率:表示每秒传输多少bit,bits per second(bps).一般波特率都会有9600,19200,115200等选项。 格式: 起始位: 先发出一个逻辑”0”的信号,表示传输数据的开始。 数据位:可以是5~8位逻辑”0”或”1”。一般7
[单片机]
<font color='red'>s3c2440</font>裸机-UART编程(一、UART硬件介绍及传输原理)
S3C2440 DMA 驱动示例
将 DMA 抽象为一个字符设备,在初始化函数中调用 void *dma_alloc_writecombine(struct device *dev, size_t size, dma_addr_t *handle, gfp_t gfp) 函数来分配两段物理地址连续的空间,一段作为源空间,一段作为目的空间。 然后将物理地址进行 ioremap 供驱动使用,最后调用 register_chrdev 来注册这个字符设备。 DMA 的 regs: #define DMA0_BASE_ADDR 0x4B000000 #define DMA1_BASE_ADDR 0x4B000040 #define DMA2_
[单片机]
基于VB 6.0串口通信的气压测高系统数据采集
  串口通信在系统控制的范畴中一直占据着极其重要的地位,在规格上越来越完善,应用也越来越广泛,使用串行通信的方式可以达到系统控制的目的。以往,要实现计算机的串口通信需要做大量复杂的工作,如今,Visual Basic 6.0(VB 6.0)在开发可视化环境下的监控系统时有其独特的优势,VB 6.0提供了串行通信控件,可以轻松实现串口数据的交换。本文介绍了基于VB 6.0的ActiveX控件——Microsoft Communication(MSComm)通信控件,实现了PC机对气压测高系统的串行通讯功能,完成了对多台气压测高设备进行数据采集。    1 气压测高测试系统的基本构成   气压测高系统的基本构成如图1所示,由PC机
[测试测量]
基于VB 6.0<font color='red'>串口通信</font>的气压测高系统数据采集
小广播
设计资源 培训 开发板 精华推荐

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

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved