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

valeros

Участник
  • Постов

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

  • Посещение

Репутация

0 Обычный

Контакты

  • Сайт
    Array
  • ICQ
    Array

Информация

  • Город
    Array

Посетители профиля

933 просмотра профиля
  1. Посмотрите библиотеку RF22 для Arduino, например эту https://github.com/jeffminton/RF22
  2. Добрый день, помогите понять в чем разница между линковкой проекта с помощью объектных файлов и линковки проекта с этими же объектными файлами, но запакованными в статическую библиотеку? В обоих случаях, проект собирается без ошибок, но в прошивке со статическими библиотеками контроллер сваливается в exception. Например: > ~/.platformio/packages/toolchain-xtensa/bin/xtensa-lx106-elf-g++ -o .pioenvs/esp01_8266/firmware.elf -nostdlib -Wl,--no-check-section -u call_user_start -Wl,-static -T ~/.platformio/packages/ldscripts/script.ld .pioenvs/esp01_8266/src/piomain.o -L~/.platformio/packages/sdk-esp8266/lib -L.pioenvs/esp01_8266 -Wl,--start-group .pioenvs/esp01_8266/libESP8266WebServer.a .pioenvs/esp01_8266/libESP8266WiFi.a -lpp -lmain -lwpa -llwip -lnet80211 -lphy -lhal -lgcc -lc -Wl,--end-group Если заменить библиотеки ".pioenvs/esp01_8266/libESP8266WebServer.a ", ".pioenvs/esp01_8266/libESP8266WiFi.a" на соответствующие объектные файлы прошивка работает: ~/.platformio/packages/toolchain-xtensa/bin/xtensa-lx106-elf-g++ -o .pioenvs/esp01_8266/firmware.elf -nostdlib -Wl,--no-check-section -u call_user_start -Wl,-static -T ~/.platformio/packages/ldscripts/esp8266.ld .pioenvs/esp01_8266/src/piomain.o -L~/.platformio/packages/sdk-esp8266/lib -L.pioenvs/esp01_8266 -Wl,--start-group .pioenvs/esp01_8266/ESP8266WebServer/ESP8266WebServer.o .pioenvs/esp01_8266/ESP8266WiFi/ESP8266WiFi.o .pioenvs/esp01_8266/ESP8266WiFi/WiFiClient.o .pioenvs/esp01_8266/ESP8266WiFi/WiFiServer.o .pioenvs/esp01_8266/ESP8266WiFi/WiFiUdp.o -lpp -lmain -lwpa -llwip -lnet80211 -lphy -lhal -lgcc -lc -Wl,--end-group Заранее спасибо!
  3. STM32F100C4

    Если точнее, то такого пина нет только в корпусах 64 и меньше.
  4. STM32F100C4

    В этом документе есть ответы на все ваши вопросы: Getting started with STM32F10xxx hardware development
  5. HY-Mini STM32V + STemGUI

    Должно быть актуально и для F429DISCOVERY, если я не ошибаюсь в F429DISCOVERY дисплей работает в связке с SDRAM которая тоже висит на FSMC.
  6. HY-Mini STM32V + STemGUI

    Не работал с STemGUI, думаю глобальных отличий от EmWin нет. Есть два драйвера которые поддерживают контроллер SD1289: GUIDRV_FLEXCOLOR и GUIDRV_COMPACT_COLOR_16. Их различие состоит в том, что драйвер GUIDRV_FLEXCOLOR - runtime configurable, то есть может конфигурироваться во время работы, а параметры драйвера GUIDRV_COMPACT_COLOR_16 задаются во время компиляции (compile time configurable). В этих драйверах уже учтены необходимые адреса памяти и регистров их вручную настраивать не надо. Эти ошибки говорят, что задано слишком большой размер памяти для GUI, необходимо уменьшить, чем меньше это значение тем заметнее будут перерисовки. Можете попробовать #define GUI_NUMBYTES (320*240) AlexandrY верно подсказал, необходимо задать размеры экрана: #define XSIZE_PHYS 320 #define YSIZE_PHYS 240 Для полноценной работы необходимо такие функции: 1. Инициализация дисплея a) Инициализируется вся необходимая для дисплея периферия : FSMC, GPIO, PWM для подсветки) б) Запись в регистры необходимых параметров (количество цветов, поворот, интерфейс) Эта функцию необходимо вызвать в функции LCD_X_DisplayDriver, в случае LCD_X_INITCONTROLLER. 2. Считывание и запись слов и массивов (указатели на эти функции будут использоваться в драйвере) void LCD_X_Write00_16(U16 c); void LCD_X_Write01_16(U16 c); U16 LCD_X_Read01_16 (void); void LCD_X_WriteM01_16(U16 * pData, int NumWords); void LCD_X_ReadM01_16 (U16 * pData, int NumWords); Последний пункт оформление функции LCD_X_Config, в которой настраивается сам драйвер, вот пример моей: GUI_DEVICE * pDevice; CONFIG_FLEXCOLOR Config = {0}; GUI_PORT_API PortAPI = {0}; pDevice = GUI_DEVICE_CreateAndLink(GUIDRV_FLEXCOLOR,COLOR_CONVERSION, 0, 0); Config.RegEntryMode = 0x6830; Config.Orientation = GUI_SWAP_XY|GUI_MIRROR_X|GUI_MIRROR_Y; GUIDRV_FlexColor_Config(pDevice, &Config); LCD_SetSizeEx (0,XSIZE_PHYS, YSIZE_PHYS); LCD_SetVSizeEx(0, XSIZE_PHYS * NUM_VSCREENS, YSIZE_PHYS); LCD_SetSizeEx (0, XSIZE_PHYS, YSIZE_PHYS); LCD_SetVSizeEx(0, XSIZE_PHYS * NUM_VSCREENS, YSIZE_PHYS); PortAPI.pfWrite16_A0 = LCD_X_Write00_16; PortAPI.pfWrite16_A1 = LCD_X_Write01_16; PortAPI.pfWriteM16_A1 = LCD_X_WriteM01_16; PortAPI.pfReadM16_A1 = LCD_X_ReadM01_16; GUIDRV_FlexColor_SetFunc(pDevice, &PortAPI, GUIDRV_FLEXCOLOR_F66702, GUIDRV_FLEXCOLOR_M16C0B16); где GUIDRV_FLEXCOLOR_F66702 - идентификатор SSD1289, GUIDRV_FLEXCOLOR_M16C0B16 - формат шині ( 16bpp, no cache, 16 bit bus)
  7. ucLinux GUI

    Emwin (STemWin, μC/GUI),µGFX. Легче всех µGFX + она открытая, но мало виджетов.
×
×
  • Создать...