TMS320F28335——SCI串口

Posted hjxzjp

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TMS320F28335——SCI串口相关的知识,希望对你有一定的参考价值。

一、IO配置

  以SCIA为例:使用的是GPIO35--SCITXDA    GPIOA36--SCIRXDA

技术图片

技术图片

  使用寄存器:

  GPBPUD :设置上拉  GPIO32-GPIO63   对应位0 使能上拉

  GPBQSEL1:

  GPBMUX1:IO模式选择

  代码如下:

    GpioCtrlRegs.GPBPUD.bit.GPIO36 = 0;    // Enable pull-up for GPIO28 (SCIRXDA)//使能内部上拉
    GpioCtrlRegs.GPBPUD.bit.GPIO35 = 0;       // Enable pull-up for GPIO29 (SCITXDA)//使能内部上拉
    GpioCtrlRegs.GPBQSEL1.bit.GPIO36 = 3;  // Asynch input GPIO28 (SCIRXDA) //设置为异步输入模式

    GpioCtrlRegs.GPBMUX1.bit.GPIO36 = 1;   // Configure GPIO28 for SCIRXDA operation  //配置为外设模式
    GpioCtrlRegs.GPBMUX1.bit.GPIO35 = 1;   // Configure GPIO29 for SCITXDA operation//配置为外设模式

 设置FIFO寄存器:

  

void scia_fifo_init()

    SciaRegs.SCIFFTX.all=0xE040;//使能FIFO;清除发送中断标志位;禁止FIFO发送中断;
                                //发送中断级别定义为0;
    SciaRegs.SCIFFRX.all=0x204f;//清除FIFO溢出标志位;清除溢出接受中断标志位;禁止
                                //FF接受中断;接受中断级别为16;
    SciaRegs.SCIFFCT.all=0x0;//SCITXBUF到移位寄存器传送不延迟

设置SCI相关寄存器:

void scia_echoback_init()

    // Note: Clocks were turned on to the SCIA peripheral
    // in the InitSysCtrl() function

     SciaRegs.SCICCR.all =0x0007;   // 1 stop bit,  No loopback
                                   // No parity,8 char bits,
                                   // async mode, idle-line protocol
    SciaRegs.SCICTL1.all =0x0003;  // enable TX, RX, internal SCICLK,
                                   // Disable RX ERR, SLEEP, TXWAKE
    SciaRegs.SCICTL2.all =0x0003;
    SciaRegs.SCICTL2.bit.TXINTENA =1;//开启接收中断
    SciaRegs.SCICTL2.bit.RXBKINTENA =1;//开启发送中断
    #if (CPU_FRQ_150MHZ)
          SciaRegs.SCIHBAUD    =0x0001;  // 9600 baud @LSPCLK = 37.5MHz.
          SciaRegs.SCILBAUD    =0x00E7;
    #endif
    #if (CPU_FRQ_100MHZ)
      SciaRegs.SCIHBAUD    =0x0001;  // 9600 baud @LSPCLK = 20MHz.
      SciaRegs.SCILBAUD    =0x0044;
    #endif
    SciaRegs.SCICTL1.all =0x0023;  // Relinquish SCI from Reset

波特率计算方式:

技术图片

 

发生一个字节:

  

void scia_xmit(int a)

    while (SciaRegs.SCIFFTX.bit.TXFFST != 0) 
    SciaRegs.SCITXBUF=a;

 

以上是关于TMS320F28335——SCI串口的主要内容,如果未能解决你的问题,请参考以下文章

TMS320F28335 芯片解密成功

TMS320F28335项目开发记录3_28335简介

TMS320F28335项目开发记录1_CCS的使用介绍

TMS320F28379D 使用心得之 SCI

DSPTMS320F28335的GPIO

TMS320F2812单片机解密基本特性