spi.c
上传用户:dsfgsdff
上传日期:2022-07-10
资源大小:319k
文件大小:1k
源码类别:

微处理器开发

开发平台:

C/C++

  1. #include "LPC214x.H"
  2. #include "SPI.H"
  3. //#include "config.h"
  4. /**************************************************************/
  5. /************WWW.MCU666.COM************************************/
  6. /************QQ:228939191 月亮*********************************/
  7. #define HC595_CS    (1 << 29) 
  8. /**************************************************************/
  9. void  SPI_init(void) 
  10.     IO0DIR|= HC595_CS;
  11. PINSEL0 = (PINSEL0 & 0xFFFF00FF) | 0x00005500;     // 设置管脚连接SPI
  12.     S0SPCCR = 0x52;                  // 设置SPI时钟分频
  13.     S0SPCR  = (0 << 3) |            // CPHA = 0, 数据在SCK 的第一个时钟沿采样
  14.               (1 << 4) |            // CPOL = 1 
  15.               (1 << 5) |            // MSTR = 1, SPI 处于主模式
  16.               (0 << 6) |            // LSBF = 0, SPI 数据传输MSB (位7)在先
  17.               (0 << 7);             // SPIE = 0, SPI 中断被禁止
  18. }
  19. /*******************************************************************************
  20. ** 函数名称:MSPI_SendData()
  21. ** 函数功能:向SPI总线发送数据。
  22. ** 入口参数:data   待发送的数据
  23. ** 出口参数:返回值为读取的数据
  24. *******************************************************************************/
  25. uint8  MSPI_SendData(uint8 data) 
  26. {   
  27. IOCLR=HC595_CS;
  28.     S0SPDR = data;
  29.      while( 0 == (S0SPSR & 0x80));   // 等待SPIF置位,即等待数据发送完毕
  30. IOSET=HC595_CS;
  31.     return(S0SPDR);
  32. }
  33. /**************************************************************/