新闻  |   论坛  |   博客  |   在线研讨会
CC1110 SPI 程序
0750long | 2009-07-15 13:48:15    阅读:3957   发布文章

CC1110 SPI 程序

 

CC1110 SPI 口程序icon

电路连接如下图:


SSN:P04    SCK:P05
MOSI:P03    MISO:PO2

和硬件SPI口有关的配置为P口的功能,
SPI口所在位置,SPI口的波特率,时钟
极性SPOL,时钟相伴CPHA,中断,当然还
有主从设备等设置.如果是和别的设备
传数的话,还应该注意高/低位先传的
问题。文字上就说这么多,再贴一段
程序:

/***********************************************************/
//将芯片初始化到主/从模式
void INIT_SPI(void)
{
  IO_FUNC_PORT_PIN(0,2,IO_FUNC_PERIPH);
  IO_FUNC_PORT_PIN(0,3,IO_FUNC_PERIPH);
  //IO_FUNC_PORT_PIN(0,4,IO_FUNC_PERIPH);
  IO_FUNC_PORT_PIN(0,5,IO_FUNC_PERIPH);

  IO_PER_LOC_SPI0_AT_PORT0_PIN2345();     //串口0,位置1
#ifdef SPI_MASTER_MODE
  SPI_SETUP(0,57600,MY_SPI_M_OPTIONS);    //SPI0,57600,
  IO_FUNC_PORT_PIN(0,4,IO_FUNC_GIO);
  IO_DIR_PORT_PIN(0,4,IO_OUT);
  P0_4 = 0;
#else
  SPI_SETUP(0,57600,MY_SPI_S_OPTIONS);
  IO_FUNC_PORT_PIN(0,4,IO_FUNC_PERIPH);
#endif
  INT_ENABLE(INUM_URX0,INT_ON);
  INT_ENABLE(INUM_UTX0,INT_ON);
  INT_GLOBAL_ENABLE(INT_ON);
}

 

/**********************************************************************/
//主模式发一字节
void SPI0_M_SEND_BYTE(BYTE data)
{
  while(USART0_BUSY());
  U0DBUF = data;
  while(!USART0_BYTE_TRANSMITTED());
  U0CSR &= ~0x02;
}

void SPI0_S_SEND_BYTE(BYTE data)
{
  while(USART0_BUSY());
  U0DBUF = data;
}

 

================================

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客