/**

  • SCI 寄存器位域定义 */

// 通信控制寄存器 struct SCICCR_BITS { Uint16 SCICHAR:3; // 字符长度控制 Uint16 ADDRIDLE_MODE:1; // 地址/空闲模式控制 Uint16 LOOPBKENA:1; // Loop Back使能 Uint16 PARITYENA:1; // 奇偶校验使能 Uint16 PARITY:1; // 奇偶校验位选择 Uint16 STOPBITS:1; // 停止位数选择 Uint16 rsvd1:8; // 保留位 }; union SCICCR_REG { Uint16 all; struct SCICCR_BITS bit; };

// 控制寄存器 1 struct SCICTL1_BITS { Uint16 RXENA:1; // 接收器使能 Uint16 TXENA:1; // 发送器使能 Uint16 SLEEP:1; // 休眠模式控制 Uint16 TXWAKE:1; // 发送器唤醒方法 Uint16 rsvd:1; // 保留位 Uint16 SWRESET:1; // 软件复位 Uint16 RXERRINTENA:1; // 接收中断使能 Uint16 rsvd1:9; // 保留位 }; union SCICTL1_REG { Uint16 all; struct SCICTL1_BITS bit; };

// 控制寄存器 2 struct SCICTL2_BITS { Uint16 TXINTENA:1; // 发送中断使能 Uint16 RXBKINTENA:1; // 接收缓冲区中断使能 Uint16 rsvd:4; // 保留位 Uint16 TXEMPTY:1; // 发送器空闲标志 Uint16 TXRDY:1; // 发送器就绪标志 Uint16 rsvd1:8; // 保留位 }; union SCICTL2_REG { Uint16 all; struct SCICTL2_BITS bit; };

// 接收状态寄存器 struct SCIRXST_BITS { Uint16 rsvd:1; // 保留位 Uint16 RXWAKE:1; // 接收器唤醒检测标志 Uint16 PE:1; // 奇偶校验错误标志 Uint16 OE:1; // 过载错误标志 Uint16 FE:1; // 帧错误标志 Uint16 BRKDT:1; // 断线检测标志 Uint16 RXRDY:1; // 接收器就绪标志 Uint16 RXERROR:1; // 接收器错误标志 Uint16 rsvd1:8; // 保留位 }; union SCIRXST_REG { Uint16 all; struct SCIRXST_BITS bit; };

// 接收数据缓冲区 struct SCIRXBUF_BITS { Uint16 RXDT:8; // 接收字 Uint16 rsvd:6; // 保留位 Uint16 SCIFFPE:1; // FIFO模式下的奇偶校验错误 Uint16 SCIFFFE:1; // FIFO模式下的帧错误 }; union SCIRXBUF_REG { Uint16 all; struct SCIRXBUF_BITS bit; };

// 优先级控制寄存器 struct SCIPRI_BITS { Uint16 rsvd:3; // 保留位 Uint16 FREE:1; // 自由仿真挂起模式 Uint16 SOFT:1; // 软仿真挂起模式 Uint16 rsvd1:11; // 保留位 }; union SCIPRI_REG { Uint16 all; struct SCIPRI_BITS bit; };

// FIFO 发送寄存器 struct SCIFFTX_BITS { Uint16 TXFFIL:5; // 中断水平 Uint16 TXFFIENA:1; // 中断使能 Uint16 TXFFINTCLR:1; // 清除中断标志 Uint16 TXFFINT:1; // 中断标志 Uint16 TXFFST:5; // FIFO状态 Uint16 TXFIFOXRESET:1; // FIFO复位 Uint16 SCIFFENA:1; // 增强使能 Uint16 SCIRST:1; // SCI通道复位 }; union SCIFFTX_REG { Uint16 all; struct SCIFFTX_BITS bit; };

// FIFO 接收寄存器 struct SCIFFRX_BITS { Uint16 RXFFIL:5; // 中断水平 Uint16 RXFFIENA:1; // 中断使能 Uint16 RXFFINTCLR:1; // 清除中断标志 Uint16 RXFFINT:1; // 中断标志 Uint16 RXFFST:5; // FIFO状态 Uint16 RXFIFORESET:1; // FIFO复位 Uint16 RXFFOVRCLR:1; // 清除溢出标志 Uint16 RXFFOVF:1; // FIFO溢出标志 }; union SCIFFRX_REG { Uint16 all; struct SCIFFRX_BITS bit; };

// FIFO 控制寄存器 struct SCIFFCT_BITS { Uint16 FFTXDLY:8; // FIFO发送延迟 Uint16 rsvd:5; // 保留位 Uint16 CDC:1; // 自动波特率模式使能 Uint16 ABDCLR:1; // 自动波特率清除 Uint16 ABD:1; // 自动波特率检测 }; union SCIFFCT_REG { Uint16 all; struct SCIFFCT_BITS bit; };

// SCI寄存器文件 struct SCI_REGS { union SCICCR_REG SCICCR; // 通信控制寄存器 union SCICTL1_REG SCICTL1; // 控制寄存器1 Uint16 SCIHBAUD; // 波特率(高)寄存器 Uint16 SCILBAUD; // 波特率(低)寄存器 union SCICTL2_REG SCICTL2; // 控制寄存器2 union SCIRXST_REG SCIRXST; // 接收状态寄存器 Uint16 SCIRXEMU; // 接收仿真缓冲寄存器 union SCIRXBUF_REG SCIRXBUF; // 接收数据缓冲区 Uint16 rsvd1; // 保留位 Uint16 SCITXBUF; // 发送数据缓冲区 union SCIFFTX_REG SCIFFTX; // FIFO发送寄存器 union SCIFFRX_REG SCIFFRX; // FIFO接收寄存器 union SCIFFCT_REG SCIFFCT; // FIFO控制寄存器 Uint16 rsvd2; // 保留位 Uint16 rsvd3; // 保留位 union SCIPRI_REG SCIPRI; // FIFO优先级控制 };

SCI 寄存器位域定义 - 结构体详解

原文地址: https://www.cveoy.top/t/topic/oLcT 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录