建立文件META-INF\services\com.foo.bar.service.FooService,写入下面两行:
编辑文件META-INF/services/java.sql.Driver,加入所需要的驱动类。
参考资料
已经有驱动的话,一般都有SPI_Init,SPI_Deinit,SPI_Open,SPI_Close,SPI_Read,SPI_Write等,都是调用它们的借口进行编程的,开发好的驱动程序,一般都不需要管它的内部实现的。“如何初始化配置”
每个平台不一样,只能自己摸索了。
注意 spi_delay根据你从设备的速度,你可以从5开始慢慢减小,直到为0./*******************************************************************************
名称:void SPI1_Init()
功能:模拟SPI时序的端口初始化工作
参数:无
时间:2011.1.11
版本:1.0
注意:无
*******************************************************************************/
void SPI1_Init()
{
SPI1_Port|=((1<<SPI1_CS)|(1<<SPI1_MISO)|(1<<SPI1_MOSI)|(1<<SPI1_CLK))
SPI1_DDR|=(((1<<SPI1_CS)|(1<<SPI1_MOSI)|(1<<SPI1_CLK))&(~(1<<SPI1_MISO)))
SPI1_CS_H
SPI1_CLK_L
spi_delay=5
}
/*******************************************************************************
名称:SPI1_Send(unsigned char data)
功能:发送SPI数据
参数:unsigned char data
时间:2011.1.11
版本:1.0
注意:无
*******************************************************************************/
void SPI1_Send(unsigned char data)
{
unsigned char i
SPI1_CS_L //拉低片选信号
SPI1_CLK_L//时钟空闲时为低电平
SPI1_MOSI_L
_delay_us(spi_delay)
for(i=0i<8i++)
{
if(data&(0x80>>i))//高位在前,低位在前改为(0x01<<i)
SPI1_MOSI_H
else
SPI1_MOSI_L
_delay_us(spi_delay)
SPI1_CLK_H//在上升沿更新数据
_delay_us(spi_delay)
SPI1_CLK_L
}
_delay_us(spi_delay)
SPI1_CS_H //拉高片选,完成一次数据传输
}
/*******************************************************************************
名称:unsigned char SPI1_Get()
功能:接收SPI数据
参数:返回data
时间:2011.1.11
版本:1.0
注意:无
*******************************************************************************/
unsigned char SPI1_Get()
{
unsigned char i
unsigned char data=0x00
SPI1_CS_L //拉低片选信号
SPI1_CLK_L//时钟空闲时为低电平
SPI1_MOSI_L
_delay_us(spi_delay)
for(i=0i<8i++)
{
if(SPI1_GetMISO)
data|=(0x80>>i)
_delay_us(spi_delay)
SPI1_CLK_H//在上升沿更新数据
_delay_us(spi_delay)
SPI1_CLK_L
}
_delay_us(spi_delay)
SPI1_CS_H //拉高片选,完成一次数据传输
return data
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)