| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Микроконтроллеры (MCU) и микропроцессоры (MPU) > AT91SAM7 |
| Автор: Ivan. 10.2.2007, 11:27 |
| Привет всем! В данный момент осваиваю работу с AT91SAM7S(X) через USB. Обложился книгами по USB и т.д. Испыхтелся весь, пока не подумал, что может быть незачем изобретать велосипед, и кто нибудь уже написал и драва и софт. Нашел пример для AT91SAM7S. Там есть софт для контроллера, драйвер, DLL и пример для VC++. В DLL есть 5 функций: - поиск устройств; - подключение к устройству; - отключение; - отправка данных; - чтение данных. Все эти функции вполне удовлетворяют мои требования, за исключением функции приема данных. Данные можно принимать только известного размера, отправленного от контрллера. Например контроллер отправил мне 100 байт, если я начну читать 99 байт или 101 байт, то функция чтения зависнет на секунду и в результате выдаст ошибку (но данные в буфер запишет). Пакет не удаляется до тех пор, пока я не прочитаю точный размер данных. А я же незнаю сколько байт прислал мне контроллер, никаких средств для определения размера принятых данных в DLL нет, только если работу реализовать по запросу. Например: [вопрос] Есть данные? [ответ] Есть. [вопрос] Сколько? [ответ] N байт. [вопрос] Дай N байт. А контроллер по какой либо причине не отправил данный, я начинаю читать и КАЮК (все рассинхронизировалось). Толи пример какойто упращенный, толи я чтото недопонял. Буду рад любому исходнику. |
| Автор: cardinal 11.2.2007, 19:45 |
| Зайди сюда http://electronix.ru/forum/index.php |