stm32/spi: Fix SPI driver so it can send/recv more than 65535 bytes.
stm32/spi: Fix SPI driver so it can send/recv more than 65535 bytes.

The DMA peripheral is limited to transferring 65535 elements at a time so
in order to send more than that the SPI driver must split the transfers up.

The user must be aware of this limit if they are relying on precise timing
of the entire SPI transfer, because there might be a small delay between
the split transfers.

Fixes issue #3851, and thanks to @kwagyeman for the original fix.

tralamazza/micropython,adafruit/circuitpython,MrSurly/micropython,swegener/micropython,henriknelson/micropython,MrSurly/micropython,pozetroninc/micropython,MrSurly/micropython,selste/micropython,adafruit/micropython,kerneltask/micropython,bvernoux/micropython,kerneltask/micropython,bvernoux/micropython,swegener/micropython,tobbad/micropython,pfalcon/micropython,swegener/micropython,kerneltask/micropython,pramasoul/micropython,trezor/micropython,pozetroninc/micropython,adafruit/circuitpython,tobbad/micropython,selste/micropython,selste/micropython,trezor/micropython,pramasoul/micropython,bvernoux/micropython,pozetroninc/micropython,adafruit/micropython,trezor/micropython,pramasoul/micropython,pfalcon/micropython,trezor/micropython,kerneltask/micropython,henriknelson/micropython,pozetroninc/micropython,MrSurly/micropython,bvernoux/micropython,tobbad/micropython,adafruit/micropython,pfalcon/micropython,adafruit/circuitpython,kerneltask/micropython,tralamazza/micropython,pramasoul/micropython,tobbad/micropython,selste/micropython,pramasoul/micropython,tralamazza/micropython,trezor/micropython,adafruit/micropython,tralamazza/micropython,tobbad/micropython,adafruit/circuitpython,adafruit/micropython,pfalcon/micropython,henriknelson/micropython,swegener/micropython,adafruit/circuitpython,selste/micropython,pozetroninc/micropython,henriknelson/micropython,bvernoux/micropython,adafruit/circuitpython,henriknelson/micropython,pfalcon/micropython,swegener/micropython,MrSurly/micropython