TMS320F28335使用教程——SCI(Serial Communications Interface)

本文详细介绍了如何在TMS320F28335单片机上使用SCI-A口进行UART通信,包括设置外设时钟、GPIO配置、SCI寄存器配置以及波特率计算。同时涉及了接收中断的启用和中断服务程序的编写。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上级目录TMS320F28335使用教程
commonly known as a UART(通常被称为UART)
首先了解一下关于SCI的大致框图
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

开发板电路

在这里插入图片描述
在这里插入图片描述

本次使用SCI-A口,外部接口232,通过232转usb然后用电脑串口助手接收数据。
开发板电路:
GPIO28——rx
GPIO29——tx

单片机SCI外设配置

基本收发功能

实现通过串口助手发送数据到单片机,单片机返回相同数据的功能

首先使能外设时钟

SysCtrlRegs.PCLKCR0.bit.SCIAENCLK = 1;   // SCI-A

GPIO配置

首先需要设置GPIO28\GPIO29为SCI外设功能
在这里插入图片描述
GPAMUX2的对对应为设置:

	GpioCtrlRegs.GPAMUX2.bit.GPIO28 = 1;   // Configure GPIO28 for SCIRXDA operation
	GpioCtrlRegs.GPAMUX2.bit.GPIO29 = 1;   // Configure GPIO29 for SCITXDA operation

SCI寄存器

接下来结合官方提供的头文件了解一下关于SCI外设的寄存器:

//---------------------------------------------------------------------------
// SCI Register File:
//
struct  SCI_REGS {
   
   union SCICCR_REG     SCICCR;     // Communications control register
   union SCICTL1_REG    SCICTL1;    // Control register 1
   Uint16               SCIHBAUD;   // Baud rate (high) register
   Uint16               SCILBAUD;   // Baud rate (low) register
   union SCICTL2_REG    SCICTL2;    // Control register 2
   union SCIRXST_REG    SCIRXST;    // Recieve status register
   Uint16               SCIRXEMU;   // Recieve emulation buffer register
   union SCIRXBUF_REG   SCIRXBUF;   // Recieve data buffer  
   Uint16               rsvd1;      // reserved
   Uint16               SCITXBUF;   // Transmit data buffer 
   union SCIFFTX_REG    SCIFFTX;    // FIFO transmit register
   union SCIFFRX_REG    SCIFFRX;    // FIFO recieve register
   union SCIFFCT_REG    SCIFFCT;    // FIFO control register
   Uint16               rsvd2;      // reserved
   Uint16               rsvd3;      // reserved
   union SCIPRI_REG     SCIPRI;     // FIFO Priority control   
};

//对其寄存器SCICCR举例,后面每个寄存器基本都是同样的结构
union SCICCR_REG {
   
   Uint16              all;
   struct SCICCR_BITS  bit;
};

//----------------------------------------------------------
// SCICCR communication control register bit definitions:
//

struct  SCICCR_BITS {
           // bit    description
   Uint16 SCICHAR:3;         // 2:0    Character length control        
   Uint16 ADDRIDLE_MODE:1;   // 3      ADDR/IDLE Mode control
   Uint16 LOOPBKENA:1;       // 4      Loop Back enable
   Uint16 PARITYENA:1;       // 5      Parity enable   
   Uint16 PARITY:1;          // 6      Even or Odd Parity
   Uint16 STOPBITS:1;        // 7      Number of Stop Bits
   Uint16 rsvd1:8;           // 15:8   reserved
}; 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值