my opinion :
El Master deve mandar , el Esclavo ovedecer .
Asi que Master , como no me digas lo que tengo que hacer lo tienes claro .
Se podria utilizar DMA1CNT variable . (No se si es este el que determina el tamaño a recivir)
Este tamaño lo podria calcular el Esclavo segun el previo comando que reciva y conocido por los dos ó que sea el Master quien se lo diga directamente .
Por defecto DMA1CNT = TAMAÑO_COMANDO // por ejemplo 2 words
En cuanto el Esclavo reciva previo comando y sepa lo que tiene que hacer maneja DMA1CNT segun le convenga .
Se podrian usar 2 registros y alguna banderilla en cuanto el Esclavo ya sepa lo que se le avecina .
PAQUETES_COMPLETOS = TOTAL_A_RECIVIR / DMA_BUFFER;
PICO = TOTAL_A_RECIVIR mod DMA_BUFFER;
void __attribute__((__interrupt__)) _DMA1Interrupt(void)
if
PAQUETES_COMPLETOS-- <> 0 DMA1CNT =
DMA_BUFFER else DMA1CNT =
PICO Es solo para hacerme entender y una posible manera de hacerlo .
tambien SSEN para el Master para que sepa en todo momenteo si el Esclavo da avasto que seguramente cobra por horas
.