Arduino USB Host Shield имеет питание, но не взаимодействует с устройствамиC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Arduino USB Host Shield имеет питание, но не взаимодействует с устройствами

Сообщение Anonymous »

Итак, это странная проблема, которую я пытаюсь устранить уже пару дней. Я пытался прочитать входные данные мыши, используя USB-хост-экран, подключенный к Arduino UNO, для проекта, над которым я работаю, однако мне не удалось добиться большого прогресса с примерами кодов, предлагаемыми библиотекой USB-хост-шилда. 2.0, потому что по какой-то причине обе подключенные мной мыши не ответили на запросы, которые выполнял код. Я уже проверил напряжение внутри платы с помощью мультиметра, и на экран подается напряжение 3,3 В и 5 В, VBUS и контакт напряжения внутри самого USB-соединения, и все они выдают ~ 5 В при более чем достаточной мощности для работы мышей. функция, один из них 5 В 20 мА, а другой 5 В 200 мА, оба проводные. Я пробовал использовать другие USB-устройства и использовать их пример кода, но ничего не получилось. Однако сами мыши заметили, что они получают питание, включенное незадолго до того, как «снова выключиться» (я проверил это, посмотрев на лазерный датчик под каждой мышкой и проверив, включился ли он, который затем затемнялся при подключении к экрану).
Мне помог друг-мехатроник, и его теория заключалась в том, что мыши каким-то образом получали питание, а почему-то не получали данные, и быстро выключались. Я очень сомневаюсь, что проблема связана с кодом, который я использую, поскольку я просто скопировал и вставил пример кода для доказательства концепции, который идеально компилируется с использованием библиотек, ссылки на которые приведены на странице документации на щите. Но я все равно свяжу это, если какая-то опечатка меня смущает. Я не смог диагностировать проблему самостоятельно, поэтому надеюсь, что кто-нибудь здесь сможет мне помочь

Код: Выделить всё

#include 
#include 

// Satisfy the IDE, which needs to see the include statment in the ino too.
#ifdef dobogusinclude
#include 
#endif
#include 

boolean LeftBtn = false;
boolean RightBtn = false;
boolean LeftBtnRls = false;
boolean RightBtnRls = false;
boolean MouseMoved = false;
int x;
int y;

class MouseRptParser : public MouseReportParser
{
protected:
void OnMouseMove  (MOUSEINFO *mi);
void OnLeftButtonUp (MOUSEINFO *mi);
void OnLeftButtonDown (MOUSEINFO *mi);
void OnRightButtonUp  (MOUSEINFO *mi);
void OnRightButtonDown  (MOUSEINFO *mi);
};
void MouseRptParser::OnMouseMove(MOUSEINFO *mi)
{
x = mi->dX;
y = mi->dY;
MouseMoved = true;
};
void MouseRptParser::OnLeftButtonUp (MOUSEINFO *mi)
{
LeftBtnRls = true;
};
void MouseRptParser::OnLeftButtonDown (MOUSEINFO *mi)
{
LeftBtn = true;
};
void MouseRptParser::OnRightButtonUp  (MOUSEINFO *mi)
{
RightBtnRls = true;
};
void MouseRptParser::OnRightButtonDown  (MOUSEINFO *mi)
{
RightBtn = true;
};

USB     Usb;
USBHub     Hub(&Usb);
HIDBoot    HidMouse(&Usb);

MouseRptParser Prs;

void setup()
{
Serial.begin( 115200 );
#if !defined(__MIPSEL__)
while (!Serial);
#endif
Serial.println("Start");

if (Usb.Init() == -1)
Serial.println("OSC did not start.");

delay( 200 );

HidMouse.SetReportParser(0, &Prs);
}

void loop()
{
Usb.Task();
if(MouseMoved){
Serial.print("dx = ");
Serial.print(x);
Serial.print(" dy = ");
Serial.println(y);
delay(500);
MouseMoved = false;
}
if(LeftBtn){
Serial.println("Left Button Pressed");
LeftBtn = false;
}
if(RightBtn){
Serial.println("Right Button Pressed");
RightBtn = false;
}
if(LeftBtnRls){
Serial.println("Left Button Released");
LeftBtnRls = false;
}
if(RightBtnRls){
Serial.println("Right Button Released");
RightBtnRls = false;
}
}
tl;dr:

[*]Экран установлен правильно.
[*]Экран установлен правильно. правильно припаяны на входе 3,3 В, входе 5 В и выходе 5 В.
[*]На экране Shield работает напряжение 3,3 В и 5 В.
[*]USB-порт принимает Питание 5 В.
[*]Установлены правильные библиотеки.
[*]Код отлично компилируется и загружается.
[*]Последовательная шина обменивается данными правильно. и может печатать все, что не связано с параметрами мыши.
[*]Другие USB-устройства также не работают
[*]Пока ничего не повреждено как я проверял и знаю.
[*]Мышь и другие устройства не включаются должным образом и не отправляют никаких данных на экран или плату.


Подробнее здесь: https://stackoverflow.com/questions/779 ... th-devices
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Запрет на несколько реализаций службы в коллекции обслуживания .NET Generic Host Host
    Anonymous » » в форуме C#
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous
  • памперсы, питание, таблетки
    ВераМ » » в форуме Отдам\возьму за копеечку
    0 Ответы
    3701 Просмотры
    Последнее сообщение ВераМ
  • Можно ли перезагрузить / выключить / питание на нескольких серверах (Linux и Windows) через утилиту IDRAC?
    Anonymous » » в форуме Linux
    0 Ответы
    92 Просмотры
    Последнее сообщение Anonymous
  • Как отображать питание биллер
    Anonymous » » в форуме Python
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Как отображать питание биллер
    Anonymous » » в форуме Python
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C++»