您现在的位置: 主页 > MCU > 单片机技术应用 > LPC1768的SPI通讯 -
本文所属标签:
为本文创立个标签吧:

LPC1768的SPI通讯 -

来源: 网络用户发布,如有版权联系网管删除 2018-09-06 

[导读]SPI是一种全双工串行接口,可处理多个连接到指定总线上的主机和从机。在数据传输过程中总线上只能有一个主机和一个从机通信。在数据传输中,主机总是会向从机发送一帧8到16个位的数据,而从机也总会向主机发送一帧字

SPI是一种全双工串行接口,可处理多个连接到指定总线上的主机和从机。在数据传输过程中总线上只能有一个主机和一个从机通信。在数据传输中,主机总是会向从机发送一帧8到16个位的数据,而从机也总会向主机发送一帧字节数据

本文引用地址: http://www.21ic.com/app/mcu/201808/782931.htm

使用代码如下

void SpiInit(SPI_SPEED speed)

{

u8 div=25000000/speed;

LPC_SC->PCONP"=(1<<8);//打开SPI时钟

LPC_SC->PCONP|=(1<<15);//打开GPIO时钟

//sck

LPC_PINCON->PINSEL0&=~(0x03u<<30);

LPC_PINCON->PINSEL0|=(0x03u<<30);

//csn

LPC_PINCON->PINSEL1&=~(0x03<<0);

// LPC_PINCON->PINMODE1 &= ~(0x03<<0);

// LPC_PINCON->PINMODE_OD0 &= ~(0x01<<16);

P0dir(16)=1;

//miso

LPC_PINCON->PINSEL1&=~(0x03<<2);

LPC_PINCON->PINSEL1|=(0x03<<2);

//mosi

LPC_PINCON->PINSEL1&=~(0x03<<4);

LPC_PINCON->PINSEL1|=(0x03<<4);

SPI_CS_HIGH;

//spi接口初始化 每次8位数据 sck上升沿采样 sck高有效 主模式 禁止中断 msb高位在前

LPC_SPI->SPCR=(0<

|(0

if(div<8)div=8;

LPC_SPI->SPCCR=div;

}

u8 SpiRW(u8 writeData)

{

LPC_SPI->SPDR=writeData;

while((LPC_SPI->SPSR&0x80)!=0x80);

writeData=(LPC_SPI->SPDR)&0xff;

returnwriteData;

}

void SpiSetSpeed(SPI_SPEED speed)

{

u8 div=25000000/speed;

if(div<8)div=8;

LPC_SPI->SPCCR=div;

}

void SpiSetSpeedHigh(void)

{

SpiSetSpeed(SPI_SPEED5);

}

void SpiSetSpeedLow(void)

{

SpiSetSpeed(SPI_SPEED1);

}




              查看评论 回复



 

"LPC1768的SPI通讯 -"的相关文章

网站地图

围观()