STM32+AD9283でオシロを作った人がいましたらアドバイスをお願いします。

STM32F407のシステムクロックは168MHzなので、1/4の42MHzをMCOからAD9283に入力してパラレル出力(42Msps)をGPIOで取得するつもりです。
GPIOの取得に使う「value[0]=GPIOA->IDR」は1クロックで実行できるようなので以下のようにしてSTM32とAD9283のタイミングを合わせています。

value[1]=GPIOA->IDR;asm("NOP");asm("NOP");asm("NOP");
value[2]=GPIOA->IDR;asm("NOP");asm("NOP");asm("NOP");
value[3]=GPIOA->IDR;asm("NOP");asm("NOP");asm("NOP");
〜中略〜
value[1023]=GPIOA->IDR;asm("NOP");asm("NOP");asm("NOP");

現状としては一応数値は取れているのですが、値がデタラメになってしまいます。
どなたか上手く動かす方法を教えていただけないでしょうか?