打印

f2802x SPI 问题(续)

[复制链接]
2972|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zymelo|  楼主 | 2011-8-17 16:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这次就问一个问题吧,上次的问题帮助还没回答我,55555:

还是用F28027调试SPI模块,用的是TI 的例程,文件名spi_loopback,单步调试时发现执行完这条语句后SpiaRegs.SPITXBUF=a;  BUFFULL_FLAG一直是0(即使我禁止回环测试还是为0),就没变化过,明明我往里面写了数据啊!我需要用这个状态位来判断数据有没有全部移出。


目前做的是用SPI,点亮数码管,但是用到一个MAX6951,可以直接驱动8个,用的三个信号线SCLK,SIMO,SP_CS1(片选信号,由GPIO7提供片选信号)。数码管就是不亮,测过三个管脚都有信号输出。。。

有高手能指点一下吗,万能的版主救救我吧

相关帖子

沙发
zymelo|  楼主 | 2011-8-17 16:29 | 只看该作者
#include "DSP28x_Project.h"     // Device Headerfile and Examples Include File

// Prototype statements for functions found within this file.
// interrupt void ISRTimer2(void);
void delay_loop(void);
void spi_fifo_init(void);
void spi_init(void);
void error(void);
void init_max6951(void);
void led_input(Uint16);
unsigned int Spi_TxReady(void);

void main(void)
{

   InitSysCtrl();

   InitSpiaGpio();

   DINT;

   InitPieCtrl();

   IER = 0x0000;
   IFR = 0x0000;

   InitPieVectTable();
   
   //PieCtrlRegs.PIEIER6.bit.INTx1=1;
   //PieCtrlRegs.PIEIER6.bit.INTx2=1;
   //IER=0x20;   
   EINT;
   ERTM;

/**************************************************************************************************/

   EALLOW;
   GpioCtrlRegs.GPAMUX1.bit.GPIO7 = 0;
   GpioCtrlRegs.GPAPUD.bit.GPIO7 = 0;
   GpioCtrlRegs.GPADIR.bit.GPIO7 = 1;     //输出
   GpioCtrlRegs.GPAQSEL1.bit.GPIO7 = 3;
   GpioDataRegs.GPACLEAR.bit.GPIO7 = 1;  
   EDIS;   
   
/*************************************************************************************************/      
// Step 4. Initialize all the Device Peripherals:
// This function is found in DSP2802x_InitPeripherals.c
   //InitPeripherals(); // Not required for this example
   spi_fifo_init();          // Initialize the Spi FIFO
   spi_init();                  // init SPI
   
   init_max6951();
   
// Step 5. User specific code:
// Interrupts are not used in this example.
   for(;;)
   {
     led_input(0x6001);         
     led_input(0x6102);         
     led_input(0x6203);         
     led_input(0x6304);         
     led_input(0x6405);         
     led_input(0x6506);         
     led_input(0x6607);         
     led_input(0x6708);
   }
}

// Step 7. Insert all local Interrupt Service Routines (ISRs) and functions here:

void delay_loop()
{
    long      i;
    for (i = 0; i < 1000; i++){}
}

void error(void)
{
    asm("     ESTOP0");                                                // Test failed!! Stop!
    for (;;);
}

void spi_init()
{
    SpiaRegs.SPICCR.all =0x000F;                     // Reset on, rising edge, 16-bit char bits
    SpiaRegs.SPICTL.all =0x0006;                         // Enable master mode, normal phase,不延迟
                                                 // enable talk, and SPI int disabled.
    SpiaRegs.SPIBRR =0x007F;
    SpiaRegs.SPICCR.all =0x009F;                         // Relinquish SPI from Reset
    SpiaRegs.SPIPRI.bit.FREE = 1;                // Set so breakpoints don't disturb xmission
    SpiaRegs.SPIPRI.bit.TRIWIRE = 0;
}


void spi_fifo_init()
{
// Initialize SPI FIFO registers

    SpiaRegs.SPIFFTX.all=0xE040;
    SpiaRegs.SPIFFRX.all=0x2044;
    SpiaRegs.SPIFFCT.all=0x0;
}

void led_input(Uint16 i)
{                    
           GpioDataRegs.GPACLEAR.bit.GPIO7 = 1;        
           SpiaRegs.SPITXBUF=i;
           //while(!Spi_TxReady());
           DELAY_US(10);
           GpioDataRegs.GPASET.bit.GPIO7 = 1;
           DELAY_US(0.03);  
          
}
   
void init_max6951(void)
{       
           led_input(0x0411);       
           led_input(0x0700);       
           led_input(0x0307);       
           led_input(0x020F);
           led_input(0x01FF);          
}


unsigned int Spi_TxReady(void)
{
        unsigned int i;
        if(SpiaRegs.SPISTS.bit.BUFFULL_FLAG == 1)
        {
                i = 0;
        }
        else
        {
                i = 1;
        }
        return(i);
}

使用特权

评论回复
板凳
zymelo|  楼主 | 2011-8-17 16:30 | 只看该作者
这次大家一定要帮帮我啊

使用特权

评论回复
地板
zymelo|  楼主 | 2011-8-17 17:10 | 只看该作者
这个SPI模块用起来怎么这么别扭啊!!!

使用特权

评论回复
5
zymelo|  楼主 | 2011-8-17 17:59 | 只看该作者
版主来救救我啊 !!!

使用特权

评论回复
6
zymelo|  楼主 | 2011-8-17 21:04 | 只看该作者
算了 一切还是靠自己了。。。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

15

帖子

1

粉丝