Jump to content

    

A.Lex

Участник
  • Content Count

    174
  • Joined

  • Last visited

Community Reputation

0 Обычный

About A.Lex

  • Rank
    Частый гость

Recent Profile Visitors

2521 profile views
  1. Спасибо всем откликнувшимся.
  2. Это уже хорошо! Примеры такой реализации есть? Я пока в гугле не нашел.
  3. Чтобы при загрузке проверялся пин (кнопка юзера например) и если нажата - то VCP, отпущена - USB keyboard? Реально это сделать, или нет? Устройство STM32F407DISCO
  4. Как оказалось. не там искал. Причина была в VID и PID. Изменил как написано в статье - заработало. Статья: Реализация профиля клавиатуры USB HID на плате STM32 Mini.pdf Реализация профиля клавиатуры USB HID на плате STM32 Mini.pdf
  5. Ошибка Код 10 ушла, но передачи нет. Что увидел при пошаговом проходе: функция USBD_HID_SendReport(&hUsbDeviceFS, press_report, len); вызывается, а вот в ней if(hhid->state == HID_IDLE) { hhid->state = HID_BUSY; USBD_LL_Transmit (pdev, HID_EPIN_ADDR, report, len); не срабатывает, те. условие if(hhid->state == HID_IDLE) не выполняется. Анализатор USB ругается на HID Descriptor: bLength : 0x09 (9 bytes) bDescriptorType : 0x21 (HID Descriptor) bcdHID : 0x0111 (HID Version 1.11) bCountryCode : 0x00 (00 = not localized) bNumDescriptors : 0x01 Data (HexDump) : 09 21 11 01 00 01 22 2D 00 .!...."-. Descriptor 1: bDescriptorType : 0x22 (Class=Report) wDescriptorLength : 0x002D (45 bytes) Error reading descriptor : ERROR_GEN_FAILURE и на Device Qualifier Descriptor В чем проблема - не вижу.
  6. Несколько дней бьюсь, уже перестал понимать очевидные вещи... Ситуация: проект собран в STM32Cube, мышь работает, курсор скачет. Мне нужна клавиатура. Изменяю дескрипторы (взяты из глубин интернета), и все... Код 10. Ошибку тупо не вижу. Измененные под клавиатуру исходники: Прошу помощи...
  7. Мое ИМХО (я тоже электронщик) HAL для старта удобней - легко и просто сделать исходные настройки периферии. Хотя потом все же придется "лезть в глубь " :)
  8. На сколько я помню, эти пользовательские символы записываются в ОЗУ контроллера ЖКИ (каждый раз при инициализации ЖКИ), это нужно в доке на контроллер смотреть.
  9. Если поможет: const unsigned char arrow_right[] = {0x00,0x08,0x0C,0x0E,0x0C,0x08,0x00,0x00}; const unsigned char arrow_up[] = {0x00,0x00,0x04,0x0E,0x1F,0x00,0x00,0x00}; const unsigned char arrow_down[] = {0x00,0x00,0x00,0x1F,0x0E,0x04,0x00,0x00}; void Load_Special_Chars(void) { uint8_t i; LCD_WrCmd(0x40); Delay_Nus(50); for(i = 0; i < 8; i++) { LCD_WrData(arrow_right); } Delay_Nus(500); LCD_WrCmd(0x40 + ARROW_UP_CHAR); Delay_Nus(50); for(i = 0; i < 8; i++) { LCD_WrData(arrow_up); } Delay_Nus(500); LCD_WrCmd(0x40 + ARROW_DOWN_CHAR); Delay_Nus(50); for(i = 0; i < 8; i++) { LCD_WrData(arrow_down); } Delay_Nus(500); }
  10. Это только в версии 2.7 проявилось, или уже раньше было?
  11. "Волшебную" строку не забыли? /* Enable the TIM Main Output */ TIMx->BDTR |= TIM_BDTR_MOE;
  12. Практика это подтверждает (ИМХО конечно :))
  13. IMHO: 1. счет по фронту сигнала DAT. С4 R3 могут давать слишком медленное нарастание. 2. В доке написано: "Количество последовательных импульсов на DAT определяет настройку емкости. Когда EN сброшен, значение счетчика сначала фиксируется в регистрах управления емкостью, а затем устанавливается счетчик в ноль." - т.е. сигнал EN нужно возвращать в "0".