历史上的今天
今天是:2025年06月10日(星期二)
2020年06月10日 | s3c2440芯片串口操作
2020-06-10 来源:eefocus
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所示。波特率发生器可以通过PCLK、fclk/n或UEXTCLK(外部输入时钟)来确定。发射机和接收机包含64字节的FIFO和数据移位器。数据首先被写入到FIFO,然后在传输之前复制到移位器,最后,数据被传输数据pin(TxDn)移出。与此同时,接收到的数据从接收数据pin(RxDn)转移,然后从shifter复制到FIFO。

图 1 UART框图
编程一般顺序(对于协议类的接口,大体相同),这里补充一点题外话,对于协议类接口编程,牢牢记住两点:
(1)看通信双方的协议是什么(一般是弄清楚数据帧的格式)
(2)查看时序要求(多大的速率,对于串口就是指波特率了)
有了这两点,那我们的编程顺序便有了一个依据:
(1)首先设置相关的引脚。
(2)配置时钟,设置波特率
(3)设置数据帧的格式
(4)编写相关操作函数
前面三点就是初始化串口需要做的事,后面操作函数部分就看自己的发挥了!
下一篇:S3C2440串口学习
史海拾趣
|
分配虚拟地址,并映射到指定物理地址 m_IOPreg = (volatile IOPreg *)VirtualAlloc(0,sizeof(IOPreg),MEM_RESERVE,PAGE_READWRITE|PAGE_NOCACHE); if(m_IOPreg ==NULL) &nb ...… 查看全部问答> |
|
stm32跑ucos-ii 2.86,外扩了sram,驱动正常了,但分散加载文件里只要把外部的sram想用起来,程度就死掉,无法运行,请问有人遇到改问题吗?怎么搞? 以下是我的手动分配的分散加载文件,把 RW_RAM1 0x60000000 0x00010000  ...… 查看全部问答> |
|
采用 TPS65950 为OMAP™3 供电:TI应用设计指南 此文档介绍了针对OMAP3530器件及TPS65950相关器件[电源集成电路 (IC)]的系统硬件实施。此文档主要说明针对处理器及相关电源IC的电源连接注意事项。… 查看全部问答> |
|
4种模式旋转LED,通过红外遥控切换任何一种模式。分别有立体显示字模式(通过上位机改立体显示字),平面显示字模式,平面显示数字钟模式,平面模拟表盘模式。 采用无线供电也很给力,支持平面和立体一起显示,非常赞 ...… 查看全部问答> |




