访问电脑版页面

导航:老古开发网手机版其他

DSP5402之硬件SPI配置

导读:
关键字:
配置硬件SPI

void SystemObj::McBSP1Init(void)//SPI配置
{
  McBSP1->SPSA = SPCR1;
  McBSP1->SPSD = 0;
//  McBSP1->SPSD &= ~(1 << SPCR1_RRST);//禁止串口接收
  __nop();
  __nop();
  McBSP1->SPSA = SPCR2;
  McBSP1->SPSD = 0;
//  McBSP1->SPSD &= ~(1 << SPCR2_XRST);//禁止串口发送
  __nop();
  __nop();
  McBSP1->SPSA = SPCR1;
  McBSP1->SPSD = (0x03 << SPCR1_CLKSTP);//CLKSTP=11b
  __nop();
  __nop();
  McBSP1->SPSA = PCR;
//  McBSP1->SPSD = (1 << PCR_FSXM) (1 << PCR_CLKXM)\
//                (1 << PCR_FSXP) (1 << PCR_CLKXP);//CLKXP=1,SS=1
  McBSP1->SPSD = (1 << PCR_FSXM) (1 << PCR_CLKXM)\
                  (0 << PCR_FSXP) (1 << PCR_CLKXP);//CLKXP=1,SS=0
  __nop();
  __nop();
  McBSP1->SPSA = SRGR1;
  McBSP1->SPSD = (0x07 << SRGR1_FWID) (0x80 << SRGR1_CLKGDV);
  __nop();
  __nop();
  McBSP1->SPSA = SRGR2;
  McBSP1->SPSD = (1 << SRGR2_CLKSM);
  __nop();
  __nop();
  McBSP1->SPSA = RCR1;
  McBSP1->SPSD = (0x00 << RCR1_RFRLEN1);//8BIT
  __nop();
  __nop();
  McBSP1->SPSA = XCR1;
  McBSP1->SPSD = (0x00 << XCR1_RFRLEN1);//BIT
  __nop();
  __nop();
  McBSP1->SPSA = RCR2;
  McBSP1->SPSD = (0x01 << RCR2_RDATDLY);
  __nop();
  __nop();
  McBSP1->SPSA = XCR2;
  McBSP1->SPSD = (0x01 << XCR2_RDATDLY);
  __nop();
  __nop();
  McBSP1->SPSA = SPCR2;
  McBSP1->SPSD = (1 << SPCR2_GRST) (1 << SPCR2_XRST) (1 << SPCR2_FRST);
  __nop();
  __nop();
}   


void LedObj::LedDisplay(unsigned char cData)
{
static const unsigned char LedTab[] =
{
  ~LedChar0,
  ~LedChar1,
  ~LedChar2,
  ~LedChar3,
  ~LedChar4,
  ~LedChar5,
  ~LedChar6,
  ~LedChar7,
  ~LedChar8,
  ~LedChar9,
  ~LedCharA,
  ~LedCharB,
  ~LedCharC,
  ~LedCharD,
  ~LedCharE,
  ~LedCharF
};

  cData = LedTab[cData & 0xff];
  McBSP1->DXR1 = cData & 0xff;//向595发送串行数据
  __nop();
  __nop();

  McBSP1->SPSA = SPCR2;
  while((McBSP1->SPSD & (1 << SPCR2_XRDY)) == 0) {
    __nop();
    __nop();
  }
}
//注本程序已经过硬件测试.
来源:   作者:  2006/9/25 16:50:53
栏目: [ ]

相关阅读

安森美推出新的高功率图腾柱PFC控制器,满足具挑战的能效标准

动态功耗低至60μA/MHz!助力设备超长续航,首选国民技术低功耗MCU!