TI工程师,您好,我在练习SPI过程中遇到一些问题。28335通过SPI给一位数码管发数(中间是74HC595)
下边是代码,只发了一个数,但是SPIclk没有信号,数据根本没有发出去,您看是什么问题导致的呢
#include "DSP2833x_Device.h" // DSP2833x Headerfile Include File #include "DSP2833x_Examples.h" void spi_intial()//SPI初始化 { SpiaRegs.***.all=0x0047;//使SPI处于复位模式,下降沿,8位数据 SpiaRegs.***.all=0x0006;//主控模式,一般时钟模式 //关闭SPI中断 SpiaRegs.SPIBRR=0x007F;//配置波特率 SpiaRegs.***.all=SpiaRegs.***.all|0x0080;//退出复位状态 EALLOW; GpioCtrlRegs.GPBMUX2.bit.GPIO54=1;//设置通用引脚为SPI引脚 GpioCtrlRegs.GPBMUX2.bit.GPIO56=1; EDIS; } void gpio_init() { EALLOW; GpioCtrlRegs.GPBMUX2.bit.GPIO57=0;//GPIO27设置为一般I/O,输出 GpioCtrlRegs.GPBDIR.bit.GPIO57=1; EDIS; GpioDataRegs.GPBDAT.bit.GPIO57=0;//GPIO57接口为74HC595D锁存信号 } void main(void) { unsigned long int k=0; InitSysCtrl(); DINT; IER=0x0000; IFR=0x0000; spi_intial(); gpio_init(); //spi_fifo_init(); while(1) { //for(i=0;i<8;i++) //{ for(k=0;k<10;k++){} GpioDataRegs.GPBDAT.bit.GPIO57=0; SpiaRegs.SPITXBUF=0x3f00; while(SpiaRegs.SPISTS.bit.INT_FLAG!=1){}//等待发送 SpiaRegs.SPIRXBUF=SpiaRegs.SPIRXBUF;//清零 //} GpioDataRegs.GPBDAT.bit.GPIO57=1; for(k=0;k<10;k++){} } }