-S3C2440的串口驱动编程原理_第1页
-S3C2440的串口驱动编程原理_第2页
-S3C2440的串口驱动编程原理_第3页
-S3C2440的串口驱动编程原理_第4页
-S3C2440的串口驱动编程原理_第5页
已阅读5页,还剩3页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第第页—S3C2440的串口驱动编程原理前言讲解韦东山JZ2440开发板的串口驱动原理,对韦东山在维基教程串口使用内容的一些补充,串口使用点击这里进入。这里主要讲的是串口驱动的编程思路,如何根据s3c2440的芯片手册编写出最简单的串口驱动。

一、串口的初始化串口初始化包括引脚初始化、串口时钟初始化和中断模式、波特率配置以及参数配置等。

1、引脚初始化

(1)看JZ2440开发板的原理图,可知UART0的引脚是GPH2(TXD0)和GPH3(RXD0)。(2)到s3c2440芯片手册295页,看GPHCON(GPH控制寄存器),可以需要把GPH2也就是GPHCON[5:4]配置为10,GPH3也就是GPHCON[7:6]配置为10。(3)配置引脚为内部上拉,然引脚初始时为高电平,看s3c2440芯片手册的295页,可知需要把GPH[10:0]配置为0。(4)编写程序实现引脚初始化,首先清零GPH2和GPH3引脚,然后在配置为TXD和RXD模式,接着将已经配置为内部上拉。

/*配置GPH2、GPH3引脚为串口模式,GPH2-->TXD,GPH3-->RXD*/GPHCON/*先清零GPH2和GPH3*/GPHCON|=((2(2)中断模式以及回环等配置,不使用中断模式,不用回环模式,Normaltransmit、RxTimeOut不使能、这些位配置为0,即[9:4]配置为000000。(3)发送模式和接收模式配置,配置为轮询方式,[3:0]配置为0101。(4)编写UCON0寄存器配置程序,二进制0000000000000101,16进制0x00000005。

/*配置时钟PCLK(50M),查询模式*/UCON0=0x00000005;3、波特率配置

在s3c2440芯片手册352页,UBRDIV0(UART波特率除数寄存器),看到如下计算公式根据该计算公式可以得出UBRDIV0的值,因此可编写UBRDIV0配置程序。

/*配置串口波特率**UBRDIVn=(int)(UARTclock/(buadratex16))–1**UARTclock=50M,由时钟配置可知FCLK:HCLK:PCLK=400m:100m:50m**有datasheet可知,如果波特率为115200,则**UBRDIVn=(int)(50000000/(115200x16))-1=26*/UBRDIV0=26;4、配置参数

接下来配置串口参数,配置为8个数据位,1个停止位,无校验位,正常模式。在s3c2400的341页,看到UART线路控制寄存器ULCON0,如图所示,可在ULCON0配置为00000011,16进制0x00000003,因此可编写程序配置ULCON0。

/*配置参数,8个数据位,1个停止位,无校验位,正常模式*/ULCON0=0x00000003;5、完成的串口初始化程序

/**************************************************************函数名称:uart_init函数功能:S3C2440UART0初始输入参数:无返回值:无备注:无**************************************************************/voiduart_init(void){/*配置GPH2、GPH3引脚为串口模式,GPH2-->TXD,GPH3-->RXD*/GPHCON/*先清零GPH2和GPH3*/GPHCON|=((22、在s3c2440芯片手册351页,UART传输缓冲寄存器和UART接收缓冲寄存器,这里要注意的是发送和接收是有分为小端模式和大端模式的,这里用的是小端模式。3、编写发送字符和接收字符函数

/**************************************************************函数名称:send_char函数功能:发送一个字符输入参数:要发送的字符返回值:无备注:无**************************************************************/voidsend_char(unsignedcharc){while(!(UTRSTAT0/*检查状态寄存器,如果不为空说明数据还没发送完则一直等待*/UTXH0=c;/*如果状态寄存器为空,则将下一个数据传入传输缓冲寄存器*/}/**************************************************************函数名称:receive_char函数功能:接收一个字符输入参数:无返回值:获取到的字符备注:无**************************************************************/unsignedc

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论