没有合适的资源?快使用搜索试试~ 我知道了~
首页ARM处理器C语言编程
ARM处理器C语言编程
需积分: 10 88 浏览量
更新于2023-03-16
评论
收藏 4.65MB PPT 举报
ARM处理器C语言编程 ARM C语言编程6---16章 对于学习非常不错哦
资源详情
资源评论
资源推荐

第六章
第六章
S3C2410
S3C2410
的串口
的串口
UART
UART
及编程
及编程
6.1 S3C2410
6.1 S3C2410
的串口
的串口
UART
UART
概述
概述
6.1.1 S3C2410
6.1.1 S3C2410
异步串行通信(
异步串行通信(
UART
UART
)单元
)单元
S3C2410 UART
S3C2410 UART
单元提供
单元提供
3
3
个独立的异步串行通信接口,皆
个独立的异步串行通信接口,皆
可工作于查询、中断和
可工作于查询、中断和
DMA
DMA
模式。使用系统时钟最高波特率
模式。使用系统时钟最高波特率
达
达
230. 4 kb/s
230. 4 kb/s
,如果使用外部设备提供的时钟,可以达到更
,如果使用外部设备提供的时钟,可以达到更
高的速率。每一个
高的速率。每一个
UART
UART
单元包含一个
单元包含一个
16
16
字节的
字节的
FIFO
FIFO
(
(
Firs
Firs
t Input First Output
t Input First Output
,先进先出移位寄存器),用于数据的接
,先进先出移位寄存器),用于数据的接
收和发送。
收和发送。
S3C2410 UART
S3C2410 UART
支持可编程波特率、红外发送
支持可编程波特率、红外发送
/
/
接收
接收
( UART2
( UART2
)
)
、
、
1
1
个或
个或
2
2
个停止位、
个停止位、
5
5
位
位
/6
/6
位
位
/7
/7
位
位
/8
/8
位数据宽度和奇
位数据宽度和奇
偶校验。
偶校验。

6.1.2
6.1.2
波特率的产生
波特率的产生
波特率由一个专用的
波特率由一个专用的
UART
UART
波特率分频寄存器
波特率分频寄存器
(UBRDIVn)
(UBRDIVn)
控
控
制,
制,
UBRDIVn
UBRDIVn
值计算公
值计算公
如下:
如下:
UBRDIVn=(int)[ULK/(
UBRDIVn=(int)[ULK/(
波特率
波特率
× 16)]
× 16)]
-
-
1
1
或者
或者
UBRDIVn=(int) [PLK/(
UBRDIVn=(int) [PLK/(
波特率
波特率
× 16)]
× 16)]
-
-
1
1
式中:时钟选用
式中:时钟选用
ULK
ULK
还是
还是
PLK
PLK
由
由
UART
UART
控制寄存器
控制寄存器
UCONn
UCONn
[10]
[10]
的状态决定。如果
的状态决定。如果
UCONn[10]=0
UCONn[10]=0
,则用
,则用
PLK
PLK
作为波特
作为波特
率发生器的时钟源频率;否则选用
率发生器的时钟源频率;否则选用
ULK
ULK
作为波特率发生器
作为波特率发生器
的时钟源频率。
的时钟源频率。
UBRDIVn
UBRDIVn
的值必须在
的值必须在
1~(216
1~(216
-
-
1)
1)
之间。
之间。
例如
例如
:
:
若
若
ULK
ULK
或者
或者
PLK
PLK
等于
等于
40 MHz
40 MHz
,当波特率为
,当波特率为
115200
115200
b/s
b/s
时,则
时,则
UBRDIVn=(int)[40 000 000/(115 200 ×16)]
UBRDIVn=(int)[40 000 000/(115 200 ×16)]
一
一
1=int(21.
1=int(21.
7)
7)
-
-
1= 21
1= 21
-
-
1=20
1=20

