MC9S12XDP512串口使用笔记(中断方式)

来源:互联网 发布:盗梦三国龙将无双java 编辑:程序博客网 时间:2024/05/18 01:44

 

 

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,因此将SCICR2TIE(TCIE)置为1即可产生中断

2. TDRETC的清除方法:读SCISR1,然后写SCIDRL,注意,发送完最后一个字节之后,会产生中断,但因为这是最后一个字节,故不会写SCIDRL,中断标志仍然存在

3.   RDRF的清除方法:读SCISR1,然后读SCIDRL

3.示例函数;

  说明:

1.发送和接收都采用中断方式,以帧为基本处理单元,当接收到一帧完整数据时,置位接收标志,主程序不断查询接收标志,若接收标志置位,则调用接收处理函数解析接收到的帧。

2.通信协议基本形式:帧头(1字节) +通信头(1字节) +通信数据长度(1字节) +通信数据+校验字(1字节)

通信头:表示通信的内容

通信数据长度 =通信数据长度 +校验字长度

原创粉丝点击