老师好,在采集心电转换数据的时候出现了问题。我的目的是采集一个通道的数据通过430的串口发出。按照数据输出的组成共216bit,那么应该用27次接收缓存来接收吧。 我调用以下函数时设置len为27. 并把读到的数据发到dat数组中,按理说这样每次循环读取以后。dat【0】中应该为c0是吧,如果我要取通道1的数据发出,则应是dat[3]~dat[5]吧 但是我在程序调用前设置断点运行发查看d[0]却不是c0. 请问可能是什么原因。 这个连续读的子程序中是否需要设置延时,我理解只要加while判定语句就可以了。
主程序里函数调用为 ADS1298_SpiReadData_Continue( d,27);
uchar ADS1298_SpiReadData_Continue(uchar dat[],uchar len)
{
uchar i;
for(i=0;i<len;i++)
{
ADS1298_SpiSend_CMD_One(0); // 发送SPI时钟,DOUT=0
while(!(IFG2 & URXIFG1) ); //当buffer接收到一完整字节
dat[i] = U1RXBUF; }
while (!(IFG1 & UTXIFG0)); // TX缓存空闲?
U0TXBUF = dat[3];
while (!(IFG1 & UTXIFG0)); // TX缓存空闲?
U0TXBUF = dat[4];
while (!(IFG1 & UTXIFG0)); // TX缓存空闲?
U0TXBUF = dat[5];
}
return TRUE;
}