[an error occurred while processing this directive]
|
Может я конечно не прав, но...
У меня тоже RS-485, но я все делаю через ДМА с дескрипторами
(первый дескр на заголовок, 2-й на данные и 3-й на чек сумму)
Причем есть 2 варианта.
1. использование флага DMA_RUN
в этом случае после получения прерывания TX_EMPTY в самом обработчике
ждем когда ФИФО ДМА реально уйдет и только после этого прекращаем передачу. в этом случае плохо то, что приходится сидеть в обработчике
и ждать когда уйдет 4 байта (это длина ФИФО ДМА для 8-битных слов)
2. так как длина ФИФО 4 байта, то последний дескриптор передает на 4
байта больше чем нужно, но в обработчике не ждем никого, а сразу обрываем передачу. таким образом эти 4 байта никуда не идут и никому
не мешают
E-mail: info@telesys.ru