1. Попробуйте уменьшить скорость выборки данных.
2. Попробуйте увеличить количество выборок в буфере, так как можете просто не успеть среагировать на прерывание при малом размере буфера. Точнее, обработчик запустится, но может уже настать момент прерывания по заполнению буфера.
3. Прерывание дейсвтительно будет генерироваться, когда буфер заполнен на половину.
Попробуйте ещё быстрый вывод в консоль - тогда будет точно понятно, что где произошло.
upd:
Кстати, а точно срабатывают прерывания по половине передачи и полной? Есть подозрение..