1. 相关寄存器:
1. SCIBDH,SCIBDL:波特率寄存器(SCIBDH只有低5位有效)
波特率 = 总线频率 / (16 * SBR[12:0])
2. SCICR2: SCI控制寄存器2
位数 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
含义 |
TIE |
TCIE |
RIE |
ILIE |
TE |
RE |
RWU |
SBK |
复位值 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
TIE: 发送中断使能位。使能发送数据寄存器空标志(TDRE)来产生中断申请
TCIE: 发送完成中断使能位。使能发送完成标志(TC)来产生中断申请
RIE: 接收器满中断使能位
TE: 发送器使能位
RE: 接收器使能位
3. SCISR1: SCI状态寄存器1
位数 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
含义 |
TDRE |
TC |
RDRF |
IDLE |
OR |
NF |
FE |
PF |
复位值 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
TDRE: 发送数据寄存器空标志
TC: 发送完成标志
RDRF: 接收数据寄存器满标志
4. SCIDRL,(SCIDRH): SCI数据寄存器
2.寄存器使用注意事项:
1. TDRE(TC)复位值为1,因此将SCICR2的TIE(TCIE)置为1即可产生中断
2. TDRE,TC的清除方法:读SCISR1,然后写SCIDRL,注意,发送完最后一个字节之后,会产生中断,但因为这是最后一个字节,故不会写SCIDRL,中断标志仍然存在
3. RDRF的清除方法:读SCISR1,然后读SCIDRL。
3.示例函数;
说明:
1. 发送和接收都采用中断方式,以帧为基本处理单元,当接收到一帧完整数据时,置位接收标志,主程序不断查询接收标志,若接收标志置位,则调用接收处理函数解析接收到的帧。
2. 通信协议基本形式:帧头(1字节) +通信头(1字节) +通信数据长度(1字节) +通信数据+校验字(1字节)
通信头: 表示通信的内容
通信数据长度 = 通信数据长度 + 校验字长度
http://blog.csdn.net/finewind
发表评论 评论 (0 个评论)