存储技术
在没有引入UART之前,由于没有OS,我们写程序烧到开发板内执行后,并不能在程序的运行过程中打印一些提示信息告诉我们程序究竟运行了如何或者提供接口让用户去控制程序的运行路径,最后也只能通过物理现象去判断程序是否执行成功。
使用串口我们便可以实现开发板最基本的数据的发送和接收,实现同开发板的交互,控制程序的运行,并且在程序运行中打印出一些信息进行debug。实际上bootloader和kernel的控制台(nfs模式)都是通过uart实现的。由此我们可以发现uart在实际开发中是非常重要的。
UART寄存器详解
ULCONn的含义如表1所示。
表1 ULCONn的含义
寄存器详细说明如表2所示。
表2 UCONn
续表
寄存器详细说明如表3所示。
表3 UFCONn的含义
寄存器详细说明如表4所示。
表4 UMCONn的含义
这两个寄存器存放着发送和接收的数据,在关闭FIFO的情况下只有一个字节8位数据。需要注意的是,在发生溢出错误时,接收的数据必须被读出来,否则会引发下次溢出错误。
用于串口比特率的设置。S5PC100引入了UDIVSLOTn,使得波特率的设置比早期处理器更加精确。下面以设置波特率为115200为目标,介绍设置方法。
DIV_VAL = (PCLK / (bps*16 ) ) -1
=66.75M/115200*16 - 1 //PCLK由系统时钟提供,此为设定66.75M
=35.214
UBRDIVn = 35(DIV_VAL的整数部分)。
(UDIVSLOTn中1的数量)/16 = 0.2。
(UDIVSLOTn中1的数量) = 3。
根据手册中的建议3 0x0888(0000_1000_1000_1000b)11 0xDDD5(1101_1101_1101_0101b)选择“UDIVSLOTn = 0x0888; ”。
寄存器详细说明如表5所示。
表5 UTRSTATn的含义
全部0条评论
快来发表一下你的评论吧 !