s3c2440学习笔记 串口

UART是什么?

通用异步收发器(universal asynchronous receiver transmitter)

UART直接是全双工方式传送数据

UART使用标准TTL/CMOS逻辑电平来表示数据(高:1 低:0)。为了增强数据的抗干扰能力,通常将TTL/CMOS逻辑电平转换为RS-232逻辑电平(高:0 低:1)—通过MAX3232芯片进行转换

什么是帧(frame)?

有效数据传输单位,具有完整意义,不可分割。

传送数据前要约定好波特率和数据的传输格式

什么是奇偶校验

数据位连同校验位,“1”的数目为奇数,奇校验
反之为偶数,偶校验

异步传输方式

拥有起始位

s3c2440

UART提供了3个异步串行通信端口

发送数据步骤

  1. SOC将数据写入发送FIFO
  2. UART自动将FIFO数据复制到发送移位器(transmit shifter)
  3. 发送移位器将数据一位一位发送到TxDn线上

接收步骤

上面的反步骤,是从RxDn数据线读入

s3c2440 UART使用

初始化

要设置
1. 波特率
2. 传输格式(多少个数据位,是否使用校验位,奇校验or偶校验,多少个停止位,是否使用硬件流控制)
3. 对于s3c2440还要选择相应引脚为UART功能
4. 选择UART通道工作模式为中断模式或者DMA模式

读取写入数据

向某个寄存器写入数据即可发送
从某个寄存器读取数据来接收
通过查询状态寄存器或者设置中断模式来得知数据是否发送或者接收完毕

相关控制寄存器

具体见s3c2440A芯片手册
ULCONn:行控制器
UCONn:控制寄存器
UFCONn:FIFO控制寄存器(默认FIFO触发深度为1,本例不需要该寄存器)
UMCONn:MODEM控制寄存器
UTRSTATn:状态寄存器(是否发送完毕)
UTXHn:发送缓冲寄存器
URXHn:接收缓冲寄存器
UBRDIVn:波特率除数因子寄存器

波特率

有三个UART波特率除数因子寄存器UBRDIV0~2,其中的值用于决定波特率

UBRDIVn=(int)(UART Clock/(buard rate16))1

例如:
如果波特率为115200bps,且UART时钟频率为40MHz

UBRDIV = (int)(40 000 000/ (115200*16))-1
       = (int)21.7 - 1
       = 22 - 1 = 21
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猎羽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值