串口基础知识

STC8H 系列单片机具有 4 个全双工异步串行通信接口。每个串行口由 2 个数据缓冲器、一个移位寄存器、一个串行控制寄存器和一个波特率发生器等组成。每个串行口的数据缓冲器由 2 个互相独立的接收、发送缓冲器构成,可以同时发送和接收数据。

引脚说明:

工作模式

模式 0:同步移位寄存器模式(半双工)。

模式 1:8 位 UART,波特率可变。

模式 2:9 位 UART,固定波特率(由系统时钟分频)。

模式 3:9 位 UART,波特率可变。

增强功能

支持自动地址识别(多机通信)。

独立波特率发生器(支持高精度波特率)。

支持 DMA 数据传输(需结合 DMA 模块)。

波特率配置

STC8H8K64U 的波特率可通过以下方式生成:

传统定时器模式(如定时器1或定时器2)。

独立波特率发生器(Baud Rate Generator, BRG

模式0:

模式1  / 模式3:

模式2:

自动地址识别

多机通信:在模式 2 或 3 下,从机可通过地址识别过滤数据。

配置方法

设置 SADDR(从机地址寄存器)。

设置 SADEN(地址掩码寄存器),定义地址匹配的位。

启用自动地址识别标志位 SM2。

中断与标志位

中断源

发送中断(TI:数据发送完成时触发。

接收中断(RI:数据接收完成时触发。

相关寄存器

SCON:控制串口工作模式和中断标志。

IE(中断使能寄存器):开启 ES(串口中断总开关)和 ES1/ES2(具体串口中断)。

IP(中断优先级寄存器):设置中断优先级。

实验说明

使用串口1-4分别发送0x01、0x02、0x03、0x04,时间间隔为500ms,同时若串口1-4接收到0x01,对应的LED2-LED5会点亮,若串口1-4接收到其它数据,LED2-LED5会熄灭。以串口4为例。

接线图

串口1:3.0—TXD  3.1—RXD

串口2:1.0—TXD  1.1—RXD

串口3:0.0—TXD  0.1—RXD

串口4:0.2—TXD  0.3—RXD

GND— GND

编写程序

代码说明:部分代码借鉴STC官网,根据实验改动,由于代码过只展示部分代码,完整代码可下载。

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