首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

PE生成的SPI驱动问题

PE生成的SPI驱动问题

我使用的芯片是56F8014,使用PE生成的SPI驱动程序。


在调用驱动发送数据时,我在SCLK和MOSI上都测不到任何数据波形。


各位大侠指点一下。


void SM1_Init(void)
{
  /* SPI_SCR: SPR2=1,SPR1=0,SPR0=1,DSO=1,ERRIE=0,MODFEN=1,SPRIE=0,SPMSTR=1,CPOL=0,CPHA=1,SPE=0,SPTIE=0,SPRF=0,OVRF=0,MODF=1,SPTE=0 */
  setReg(SPI_SCR,46402);               /* Set control register */
  /* SPI_DSR: WOM=0,??=0,??=0,??=0,??=0,??=0,??=0,??=0,??=0,??=0,??=0,??=0,DS3=0,DS2=1,DS1=1,DS0=1 */
  setReg(SPI_DSR,7);                   /* Set data size and control register */
  SerFlag = 0;                         /* Reset all flags */
  EnUser = TRUE;                       /* Enable device */
  HWEnDi();                            /* Enable/disable device according to the status flags */
}
byte SM1_SendChar(SM1_TComData Chr)
{
  if ((!getRegBit(SPI_SCR,SPTE))||(SerFlag&FULL_TX)) { /* Is last character send? */
    return ERR_TXFULL;                 /* If no then return error */
  }
  if (EnUser) {                        /* Is device enabled? */
    setReg(SPI_DTR,Chr);               /* If yes, send character */
  }
  else {
    BufferWrite = Chr;                 /* If no, save character */
    SerFlag |= FULL_TX;                /* ...and set flag */
  }
  return ERR_OK;                       /* OK */
}


void main(void)
{
  /*** Processor Expert internal initialization. DON'T REMOVE THIS CODE!!! ***/
  PE_low_level_init();
  /*** End of Processor Expert internal initialization.                    ***/


  /* Write your code here */ 
  for(;;)
  {
   SM1_SendChar(0x55);
  }
}

56F8014这个芯片我没有用过,我用过HCS12系列的,那个芯片上的SPI同一个模块,有两组SPI的外部接口,通过一个寄存器选择其中的一组接口做为与外部通讯,你看一下你所用的芯片里是不是也有这样的功能.如果寄存器配置正确,发送数据时应该有时钟信号的.
返回列表