s3c2440串口编程

发布者:岭南布衣最新更新时间:2022-10-08 来源: csdn关键字:s3c2440  串口编程  异步串口 手机看文章 扫描二维码
随时随地手机看文章

0、串口总线标准:RS-232C  RS-422A  RS-485


1、串口通讯,分为同步通讯和异步通讯,我们通常使用的都是异步串口。通讯时,双方先约定好数据帧的格式,即波特率,数据位,停止位,奇偶校验位等。


2、串口通信数据格式

3、串口接线


1)


两端的插头上有1-9的标号,如果用万用表测相对应号码的针都是短通的,就是直连线。 


不是一对一通的就是交叉。


交叉就是收-发,发-收,一样设备用平行就会发-发,收-收


我们用的是交叉串口线。


2)

进行TTL与EIA电平转换:CPU和终端均采用TTL电平及正逻辑,它们与EIA采用的电平及负逻辑不兼容,需在接口电路中进行转换。


正逻辑:高电平---1   低电平----0   TTL 大于0.4规定为“1”, 小于0.4为0


RS-232-C标准:RS-232-C采用负逻辑规定逻辑电平,信号电平与通常的TTL电平也不兼容,RS-232-C将-5V~-15V规定为“1”,+5V~+15V规定为“0”



3)

 发送: TXD0—》MAX232—》RSTXD0-à串口线---》PC      


 接收: PC-à串口线---》RSRXD0-- MAX232-àRXD0-à嵌入式CPU  


4、串口驱动程序设计

5、串口通信原理方框图

6、程序实现


/***********************************************

Function  name  :   uart_init

Description     :   串口0初始化

Input parameter :   none

Return          :   none

Others     :                                          

*************************************************/

void uart_init()

{

//设置GPHCON:GPH2、GPH3配置为串口发送和接收功能

rGPHCON &= ~(0xf << 4);

rGPHCON |= (0xa << 4);

 

//不使能上拉电阻

        GPHUP |= 1<<3|1<<2;

 

//设置uart行寄存器:正常模式、无校验、1停止位、8数据位

rULCON0 = 0x3;

//设置uart控制寄存器:时钟选择PCLK、使能超时中断、

//收发方式为中断和轮询、其他默认

rUCON0 = 0x5;

//设置uartFIFO控制寄存器:中断触发深度、使能FIFO

rUFCON0 = 0x01;

//uart模式控制寄存器:不使能自动流控制模式

rUMCON0 = 0x0;

//设置波特率为115200:UBRDIV = PCLK/(115200 * 16) - 1

rUBRDIV0 = PCLK/(BOUD * 16) - 1;

}


/***********************************************

Function  name  :   uart_putc

Description     :   串口0发送数据

Input parameter :   ch:要发送的字符

Return          :   none

Others     :                                          

*************************************************/

void uart_putc(unsigned char ch)

{

if(ch == 'n')

{

//等待fifo不为满

while(rUFSTAT0 & (1 << 14));

rUTXH0 = 'r';

}

//等待fifo不为满

while(rUFSTAT0 & (1 << 14));

//向发送buffer写入数据

rUTXH0 = ch;

}

 

/***********************************************

Function  name  :   uart_getc

Description     :   串口0接收数据

Input parameter :   none

Return          :   接收到的字符

Others     :                                        

*************************************************/

unsigned char uart_getc(void)

{

unsigned char ret;

while ((rUFSTAT0 & 0x7f) == 0);  /* 如果RX FIFO空,等待 */ 

ret = rURXH0;                   /* 取数据 */

 

return ret;

}

 

 

/***********************************************

Function  name  :   uart_putstr

Description     :   串口0发送字符串

Input parameter :   ptr:字符串指针

Return          :   none

Others     :                                        

*************************************************/

void uart_putstr(char *ptr)

{

while(*ptr)

{

uart_putc(*ptr++);

}

}

 

/***********************************************

Function  name  :   uart_getstr

Description     :   串口0接收字符串

Input parameter :   ptr:字符串指针

Return          :   none

Others     :                                        

*************************************************/

void uart_getstr(char *ptr)

