一、SPI硬件接口

  

  GPIO54    -------    SPISIMOA

  GPIO55    -------    SPISOMIA

  GPIO56    -------    SPCLK

  GPIO57    -------    SPSTEA

  配置IO功能:

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

    GpioCtrlRegs.GPBMUX2.bit.GPIO54 = ; // Configure GPIO54 as SPISIMOA
GpioCtrlRegs.GPBMUX2.bit.GPIO55 = ; // Configure GPIO55 as SPISOMIA
GpioCtrlRegs.GPBMUX2.bit.GPIO56 = ; // Configure GPIO56 as SPICLKA
GpioCtrlRegs.GPBMUX2.bit.GPIO57 = ; // 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 = ; // 自由运行
}

三、使用SPI发送数据

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

  

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

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

  

收发数据代码:

 SPI配置代码:

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

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

TMS320F28335——SPI使用笔记的更多相关文章

  1. qnx spi 学习笔记

    文档还在编辑中,目前排版很乱,边看边写..等写完了编辑 qnx spi 学习  --目前只是看了代码,学的不深入,有错误的地方请联系我 谢谢 spi init spi init应该是分为2条线,一条是 ...

  2. STM32F407 SPI 个人笔记

    概述 SPI ,Serial Peripheral interface,串行外围设备接口 全双工,同步的通信总线,四根线 主要应用在 EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器 ...

  3. SPI学习笔记1

    SPI 简介 SPI 是英语 Serial Peripheral interface 的缩写,顾名思义就是串行外围设备接口.是 Motorola首先在其 MC68HCXX 系列处理器上定义的. SPI ...

  4. SPI使用笔记ADS1259+AD5676

    SPI的通信速率通常比较快.目前用到的ADS1259芯片,可以达到2-4MHz,可能可以更加快.一般spi都是从慢速开始调试,但是具体到某个芯片,应该核对芯片时序图,比如ti的ds1259,数据手册上 ...

  5. postgresql spi开发笔记

    #include "postgres.h" #include "fmgr.h" #include <string.h> #ifdef PG_MODU ...

  6. flash读写学习笔记与spi接口及简单测试验证(三)

    FPGA中的视频图像资源,以及想要永久存储的程序都是要存储在flash中,flash是FPGA一个不可缺少的部分,flash的种类有很多,根据winbond公司的128Mbit Qual SPI接口的 ...

  7. PX01关于手机屏SPI触摸调试学习笔记

    上位机工具:http://www.xk-image.com/download/blog/0002_TP调试/LcdTools20210605.rar 调试案例:http://www.xk-image. ...

  8. STM32F412应用开发笔记之三:SPI总线通讯与AD采集

    本次我们在NUCLEO-F412ZG试验模拟量输入采集.我们的模拟量输入采用ADI公司的AD7705,是一片16位两路差分输入的AD采集芯片.具有SPI接口,我们将采用SPI接口与AD7705通讯.两 ...

  9. STM32学习笔记(八) SPI总线(操作外部flash)

    1. SPI总线简介 SPI全称串行外设接口,是一种高速,全双工,同步的外设总线:它工作在主从方式,常规需要至少4根线才能够正常工作.SPI作为基本的外设接口,在FLASH,EPPROM和一些数字通讯 ...

随机推荐

  1. Mysql包的下载

    官方下载地址: https://dev.mysql.com/downloads/mysql/5.5.html#downloads mysql的下载界面 二进制的包 通用的RPM包 源码包

  2. BZOJ 4245: [ONTAK2015]OR-XOR 贪心 + 位运算

    Description 给定一个长度为n的序列a[1],a[2],...,a[n],请将它划分为m段连续的区间,设第i段的费用c[i]为该段内所有数字的异或和,则总费用为c[1] or c[2] or ...

  3. 浙大PAT CCCC L3-001 凑零钱 ( 0/1背包 && 路径记录 )

    题目链接 分析 : 就是一个 0/1 背包,但是需要记录具体状态的转移情况 这个可以想象成一个状态转移图,然后实际就是记录路径 将状态看成点然后转移看成边,最后输出字典序最小的路径 这里有一个很巧妙的 ...

  4. CDOJ 1061 C - 秋实大哥与战争 STL set 迭代器

    题目链接: C - 秋实大哥与战争 Time Limit:1000MS     Memory Limit:65535KB     64bit IO Format:%lld & %llu Sub ...

  5. sh_11_九九乘法表

    sh_11_九九乘法表 # 1. 打印 9 行小星星 row = 1 while row <= 9: col = 1 while col <= row: # print("*&q ...

  6. Kylin CDH安装

    Kylin安装 从官网下载 apache-kylin-2.0.0-bin-cdh57.tar.gz 放到每台需要安装kylin 服务的机器 [hadoop@hadoop3 cdh5.12.0]$ su ...

  7. 基于代理的数据库分库分表框架 Mycat实践

    192.168.199.75 MySQL . MyCAT master 192.168.199.74 MySQL slave 192.168.199.76 MySQL standby master 如 ...

  8. VLC2.2.4命令参数

    用法: vlc [选项] [流] ...您可以在命令行中指定多个流.它们将被加入播放列表队列.指定的首个项目将被首先播放. 选项样式: --选项 用于设置程序执行期间的全局选项. -选项 单字母版本的 ...

  9. c++ 指针类型转换

    1.数据类型转换(static_cast) //数据类型转换printf("%d\n", static_cast<int>(10.2)); 2.指针类型转换(reint ...

  10. ES6实现数组去重

    ES6 提供了新的数据结构 Set.它类似于数组,但是成员的值都是唯一的,没有重复的值. Array.from方法可以将 Set 结构转为数组. 扩展运算符内部调用的是数据结构的 Iterator 接 ...