⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 spi.h

📁 CAN总线设备驱动
💻 H
字号:
#ifndef __ASM_ARCH_SPI_H#define __ASM_ARCH_SPI_H#include <asm/arch/hardware.h>#include <asm/irq.h>#define GPIO_TC_SPIMISO		(GPIO_MODE_ALT0 | GPIO_PULLUP_DIS | GPIO_E11)#define GPIO_TC_SPIMOSI		(GPIO_MODE_ALT0 | GPIO_PULLUP_DIS | GPIO_E12)#define GPIO_TC_SPICLK		(GPIO_MODE_ALT0 | GPIO_PULLUP_DIS | GPIO_E13)inline static void SPISend ( unsigned char val, int channel ){	int flags;	local_irq_save(flags);	if ( channel == 0 ){		SPTDAT0 = val;		while (!(SPSTA0 & 1));	}else if ( channel == 1 ){		SPTDAT1 = val;		while (!(SPSTA1 & 1));	}		local_irq_restore(flags);}inline static char SPIRecv ( int channel ){	if (channel == 0){		return SPRDAT0;	}else if (channel == 1) {		return SPRDAT1;	}else		return -1;}inline static void Set_SIO_mode(int channel, int nSPCON, int nSPPRE, int SPPIN,		int *poldnSPCON, int *poldnSPPRE, int *poldSPPIN){		if(channel==0){		if(poldnSPCON){			*poldnSPCON=SPCON0;		}		SPCON0=nSPCON;		if(poldnSPPRE){			*poldnSPPRE=SPPRE0;		}		SPPRE0=nSPPRE;		if(poldSPPIN){			*poldSPPIN=SPPIN0;		}		SPPIN0=SPPIN;	}else if(channel == 1){		if(poldnSPCON){			*poldnSPCON=SPCON1;		}		SPCON1=nSPCON;		if(poldnSPPRE){			*poldnSPPRE=SPPRE1;		}		SPPRE1=nSPPRE;		if(poldSPPIN){			*poldSPPIN=SPPIN1;		}		SPPIN1=SPPIN;	}else 		return;	udelay(1);}inline static void SPI_initIO(int channel){	if (channel == 0){		set_gpio_ctrl (GPIO_TC_SPIMISO);		set_gpio_ctrl (GPIO_TC_SPIMOSI);		set_gpio_ctrl (GPIO_TC_SPICLK);	}else if (channel == 1) {	}}#endif

⌨️ 快捷键说明

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