Перейти к содержанию
    

TOG

Свой
  • Постов

    559
  • Зарегистрирован

  • Посещение

Весь контент TOG


  1. Товарищи, имеется программа для STM32 на Си. Компилятор Keil MDK-ARM, оптимизация отключена. В программе имеется такой массив нулей и единичек. uint8_t data[] = {1,1,1,0,0,0,1,0,1,0,1,1,1,0,0,0,1,0,1,0,1,0,1,0 .. и так далее 180 байт всего}; Я решил поискать эту последовательность в файле прошивки и ничего похожего там не нашел. Как создаются в памяти эти инициализированные переменные при старте программы ? И кто этим занимается ?
  2. Товарищи, имеется фирменное устройство, которое общается со своим внешним модулем по Bluetooth 4.2 (не LowEnergy, а просто BT 4.2 base data rate). (Моя задача подсунуть свое устройство вместо фирменного модуля) Что я выяснил: К этому внешнему модулю можно подключиться с любого Android смартфона. Просто тыкаю на название модуля в списке обнаруженных устройств и происходит соединение. Нашел я у себя Bluetooth 2.0 модуль HC-05. И тоже могу подключиться к HC-05 с любого Android смартфона. Но перед установкой соединения смартфон запрашивает PIN-код. Я в документации вижу, что PIN-код можно поменять, но нигде не вижу как совсем отключить его проверку, чтобы любой Мастер мог подключиться без всяких PIN-кодов. В общем мне нужно как-то отключить в блютус модуле проверку pin-кода. Может конкретно в HC-05 это сделать нельзя ? Или нужен именно BT 4.2 ?
  3. Привет, запустил MIPI DSI дисплей 5" . (720x1280). Выводится статическое изображение. Картинка четкая, стабильная, ничего не трясется. Но как только прогреется некоторые зеленые пиксели кое-где начинают помигивать. Выглядит как-то не очень. Настроек у драйвера дисплея(ILI9881C) море. Не подскажете что проверить ? VCOM , VGL, VGH ... даже не представляю куда лезть. (Использую STM32H743 и мост MIPI DSI SSD2828)
  4. Друзья, пытаюсь освоить такую TFT LVDS панель WF101FSYAPLNG0 В даташите есть последовательность включения и выключения. Если мне не охота заморачиваться, что будет если все эти напряжения я подам как попало ? С RGB дисплеями я не заморачивался, хотя там тоже есть какая-то последовательность включения и выключения и все работало. Прикладываю даташит на нее, т.к на сайте он не полный. FW101FSYAPLNN0 1280x800 (10.1in CTP LVDS TFT).pdf
  5. Да, отладка работает. Загрузчик отработал и передал управление основной программе и отладчик остановился на main.
  6. Это чтобы через полгода, когда понадобится запустить этот проект я не вспоминал нужен ли приложению бутлоадер и где его искать, а просто нажал F8 и все заработало
  7. Гениально, x893 ! Всего одна строчка. Создаем файл bootloader.ini с одной командой "LOAD Bootloader.hex" Потом в основном проекте идем в Options->Utilities->Init File и прицепляем там этот init файл. Теперь при нажатии F8(download) автоматом прошивается bootloader.hex и основной проект. Красота !
  8. Понял, Arlleex. Спасибо. Поподробнее бы чуть-чуть. Не пойму как эти конфигурации делать и где этот Debug init script ?
  9. Друзья, сделал простенький бутлоадер, заливаю его в STM32 по адресу 0x08000000. Потом заливаю основную программу по адресу 0x0800D000. Все работает, бутлоадер запускается, потом передает управление основной программе. Не могу сообразить как сделать, чтобы при заливке основной программы в чистый МК, туда автоматом бы заливался и бутлоадер ? (Пользуюсь Keil MDK ARM)
  10. Друзья, хочу на Али купить LVDS кабель типа такого(40 см). Подскажите пожалуйста название ответных разъемов ? Мне нужно соединить 2 платы. На одной плате RGB->LVDS мост и разъем. На второй плате разъем и LVDS TFT панель.
  11. Очень крутая штука. В продаже нашли такой модуль IDO-SOM2D02 Пишут, что в нем установлен Linux Правильно ли я понимаю, что там уже есть все драйвера для работы с периферией установленной на модуле ? То есть имеется какой-то набор API ? Примеры программ ?
  12. Спасибо aaarrr. Может есть какое-то народное решение ? (Популярный в сообществе процессор для вывода на Full HD панель) ?
  13. Друзья, сейчас работаем с STM32H743. Небольшие дисплеи(до 800х600) он тянет и по RGB и через MIPI DSI мост. Есть потребность подключить большую Full HD панель или хотя бы 1920x720 (типа этого). Как вообще такие панели подключают к своим проектам ?
  14. Друзья, программирую для МК STM32 и во все программы вставляется защита от клонирования (шифрование данных по UID). Сейчас настройка этой защиты делается вручную, что очень долго, а главное я постоянно косячу с ее настройкой и защита постоянно затирает что-то лишнее. В итоге отладка занимает по несколько дней. Я хотел бы сделать как-то так: В исходном тексте программы вставляю пору комментариев (PROTECT_BEGIN), (PROTECT_END) указывая между ними какие данные нужно шифровать. Потом перед компиляцией запускается моя прога, которая находит в исходниках данные, которые нужно шифровать и сама вставляет в исходник весь нужный код для работы защиты. Потом как обычно вызывается компилятор. // PROTECT_BEGIN uint8_t data1[] = {12, 13, 14, 15}; uint8_t data2[] = {16, 17, 18, 19}; ... uint8_t data99[] = {20, 21, 22, 23}; // PROTECT_END Подскажите, может есть уже какие-то заточенные под разбор текстов инструменты ? Пока, что я планирую на C это делать.
  15. Точно ! Подключил другим кабелем, есть +5 Вольт. Спасибо Сергей Борщ !
  16. Друзья, купили на Али такой разъем USB Type-C для питания устройства, данные передавать не надо. На разъеме всего 2 контакта VBUS и GND. Пытаюсь подключить это все к компу через кабель USB2.0 - Type-C. Питания нет. Кабель рабочий, другие устройства от него питание получают. Как получить питание от USB Type-C ? (Подключать будем и через стандартный Type-C кабель и через кабель-переходник USB2.0 - Type-C)
  17. Друзья, есть инфракрасный приемопередатчик и я отключаю прием на время пока идет передача. Отключаю глобальное прерывание USART1: HAL_NVIC_DisableIRQ(USART1_IRQn) // Вижу, что бит Enable сбросился Передаю данные по USART1 (без использования прерываний). У меня почему-то выставляется бит Pending в USART1 global interrupt Пытаюсь сбросить бит Pending (HAL_NVIC_ClearPending(USART1_IRQn). Не выходит. Бит не сбрасывается. Потом включаю глобальное прерывание USART1: HAL_NVIC_EnableIRQ(USART1_IRQn) // Вижу, что бит enable установился. И срабатывает прерывание которое обрабатывает мусор. Как мне напрочь отключить прерывание, чтобы бит Pending не выставлялся ? Или как сбросить бит Pending ?
  18. Друзья, Имеется проект созданный в CubeMX для STM32. Мне нужно, чтобы мой код (тот, что между #ifndef...#endif) был перед функцией MX_TouchGFX_Init, чтобы TouchGFX мог начать грузить графику с QSPI флешки. Мне каждый раз при перегенерации проекта в CubeMX приходится помнить, что надо вручную вставить этот код перед MX_TouchGFX_Init, потому-что из этого места куб сносит все, что не его. Как бы кубу это объяснить ? /* USER CODE BEGIN SysInit */ /* USER CODE END SysInit */ /* Initialize all configured peripherals */ MX_GPIO_Init(); MX_TIM6_Init(); MX_LTDC_Init(); MX_FMC_Init(); MX_CRC_Init(); MX_QUADSPI_Init(); MX_DMA2D_Init(); MX_DMA_Init(); MX_USART1_UART_Init(); MX_TIM2_Init(); MX_ADC3_Init(); #ifndef SIMULATOR qfs.hqspi = &hqspi; qfs.qspi_addr = (__IO uint8_t *)(QSPI_FLASH_ADDR); Sta = FlashDeviceInit(&qfs); Sta = FlashDeviceSetMemoryMappedMode(&qfs); #endif MX_TouchGFX_Init(); /* USER CODE BEGIN 2 */
  19. Возможно подойдет вариант 3. Сделаю свое описание структуры для каждой ф-и. 1. typedef struct { int16_t quart; int16_t X ... еще много всякого } DSP_DATAtype1 2. typedef struct { int8_t Temp; int8_t Bat ... еще много всякого } DSP_DATAtype2 Сейчас память выделяется статически во время компиляции: DSP_DATAtype1 DspData1; А как сделать это ? (Мне бы хотелось во время работы как-то переключать описания структуры)
  20. Друзья, есть глобальная структура с кучей переменных. Указатель на эту структуру скармливается функции-обработчику обрабатывающей сию структуру по своему алгоритму. Но теперь функций стало 10, а потом их станет 100, и алгоритм работы у всех функций будет разный. И переменные в структуре для новых функций имеют совсем разный смысл. Мне бы хотелось как-то использовать один участок памяти для структуры, но как-то называть переменные в ней нормальными понятными именами соответствующими выбранной функции-обработчику. Подскажите как это сделать ?
×
×
  • Создать...