开始用stm32写驱动但是检测不到波形,于是改用msp430f5529来写程序:
我写程序的思路是:1.空闲时间SCLK为0 2.因为DOUT在上升沿更新数据,DIN在下降沿锁存数据,所以我在SCLK=1的时候进行更改DOUT和DIN之后中间有所延时,但是不知道为什么,现实的总是乱码(并未转换,读出什么就打什么)
想请帮我看看我写的模拟SPI通讯的是否正确,另外想问问为什么会有这种情况,有什么解决的问题
int ADS1118_WR_Data(int ADS_InitData)
{
int databuffer,datareceiver[2]={0,0};
char i,j;
ADS_CS(0);
ADS_SCLK(0);
__delay_ms(1);
databuffer=ADS_InitData;
for(j=0;j<2;j++)
{
for(i=0;i<16;i++)
{
ADS_SCLK(1);
__delay_us(5);
if(ADS_DOUT)
datareceiver[j]|=(1<<(15-i));
ADS_DIN(databuffer&(1<<i)); //设置的ADS_InitData是从低到高的
__delay_us(5);
ADS_SCLK(0);
__delay_us(10);
}
}
ADS_CS(1);
__delay_ms(30);
return (datareceiver[0]);
}
不知道有没有问题