S3C2440串口通讯的相关配置


UART配置的相关寄存器如下(按s3c2440手册中的顺序列出):

1.  ULCONn寄存器:线性控制寄存器

功能:设置奇偶校验,停止位, 数据位(5-8位)

注意:一般设置为无校验,一个停止位,数据位为8位,也就是常说的“8N1”,此时寄存器值为0x3。(bit[6]=0为正常模式,否则为红外模式);

2.  UCONn寄存器:通道n控制器

功能:选择UART时钟源、设置UART中断方式

注意:可选择PCLK、UEXTCLK或FCLK/n。bit[5]=1为回送模式,用于测试;bit[3:2]和bit[1:0]分别控制传输和接收模式,初学者常设置为中断请求或查询模式,bit[3:2]=bit[1:0]=01。

3.  UFCONn寄存器:FIFO控制寄存器

功能:用于设置是否使用FIFO,设置各FIFO的触发阙值,即发送FIFO中有多少个数据时产生中断、接收FIFO中有多少个数据时产生中断。并可以通过设置UFCONn寄存器来复位各个FIFO。读取UFSTATn寄存器可以知道各个FIFO是否已经满,其中有多少个数据。

注意:bit[0]=1时,FIFO使能,否则禁止。初学者可不使用FIFO

4.  UMCONn寄存器:UART MODEM控制寄存器

注意:bit[4]=0,AFC无效

5.UBRDIVn寄存器:波特率除数寄存器

功能:设置波特率除数

注意:UBRDIVn=(int)(UART时钟/(波特率*16))-1;

UART时钟:PCLK,FCLK/n或者UEXTCLK,例如,如果波特率为115200bps并且UART时钟为40MHz,则UBRDIVn为:

UBRDIVn=(int)(40000000/(115200*16))-1=(int)(21.7)-1(取最接近的整数)=22-1=21。

5.  UTRSTATn寄存器:接收/发送状态寄存器

功能:显示接收/发送缓存寄存器状态

注意:在非FIFO模式时,bit[0]=1表明接收到数据;bit[1]=1表明发送缓存寄存器为空。在FIFO模式时,UFSTAT寄存器的相关位,具体见手册。

6.  UERSTATn寄存器:错误状态寄存器

功能:表示各种错误是否发生

注意:初学者可以不关注其状态,待深入学习时,再查相关资料

7.  UFSTATn寄存器:FIFO状态寄存器

功能:表明FIFO的相关状态

注意:bit[14]=1,表明发送FIFO已满,暂时不能再发送数据。Bit[6]=0,表明接收FIFO中有数据(个人理解,不过不太严谨)。

8.  UMSTATn寄存器:UART MODEM 状态寄存器

注意:初学者可以不管

9.  UTXHn寄存器:发送缓存寄存器

功能:UART即会将它保存到缓冲区中,并自动发送出去

注意:bit[7:0]=发送数据。

10.            URXHn寄存器:接收缓存寄存器

功能:当UART接收到数据时,CPU读取这个寄存器,即可获得数据。

注意:bit[7:0]=接收数据;

注:URXHn与UTXHn有大、小端之分,定义寄存器时要注意,不过一般都是用小端法。

  • 1
  • 2
  • 下一页

相关内容