Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Микроконтроллеры (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

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)