驱动没有提供spi 硬件驱动,使用模拟spi ,进行调试
spi 根据cpol 和 cpha 有4种模式
参看如下帖子的基础之上,稍作修改调通了了应用程序
https://blog.csdn.net/foxclever/article/details/125586266
测试通过的模式3代码
void SpiInOut(unsigned char senddata)
{
unsigned char i;
CLK_L();
for(i=0;i<8;i++)
{
if((senddata<<i)&0x80)
{
SDI_H();
}
else
{
SDI_L();
}
usleep(TIME);
CLK_L();
usleep(TIME);
CLK_H();
}
CLK_H();
usleep(TIME);
}
unsigned char SpiRCVaByte(void)
{
unsigned char i,temp;
temp = 0;
CLK_L();
usleep(TIME);
for(i=0;i<8;i++)
{
CLK_L();
usleep(TIME);
temp=(temp<<1);
if(1 == SDO_READ())
{
temp |= 0x01;
}
else
{
temp &= 0xfe;
}
CLK_H();
usleep(TIME);
}
CLK_H();
return temp;
}
void SPIwriteBuffer(char *buffer, char size )
{
char i;
SEL_L();
for( i = 0; i < size; i++ )
{
SpiInOut( buffer[i] );
}
SEL_H();
}
void SPIreadBuffer(char *buffer, char size )
{
char i;
SEL_L();
for( i = 0; i < size; i++ )
{
buffer[i] = SpiRCVaByte();
}
SEL_H();
}
测试结果
版权声明:本文为qq_27087571原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。