微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 硬件电路设计 > TI模拟硬件电路设计 > SPI设置

SPI设置

时间:10-02 整理:3721RD 点击:
帮我看看设置那里错了吗?
为什么调试的时候,SPITXBUF的数据0x4141 总是没发出去呢!?
Test_flag4 也是0,我想着就没收到数据,好象根本就没发出来??
那位高手帮我看看啊,非常感谢!

EALLOW;
GpioMuxRegs.GPFMUX.all = 0x000F; //设置GPIO工作在SPI的功能
EDIS;

SpiaRegs.SPIFFTX.all = 0xE040;
SpiaRegs.SPIFFRX.all = 0x204F;
SpiaRegs.SPIFFCT.all = 0x0;

SpiaRegs.SPICCR.all = 0x000F; //SPI复位,设置时钟为上升沿, 16位字符长度
SpiaRegs.SPICTL.all = 0x0006; //使能主模式,标准相位
SpiaRegs.SPIBRR.all = 0x007F;
//退出复位状态
SpiaRegs.SPICCR.all = 0x009F; //使SPI退出复位状态 使能自测试模式

var3 = 0x4141;
SpiaRegs.SPITXBUF = var3;
while(SpiaRegs.SPIFFRX.bit.RXFFST!=1){}
Test_flag4 = SpiaRegs.SPIRXBUF;
if(Test_flag4!=0x4141) error(1);

SpiaRegs.SPICCR.all = 0x009F?
自测?
外部收不到的

var3 = 0x4141;
SpiaRegs.SPITXBUF = var3;
这两句只能产生16个时钟,不知道你用示波器怎么测的,几乎是一晃而过,很难观测,建议你监测SPITXBUF和SPIDAT里的数据是否一样,如过SPIDAT的值产生移位了就肯定发了!

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top