代码如下:
tr[0].tx_buf = (unsigned long)tx;
tr[0].rx_buf = NULL;
tr[0].len = 2;
tr[0].delay_usecs = 0;
tr[0].speed_hz = Speed;
tr[0].bits_per_word = Bits;
tr[0].cs_change=0; //add to keep cs actived
tr[1].tx_buf = (unsigned long)par;
tr[1].rx_buf = NULL;
tr[1].len = 4;
tr[1].delay_usecs = 0;
// tr[1].speed_hz = 0;
// tr[1].bits_per_word = 0;
tr[1].speed_hz = Speed;
tr[1].bits_per_word = Bits;
tr[1].cs_change=0; //add to keep cs actived
tr[2].tx_buf = (unsigned long)tx2;
tr[2].rx_buf = NULL;
tr[2].len = 2;
tr[2].delay_usecs = 0;
tr[2].speed_hz = Speed;
tr[2].bits_per_word = Bits;
tr[2].cs_change=0; //add to keep cs actived
ret = ioctl(m_fd, SPI_IOC_MESSAGE(3), tr );
我们在ESM335X上面跑的时候,硬件的CS一直保持低电平,无论有没有cs_change=0的语句,但在6800上cs在中间一直会回到高电平,如下图
[此贴子已经被作者于2018-11-27 15:54:58编辑过]