用IO口模拟SPI控制ADS1241,CS脚硬件接地,采出的值全是24位的高电平;
void ADS1241_SendByte(unsigned int Byte) {int bit;volatile unsigned int DIN_DATA=0;for(bit=0;bit<8;bit++){DIN_DATA =(Byte & 0x80);Byte <<= 1;ADS1241_fSCLK(1);//与时钟极性(POL)有关,此处POL=0;if(DIN_DATA & 0x80) //此处0x20与Din接法有关;P3OUT |= ADS1241_DIN;elseP3OUT &= ~ADS1241_DIN;_delay_cycles(10);ADS1241_fSCLK(0);//_delay_cycles(50);} }
时序也在示波器上看过,不知道是不是上面发送数据有问题,求大神们指导一下,非常感谢
kernel&driver:
kernel&driver:
回复 kernel&driver:
上面是复位的 SCLK 和 DIN时序图,
user151383853:
回复 kernel&driver:
这个图上, 有8位数据, 而最后一位的低电平