本文档描述了使用 SCI 执行异步串行通信。
发送数据预先存储在RAM的发送数据存储区域中,并使用DTC进行发送。接收数据存储在RAM中,接收数据存储均使用DTC。
当在 IRQ1 中断请求引脚上检测到下降沿时,串行发送/接收开始。
比特率:38400bps
数据长度 8 位,LSB 在前
停止位:1位
奇偶校验:无
硬件流控制:无
硬件配置
图 2 显示了一个连接示例。
使用 DTCa 的异步 SCIC 传输/接收
软件
在此示例代码中,DTC 用于自动处理 SCI1 数据发送和接收。SC1I 数据发送和接收通过按下开关开始。
当数据传输使能时,会产生 TXI1 中断请求,这将成为 DTC 激活源。DTC 源用于将数据从发送数据存储区发送到 TDR 寄存器,然后从引脚发送数据。
当数据接收完成时,产生 RXI1 中断请求,这成为 DTC 激活源。DTC 用于将接收数据传送到接收数据存储区域。
发送数据传输256次后,TXI1中断发生。此时,TXI1 中断被禁止,TEI1 中断被使能。
接收数据传输 256 次后,会发生 RXI1 中断。此时,SCI1 接收和 RXI1 中断被禁止,接收结束标志变为 1。
发送完 256 字节数据后,发生 TEI1 中断。此时,SCI1 发送和 TEI1 中断被禁用,发送结束标志变为 1。
发送操作
1. 初始化 – 初始化后,等待来自开关的输入以开始发送/接收
2. 检测来自开关的输入以开始发送/接收 – 当检测到来自开关的输入以开始发送/接收时,设置 IR 标志将IRQ1 中断置0。读取发送结束标志和接收结束标志。如果发送和接收都结束,则将发送结束标志设置为0(发送)。设置DTC的传输源地址和传输操作次数,并启用DTC激活。
3. 开始数据传输 – TXI1 中断使能后,DTC 被激活,TXI1 中断的 IR 标志变为 0。发送数据的个字节从 RAM 中的发送数据存储区传输到 SCI1.TDR登记。
4. 开始数据发送——数据从 SCI1.TDR 寄存器传输到 SCI1.TSR 寄存器,TXI1 中断的 IR 标志变为 1,并且从 TXD1 引脚输出要发送数据的个字节。DTC 由 TXI1 中断请求激活,并传输发送数据的第二个字节。
5. TXI1 中断 – 第 256 个数据传输结束后,CPU 接受 TXI1 中断请求。在TXI1中断处理中,禁用TXI1中断并启用TEI1中断。
6. TEI1 中断——当第 256 个字节的一位被发送时,SCI1.TDR 寄存器没有更新,因此产生 TEI1 中断请求。在 TEI1 中断处理中,禁用发送和 TEI1 中断,并将发送结束标志设置为 1(发送结束)。从上面的步骤2开始重复操作。