飞凌OK6410学习之串口的学习

下面就开始串口的学习了,关于串口的基本知识,稍微说下:

首先OK6410向PC机发送数据。具体流程为:TXD,平时为高电平,当要发送数据的时候那么TXD就要拉低一段时间,这称为起始位。然后发送需要发送的数据(先高后低),这段称为数据位。最后还有一个停止位,当然肯定是拉高了(等待下一次的数据发送)

同时PC机要接收来自OK6410的数据。接收流程为:开始PC机接收到的是高电平,当出现低电平的时候就知道要发数据了。然后进行检测接收数据(先高后低)

校验位:发送完数据位后,不放停止位,而是放校验位(奇、偶)学过51当单片机的人都明白串口的通信原理(感觉我也是在废话啊)~~~步入正题。。。。串口学习

首先声明,这里提到的串口都是指S3C6410 RSIC 微处理器上的通用异步接收/发送器(UART)串行端口。

该 S3C6410 通用异步接收和发送器( UART)提供了四个独立的异步串行 I / O (SIO)端口。每个异步串行 I/O(SIO)端口通过中断或者直接存储器存取(DMA)模式来操作。换句话说,UART 是通过产生一个中断或 DMA 请求,在 CPU 和 UART 之间传输数据的。该 UART 使用系统时钟的时间可以支持的比特率最高为115.2kb/s。如果一外部设备提供 ext_uclk0 或 ext_uclk1 ,则 UART 可以以更高的速度运行。每个UART 的通道包含了两个 64 字节收发 FIFO 存储器。

因为我们是在uboot上面进行的裸机程序实验,所以应该了解并不完全是裸的,uboot上面已经对串口进行初始化了的。下面以串口0为例来说明

在地板手册上可以看到这个

说明GPA是控制穿口0的GPIO口,我们就需要设置GPA了,从s3c6410的手册上面可以看到这个


可以看出我们需要设置为串口模式,也就是00100010的模式以下代码可以完成

         GPACON &= ~0xff;

         GPACON |= 0x22;

接下来我们还需要设置串口的格式:

8位数据位,1位停止位,无校验8N1

ULCON0 = 0x3;  /* 数据位:8, 无较验, 停止位: 1, 8n1 */

         /* ULCON0 */

         ULCON0 = 0x3;  /* 数据位:8, 无较验, 停止位: 1, 8n1 */

         UCON0  = 0x5; /* 使能UART发送、接收/使用PCLK */

         UFCON0 = 0x01; /* FIFOENABLE */

 

         UMCON0 = 0;

        

         /* 波特率 */

         /* DIV_VAL = (PCLK /(bps x 16 ) ) - 1

          * bps = 115200

          * DIV_VAL = (66500000 / ( x 16 ) ) - 1

          *        = 35.08

          */

         UBRDIV0   = 35;

 

         /* x/16 = 0.08

          * x = 1

          */

         UDIVSLOT0 = 0x1;

串口就学习到这里了。。。。。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值