{

char ch;

while((ch = uart_getc()) != 'r')

{

if(ch == 'b')

{

ptr--;

uart_putstr("b b");

}

else

{

*ptr++ = ch;

uart_putc(ch);

}

}

*ptr = '';

}

 

/***********************************************

Function  name  :   uart_printf

Description     :   串口0打印格式化信息

Input parameter :   可变参数

Return          :   none

Others     :                                        

*************************************************/

void uart_printf(char *fmt,...)

{

va_list ap;

char string[256];

va_start(ap,fmt);

vsprintf(string,fmt,ap);

uart_putstr(string);

va_end(ap);

}


注:

uart_printf函数内所用到的函数ads编译器自带,只需包含头文件stdio.h    stdarg.h 即可。

关键字:s3c2440  串口编程  异步串口 引用地址:s3c2440串口编程

上一篇:s3c2440 iic eeprom
下一篇:s3c2440按键扫描

推荐阅读最新更新时间:2024-11-17 03:39

一种基于WinCE6.0的数字调频收音机的设计
本设计利用数字收音机芯片Si4730,为基于WincE6.0的智能系统集成FM功能提供了一种很好的解决方案,该方案实现了全频手动与自动搜台等功能。 1 基于WinCE6.0的系统设计流程 如图1所示,基于WinCE 6.0的系统设计一般分为3个过程:针对不同的硬件平台设计BSP包,BSP包括Boot-loader、OAL和驱动程序;针对系统的需求,利用Platform Builder for CE 6.0选择合适的组件,构建操作系统并导出SDK;在SDK的支撑下开发应用程序。 WinCE 6.0与其早期版本相比,开发工具有了较大的变化。Platform Builder已经不是一个单独发行的工具,Platform B
[单片机]
一种基于WinCE6.0的数字调频收音机的设计
基于S3C2440在Linux上实现视频监控系统的FFmpeg编解码设计
引言 随着视频编解码技术、计算机网络技术、数字信号处理技术和嵌入式系统的发展,以嵌入式网络视频服务器为核心的远程视频监控系统开始在市场上崭露头角。该系统把摄像机输出的模拟视频信号通过内置的嵌入式视频编码器直接转换成视频流,通过计算机网络传输出去。嵌入式网络视频服务器具备视频编码处理、网络通信、系统控制等强大功能,直接支持网络视频传输和网络管理,使得监控范围达到前所未有的广度。在远程视频监控系统中,摄像头获取的原始视频流在传输之前需要压缩,而FFmpeg可以将原始视频压缩为H264格式视频流,H264是一种被广泛使用的高精度视频的录制、压缩和发布格式,因此采用FFmpeg来实现。 1、系统方案 系统是在S3C2440平台上运行嵌
[单片机]
基于<font color='red'>S3C2440</font>在Linux上实现视频监控系统的FFmpeg编解码设计
S3c2440如何利用JLINK烧写U-boot到NAND Flash中
很多同学使用笔记本作为自己的ARM开发和学习的平台,绝大多数笔记本都没有并口,也就是无法使用JTag调试和烧写程序到Nand Flash中,幸好我们还有JLINK,用JLINK烧写U-boot到Nor Flash中很简单,大部分NOR Flash都已经被JLink的软件SEGGER所支持,而新手在学习的时候经常会实验各种各样的命令,最悲剧的莫过于将NAND Flash中原有的bootloader给删除了,这时候开发板上电后由于没有bootloader,硬件没有被初始化,在NAND Flash中的操作系统也就无法被加载,开发板成“砖”了,这时候笔记本又无法利用JTag烧写程序进Nand Flash。起始这些可以利用JLink通过两种
[单片机]
s3c2440串口详解
一、UART原理说明 通用异步收发器简称UART(Universal Asynchronous Receiver/Transmitter),它用来传输串行数据:发送数据时,CPU将并行数据写入UART,UART按照一定的格式在一根电线上串行发出;接收数据时,UART检测另一根电线上的信号,将串行数据收集放在缓冲区中,CPU就可以读取UART获得这些数据。串口之间以全双工方式传输数据,最精简的连线只有三根线:TxD用于发送数据,RxD用于接收数据,Gnd用于给双方提供参考电平,连线如下图: UART使用标准的TTL/CMOS逻辑电平(0-5V、0-3.3V、0-2.5V、0-1.8V)来表示数据,高电平表示1,低电平表示0。为了
[单片机]
<font color='red'>s3c2440</font><font color='red'>串口</font>详解
基于S3C2440的智能家居远程监控系统解决方案
智能家居又称为数字家庭, 一般是指以计算机接口技术和网络技术为基础, 将各种家用数字化设备有机结合为一体的智能化的网络系统。这些家用数字化设备包括电话、计算机、数字化的视听设备、数字化的家用电器及安全监控设备等, 通过有线或无线的方式将这些设备连接起来, 为家庭用户提供简单、安全、可靠、智能化的综合服务。本文以Web 技术为核心, 在基于S3C2440 微处理器和嵌入式Linux 操作系统的软硬件平台上构建了Web 服务器和视频服务器,Web 服务器采用Boa, 视频服务器采用Servfox, 结合CGI 技术处理HTML 表单, 完成用户认证, 门窗控制等家居监控功能。 1 系统总体结构设计 图1 为智能家居远程监控系统的总
[单片机]
基于<font color='red'>S3C2440</font>的智能家居远程监控系统解决方案
S3C2440存储控制器和MMU浅析
一、S3C2440存储控制器 如果大家写过S3C2440的ARM裸机程序都应该知道通常SDRAM的起始地址是0X30000000,但是大家有没有想过为什么呢?下面我将给大家做一个简要的介绍。 查S3C2440的手册可知S3C2440可寻址1G的地址范围,但是S3C2440的地址线只有27根,理论上只能寻址2的27次方等于128M的地址范围。于是S3C2440通过一个叫BANK的东东解决了这个问题。S3C2440引出了8根BANK线(对应nGCS0~ nGCS7),通过这个8根线来选通和关闭不同的存储器,这样S3C2440最多就可以连接8个128M的存储器,只要在某一时刻只选通一个BANK就可以实现1G的寻址空间每个
[单片机]
<font color='red'>S3C2440</font>存储控制器和MMU浅析
基于OHCI协议的S3C2440 USB Host Driver之协议介绍(一)
什么是OHCI USB协议规定为四种传输类型--中断传输、控制传输、同步传输、批量传输。这里分为2种,周期传输和非周期传输。周期传输包括中断传输和同步传输,这是因为周期传输是要在1帧里的一段时间里必须进行的;非周期传输包括批量和控制传输,它们只要带宽空闲就可以传输。 在HC与HCD之间有2条通信渠道:第一条是在HC里的可操作寄存器;第二条是HCCA。 数据结构有2种:ED和TD HCD负责分配ED和删除ED。HCD负责创建TD,HC负责删除TD。 ED包括HC与端点通信的必要信息,如MPS、端点地址,端点速度,数据流方向。ED链接成一个表。 一列TD链接在某个ED上,以ED作为锚点。TD包含了必要信息,描述
[单片机]
基于OHCI协议的<font color='red'>S3C2440</font> USB Host Driver之协议介绍(一)
s3c2440芯片串口操作
S3C2440A通用异步接收器和发射机(UART)提供了三个独立的异步串行输入/输出(SIO)端口,每个端口都可以在中断或基于dma的模式下运行。换句话说,UART可以生成一个中断或DMA请求来在CPU和UART之间传输数据。UART可以使用系统时钟,支持波特率高达921.6 Kbps。如果外部设备提供UEXTCLK,那么UART可以以更高的速度运行。每个UART通道包含两个64字节的FIFO,用于接收器和发送器。 S3C2440A UART包括可编程的波特率、红外(IR)传输/接收、一个或两个停止位、5位、6位、7位或8位数据宽度和奇偶校验。 每个UART包含一个波特率生成器、发射机、接收机和一个控制单元,如图1所示。波
[单片机]
<font color='red'>s3c2440</font>芯片<font color='red'>串口</font>操作
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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