zoukankan      html  css  js  c++  java
  • TMS320F28335——SPI使用笔记

    一、SPI硬件接口

      

      GPIO54    -------    SPISIMOA

      GPIO55    -------    SPISOMIA

      GPIO56    -------    SPCLK

      GPIO57    -------    SPSTEA

      配置IO功能:

      如上图所示,需要配置IO为SPI模式 只需要写入对应位为  1即可。代码如下

        GpioCtrlRegs.GPBMUX2.bit.GPIO54 = 1; // Configure GPIO54 as SPISIMOA
        GpioCtrlRegs.GPBMUX2.bit.GPIO55 = 1; // Configure GPIO55 as SPISOMIA
        GpioCtrlRegs.GPBMUX2.bit.GPIO56 = 1; // Configure GPIO56 as SPICLKA
        GpioCtrlRegs.GPBMUX2.bit.GPIO57 = 1; // Configure GPIO57 as SPISTEA

    二、设置SPI相关寄存器  

      SPI寄存器描述文档:http://www.ti.com/lit/ug/sprueu3a/sprueu3a.pdf

      1、初始化SPI FIFO相关寄存器

      SPIFFTX:FIFO发送寄存器

      SPIFFRX:FIFO接收寄存器

      SPIFFCT:FIFO控制寄存器

      代码如下:

    void spi_fifo_init()                                        
    {
        SpiaRegs.SPIFFTX.all=0xE040;//使能FIFO;清除发送中断标志位;禁止FIFO发送中断;
                                    //发送中断级别定义为0;
        SpiaRegs.SPIFFRX.all=0x204f;//清除FF溢出标志位;清除溢出接受中断标志位;禁止
                                    //FF接受中断;接受中断级别为16;
        SpiaRegs.SPIFFCT.all=0x0;//SPITXBUF到移位寄存器传送不延迟;
    }  

      2.设置SPI相关寄存器

      SPICCR:配置控制寄存器

      SPICTL:运行控制寄存器

      SPIBRR:波特率寄存器

      SPIPRI:优先级控制寄存器

      初始化代码:

    //初始化SPI函数
    void spi_init()
    {    
        SpiaRegs.SPICCR.all =0x004F;// SPI软件复位, 极性位为1(下降沿发送数据), 每次移
                                    //进和移出16位字长度;禁止SPI内部回送(LOOKBACK)功能;
        SpiaRegs.SPICTL.all =0x0006; // 使能主机模式,正常相位,使能主机发送,禁止接收
                                    //溢出中断,禁止SPI中断;
                                       
        SpiaRegs.SPIBRR =0x007F;    //SPI波特率=25M/128    =195.3KHZ;                            
        SpiaRegs.SPICCR.all =0x00CF;//停止SPI软件复位准备接收或发送;禁止回送模式; 
        SpiaRegs.SPIPRI.bit.FREE = 1;  // 自由运行     
    }

    三、使用SPI发送数据

      发送数据就比较简单了只需要向  SPITXBUF 写入数据即可。

      

    //发送SPI数据
    void spi_xmit(Uint16 a)
    {
        SpiaRegs.SPITXBUF=a;
    }    

     四 SPIA串口有时钟线有数据输出,但是SIMO  IO没有数据输出的问题。

      

    收发数据代码:

     SPI配置代码:

       由于MSB在前,数据是从高位一位一位的输出,所以在 输出8位的时候需要将数据移到bit15-bit8的位置。

      也有可能设置了回环模式也会出现这种情况。发送接收代码如图

  • 相关阅读:
    数值数据类型
    如何提高数据迁移和复制的速度
    dns解析
    cdn加速
    集群
    JavaScript初学者应注意的七个细节
    CXF 5参考资料
    深入理解Spring MVC 思想
    【深入理解Java内存模型】
    牛人论
  • 原文地址:https://www.cnblogs.com/hjxzjp/p/11131837.html
Copyright © 2011-2022 走看看