p18_spi.c

来自「PIC18系列单片机」· C语言 代码 · 共 51 行

C
51
字号
#include "..\include.h"

#define SPI_TIMEOUT								100


void SPI_Init( void )
{
    TRISC &= 0xD7;               // clear bit 5 and bit3 to set SDO and SCK as output
    TRISC |= 0x10;               // set bit 4 to set SDI as input
    SSP1IE = 0;
    SSP1IF = 0;
    //spi mode 3
    SSP1STAT = 0x00;//CKE=0, transmite on idle to active
    SSP1CON1 = 0x30;//ckp=1, idle high
}

//#pragma optimize = z 0
void SPI_Putc( unsigned char data )
{
	unsigned short i;
	
	for ( i=SPI_TIMEOUT; i; i-- ) {		// in general the count is set to 100, this is about 1ms timeout
		SSP1BUF;				// Reset buffer
		if ( !BF1 )
			break;
	}
	SSP1BUF = data;
	for ( i=SPI_TIMEOUT; i; i-- ) {		// in general the count is set to 100, this is about 1ms timeout
		if ( BF1 )
			break;
   }
   Delay10Us( 10 );
}


unsigned char SPI_Getc( void )
{
	unsigned short i;

	for ( i=SPI_TIMEOUT; i; i-- ) {		// in general the count is set to 100, this is about 1ms timeout
      if ( BF1 )
         break;
   }
	return SSP1BUF;
}

void SimSPIInit( void )
{

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?