Bei meinem STM32H7 Projekt habe ich gerade ein problem bez SPI6 als
slave. Gegenstelle ist ein FPGA welches mit 50MHz taktet und dabei NSS
über die gauer von 2 sCLK (dauer - sck clockt während dieser zeit nicht)
hoch hält bevor der nächste 16 bit transfer startet.
Im code habe ich versuchsweise:
HAL_SPI_TransmitReceive_IT(&hspi6, &SPI6send, &SPI6recv, 1); im init und
dann die in der ISR:
void HAL_SPI_TxCpltCallback(SPI_HandleTypeDef *hspi){
if(hspi==&hspi6){
HAL_SPI_TransmitReceive_IT(&hspi6, &SPI6send, &SPI6recv, 1);
}}
Welches als STM master bei SPI1 auch so funktioniert, nur halt bei SPI6
slave nicht.
HAL_SPI_TransmitReceive_IT sollte doch bei slave auch funktionieren,
einfach die Daten werden bereitgestellt und wenn der Master dann den TX
abgeschlossen hat interrupt.
Bedenken habe ich, dass die NSS =1 zeit nicht genügt für die ISR, anyway
sollte doch zumindest jeden 2. Transfer ausführern. Die ISR wird jedoch
nie bez SPI6 aufgerufen.