Jump to content

    

ArcherVZ

Участник
  • Content Count

    62
  • Joined

  • Last visited

Community Reputation

0 Обычный

About ArcherVZ

  • Rank
    Участник
  • Birthday 12/06/1979

Информация

  • Город
    Array
  1. Уважаемые коллеги! Подключил к своему проекту библиотеку FatFS, написал процедуры инициализации, чтения и записи. Все работает. Карта инициализируется, данные записываются и читаются. Но при попытке прочитать существующий файл с карты памяти типа SD Объемом 2 Гб вызывает ошибку (код возврата - FR_NO_FILESYSTEM). При этом такая ситуация возникает со всеми картами памяти данного объема. Карты типа SDHC Объемом 4 и 8Гб работают нормально. Быть может, кто-то встречался с такой проблемой? Заранее благодарен за любые идеи и подсказки!
  2. Спасибо вам! Я внес исправления, и все стало как надо!
  3. Добрый день, коллеги! Работаю в среде IAR for ARM 7.5 - программа под микроконтроллер STM32F103 На этот раз я столкнулся с такой проблемой: есть описание некоторой структуры typedef __packed struct { unsigned int Type:4; // код типа операции unsigned int Pause:1; // разрешение паузы до выполнения шага unsigned int DrainGate1:1; // разрешение клапана 1 unsigned int DrainGate2:1; // разрешение клапана 2 unsigned int ReservedBits:9; // зарезервированные биты unsigned int DrumSpeed; // скорость вращения unsigned char Time; // время вращения unsigned char Reserved[11]; // зарезервированные байты } WPC_SPIN_t; я ожидаю получить размер структуры 16 байт и следующее размещение данных: xx xx sl sh tt xx xx xx xx xx xx xx xx xx xx xx где xx - просто байт sl - младший байт скорости sh - старший байт скорости tt - время вращения На деле же я получаю размер структуры 18 байт и размещение байт, как показано ниже: xx xx sl sh 00 xx tt xx xx xx xx xx xx xx xx xx т.е. байт с временем перемещается на две позиции... а вместо него пишутся нули склыдывается ощущение, что параметр DrumSpeed стал 4-байтовым, потому что при его изменении в последующие два байта пишутся нули. Как мне заставить компилятор правильно размещать данные?
  4. Спасибо большое вам за комментарии и разъяснения! Нет, пожалуй, первая конструкция мне понятнее :)
  5. Winavr такое проглатывает..... другой разработчик давно написал этот код. Работало и работало. Пока не появилась необходимость что-то поменять. Спасибо огромное! Заработало! Только... теперь я не понимаю, как эта конструкция построена. Так сложно на первый взгляд. Спасибо еще раз! Почему-то без приведения типа компилятор тоже выдает ошибку... меня это тоже смущает.
  6. Да нет, проверил, в настройках стоит С. C dialect C99
  7. Добрый день, коллеги! Переношу проект, написанный в AVR Studio 4 под WinAvr, в среду IAR Столкнулся с тем, что IAR ругается на такую конструкцию (ошибка Pe513): ssp.spiHwInit=(void *)atmega_spi_init; где объявления даны следующим образом: euint8 atmega_spi_init(atmegaSpiInterface *iface); и struct SdSpiProtocol { void *spiHwInterface; euint8 (*spiHwInit)(void* spiHwInterface); euint8 (*spiSendByte)(void* spiHwInterface,euint8 data); }; typedef struct SdSpiProtocol SdSpiProtocol; Подскажите, пожалуйста, как ее правильно описать в IAR?
  8. STemWin

    Добрый день, коллеги! Некоторое время назад подключил к проекту библиотеку STemWin. И потихоньку стал рисовать экраны графического меню. На текущий момент нарисовано пять экранов. И я столкнулся с такой проблемой. При переключении на любой экран отрисовка изображения происходит достаточно быстро, но затем возникает какая-то пауза... нажимаешь на кнопку - и ждешь... через 5-7 секунд происходит реакция... После этого экран начинает работать с нормальной скоростью... кнопки нажимаются, списки прокручиваются и т.д. В чем может быть причина? На что мне обратить внимание? ОЗУ выделено библиотеке 20кБ. Тактовая частота 36МГц. Микроконтроллер STM32F101RC. По всей видимости, если я дальше буду добавлять экраны - вот эта пауза будет только возрастать. Заранее благодарен, если кто-то сталкивался с подобным и сможет помочь. С уважением.
  9. Большое спасибо за совет! Обращу на это внимание! Спасибо! Заработало!
  10. Добрый вечер, коллеги! В попытках разобраться с библиотекой CUBE наткнулся на проблемку. Создал проект в STM32CubeMX. Выбрал тип микроконтроллера ST32F100RB, установленного на плате STM32VLDISCOVERY. Сконфигурировал выводы. Сконфигурировал тактовый генератор. Получил готовый код. Добавил простейший код моргания светодиодом с задержкой. Залил в плату. Все заработало. Но - пропала связь с программатором! Программатор ST-LINK, установленный прямо на демо-плате. С трудом получилось войти в режим программирования, нажимая кнопку ресет перед соединением. Если заливать родной пример от платки, который также взят с сайта ST - то все работает нормально. Я проверил взглядом неопытного человека код инициализации. Есть инициализация модуля тактирования и инициализация портов. Порт, на котором сидит светодиод. И порт, на котором сидит низкочастотный кварцевый резонатор. Вроде, больше ничего лишнего нет... Никто не сталкивался с такой проблемой? Т.е., еще раз - программа исполняется, светодиод моргает, а связь с программатором теряется фатально.
  11. STemWin

    Добрый день, коллеги! Обращаюсь к тем, кто имеет опыт работы с графической библиотекой STemWin. В новом проекте заложился на STM32. Опыта работы с STM32 пока никакого. Стоит задача подключить и использовать графическую библиотеку STemWin. Вопрос возник в том, как сконфигурировать ее под мой проект. Контроллер у индикатора SSD1963, шина 8-ми-битная. Индикатор просто подключен к порту А. Вы можете дать практические советы по последовательности действий? Какие функции и как написать? На первый момент я подключил библиотеку. Прописал все пути. Возникает ошибка - нет функции GUI_X_init(). И я не совсем понимаю, что должно быть в этой функции. Где она должна быть. Насколько я понимаю - нужно работать над файлами LCDConf и GUIConf. Может, есть шаблоны с примером кода? Нужен код работы с портами. С уважением.
  12. Спасибо огромное за информацию!
  13. Добрый день, коллеги! Прошу помощи. На индикаторе TFT установлен разъем. Прилагаю его фото. Шаг контактов 2,5мм. Остальные размеры на картинке. Может, кто-нибудь знает, что это за разъем? С уважением Похоже, я сам докопался, что это за разъем. Molex Spox 2.5mm
  14. Режим MON08

    Обычно так происходит, если не выполняется какое-н. из условий входа в режим MON08. В даташите на микроконтроллер есть соответствующий раздел, в нем приведена табличка с указанием, на каком выводе какой сигнал должен присутствовать. Программатор от P&E во время соединения отображает различные фазы процесса - можно начать разбираться исходя из этой информации. Я могу больше подсказать, если увижу схему и тип микроконтроллера.