6.1.3 UART
6.1.3 UART
通信操作
通信操作
下面简略介绍
下面简略介绍
UART
UART
操作,关于数据发送、数据接收、
操作,关于数据发送、数据接收、
中断产生、波特率产生、查询检测模式、红外模式
中断产生、波特率产生、查询检测模式、红外模式
的详细介绍,参见下面
的详细介绍,参见下面
6.3
6.3
节。
节。
发送数据帧是可编程的。一个数据帧包含
发送数据帧是可编程的。一个数据帧包含
1
1
个起始
个起始
位、
位、
5~8
5~8
个数据位、
个数据位、
1
1
个可选的奇偶校验位和
个可选的奇偶校验位和
1~2
1~2
位停止位,停止位通过行控制寄存器
位停止位,停止位通过行控制寄存器
ULCONn
ULCONn
配置。
配置。
与发送数据帧类似,接收数据帧也是可编程的。接
与发送数据帧类似,接收数据帧也是可编程的。接
收帧由
收帧由
1
1
个起始位、
个起始位、
5~8
5~8
个数据位、
个数据位、
l
l
个可选的奇
个可选的奇
偶校验位以及
偶校验位以及
1~2
1~2
位行控制寄存器
位行控制寄存器
ULCONn
ULCONn
中设定
中设定
的停止位组成。接收器还可以检测溢出错、奇偶校
的停止位组成。接收器还可以检测溢出错、奇偶校
验错、帧错误和传输中断,每一个错误均可以设置
验错、帧错误和传输中断,每一个错误均可以设置
一个错误标志。
一个错误标志。

•
•
溢出错误
溢出错误
(overrun error)
(overrun error)
:指已接收到的数据在
:指已接收到的数据在
读取之前被新接收的数据覆盖;
读取之前被新接收的数据覆盖;
•
•
奇偶校验错:指接收器检测到的校验和与设置的
奇偶校验错:指接收器检测到的校验和与设置的
不符;
不符;
•
•
帧错误:指没有接收到有效的停止位;
帧错误:指没有接收到有效的停止位;
•
•
传输中断:表示接收数据
传输中断:表示接收数据
RxDn
RxDn
保持逻辑
保持逻辑
0
0
超过
超过
一帧的传输时间。
一帧的传输时间。
在
在
FIFO
FIFO
模式下,如果
模式下,如果
RxFIFO
RxFIFO
非空,而在
非空,而在
3
3
个字的
个字的
传输时间内没有接受到数据,则产生超时。
传输时间内没有接受到数据,则产生超时。

6.2 UART
6.2 UART
的控制寄存器
的控制寄存器
6.2.1 UART
6.2.1 UART
行控制寄存器
行控制寄存器
ULCONn
ULCONn
该寄存器的位
该寄存器的位
6
6
决定是否使用红外模式,位
决定是否使用红外模式,位
5
5
、位
、位
4
4
和位
和位
3
3
决定校验方式,位
决定校验方式,位
2
2
决定停止位长度,位
决定停止位长度,位
1
1
和位
和位
0
0
决定每帧的
决定每帧的
数据位数。具体如下:
数据位数。具体如下:
ULCONn[7]
ULCONn[7]
保留;
保留;
ULCONn[6]
ULCONn[6]
红外线模式,
红外线模式,
0
0
:正常模式;
:正常模式;
1
1
:红外线模式;
:红外线模式;
ULCONn[5
ULCONn[5
:
:
3]
3]
校验模式,
校验模式,
0xx
0xx
:无校验;
:无校验;
100
100
:奇校验;
:奇校验;
101
101
:偶校验;
:偶校验;
ULCONn[2]
ULCONn[2]
停止位,
停止位,
0
0
:一个停止位;
:一个停止位;
1
1
:二个停止位;
:二个停止位;
ULCONn[1
ULCONn[1
:
:
0]
0]
数据位,
数据位,
00
00
:
:
5
5
位;
位;
01
01
:
:
6
6
位;
位;
10
10
:
:
7
7
位;
位;
11
11
:
:
8
8
位。
位。
剩余63页未读,继续阅读

















安全验证
文档复制为VIP权益,开通VIP直接复制

评论0