Почему полученные данные SPI не являются непрерывными при использовании Python?
Я тестировал с mraa и spidev, оба не могут получать непрерывные данные. Например, когда я отправляю несколько байтов и ожидаю получения данных на ведомом устройстве, например [1,2,3,4,5,6,7,8,9], я могу получить некоторые данные, например [1,1,2,4, 5,6,8,8,9], и каждый раз по-разному.
Код в подчиненном устройстве:
int bytecount = 0;
SPI1->DR = tx_buff[0];
while(cs == 0) {
if(SPI1->SR&0x1) {
rx_buff[bytecount] = SPI1->DR;
bytecount++;
if(bytecount<TX_LEN) {
SPI1->DR = tx_buff[bytecount];
}
}
}
Код в главном устройстве:
import mraa
s=mraa.Spi(0)
s.frequency(5000000)
tx=bytearray(b'\x00\x00\x00\x00\x00\x00\x00\x00\x00')
print(tx)
Код, использующий spidev, аналогичен.
Я надеюсь, что главное устройство сможет получать непрерывные данные. Спасибо!