Я знаю, что это, вероятно, не самая простая вещь, но я пытаюсь соединить микроконтроллер и ПК через USB.Я не хочу использовать встроенный USART микроконтроллера или преобразованный USB в RS232, его проект предназначен для того, чтобы помочь мне понять различные принципы.
Итак, установление связи со стороны микроконтроллера - это простоЯ знаю его протокол, его относительно легко реализовать на Micro, потому что я непосредственно контролирую все, даже точное время.
Но это не тот случай, что ПК.Я не очень знаком с концепцией Windows, обращающейся с подключенными устройствами.В одном из моих предыдущих вопросов я спрашиваю о том, как Windows работает с устройствами через драйверы.Я понял, что для внутреннего использования Windows драйверы должны иметь некоторый набор функций по умолчанию, доступных для ОС.Я имею в виду, что когда ОС хочет получить доступ к жесткому диску, она вызывает драйвер жесткого диска (который, вероятно, является внутренним в ОС) с конкретными «вопросами», так что это означает, что драйвер жесткого диска должен быть написан для взаимодействия с Windows, чтобы иметь функцию записи в соответствующемместо для вызова ОС.Что-то похожее на GPU, даже DirectX, я имею в виду, что DirectX должен вызывать определенные функции из драйверов, поэтому драйверы должны быть написаны для работы с DX.Я знаю, что многие функции из WinAPI работают сами по себе, но в конце концов даже «простое» окно должно быть записано в фрейм-буфер, используя MMIO для адресации, указанной драйверами.Я прав?
Итак, я ожидал, что в Windows есть внутренние функции, части WinAPI, предназначенные для работы с некоторыми обычно используемыми вещами.Для вызова разработанных производителем драйверов.Но это, кажется, не совсем верно, потому что Windows не имеет возможности общаться через порт Paralel.Я имею в виду, что в WinAPI нет функции для работы с последовательным портом, но есть функции для работы с жестким диском, графическим процессором и т. Д.
Но теперь наступает момент, когда я очень теряюсь.Итак, я думаю, что Windows должна иметь некоторые встроенные функции для связи через USB, потому что, например, она обрабатывает флэш-память USB.Итак, есть ли какая-либо функция WinAPI, предназначенная для того, чтобы пользователь мог управлять USB через эту функцию, или когда я хочу использовать USB сам, мне нужно самому вызывать нужную функцию USB-драйвера?Поскольку все, что вам нужно отправить на USB-контроллер, это адрес устройства и информация, верно?Я имею в виду, мне не нужно писать никаких новых драйверов, я прав?Просто вызвать функцию WinAPI, если она есть, или напрямую вызвать оригинальный драйвер USB.Есть ли в этом смысл?