Jump to content

    

Serhiy_UA

Свой
  • Content Count

    787
  • Joined

  • Last visited

Community Reputation

0 Обычный

About Serhiy_UA

  • Rank
    Знающий

Контакты

  • ICQ
    Array

Recent Profile Visitors

4351 profile views
  1. Генерирую проект в STM32CubeMX (версия 5.1.0), который затем автоматом из куба переношу в IAR 7.40.7.9865. Сразу же запускаю IAR 7.40 на пробную компиляцию, по результатам которой генерируется около сотни ошибок. Самая первая ошибка по списку сообщает: Error[Pe018]: expected a ")" и ссылается на файл ….\Drivers\CMSIS\Include\mpu_armv7.h 247, где высвечивает маркером ошибку на функции __STATIC_INLINE void orderedCpy со списком её параметров. Функция короткая и синтаксис в ней верен. Для устранения этой ситуации просто комментирую эту функцию, и все последующие компиляции и кодировки происходят уже без ошибок. Хотел бы разобраться в причине этого, зачем эта функция и почему так происходит.
  2. Лучше это быстрее? Для небольших ембедед приложений? А если ничего не передавать, а использовать глобальные переменные или просто макросы, когда размер кода не критичен.... Я в таких случаях делал и ассемблерные вставки.
  3. При сложностях спрошу еще. Благодарю всех за разъяснения, особенно Forger за выложенные коды. Эти проекты я делаю для самообразования, спешить мне не куда, разберусь....
  4. Я так и понял, но Вы, что называется, разложили все конкретно по полочкам. Спасибо!
  5. haker_fox и x893, спасибо за информацию! Начал понимать, все не так сложно как казалось:).
  6. Благодарен за информацию. Для наработки заделов, имею работающую связку ПК + STM32 + GSM_SIM800L + GPS_Neo-M8, где задействованы три UART, все работает. Захотелось улучшить код за счет одного объединенного класса, используя основное преимущество С++, это сокращать размер кода. У меня сейчас есть общий класс с функциями и набором данных, который все UART при необходимости используют, но там нет обращений к аппаратуре UART-ов. Есть также отдельные функции для каждого UART, уже с обращением к аппаратным регистрам, ну и у каждого UART свой собственный обработчик прерываний. Мне казалось, что уже разработаны методы для подобной ситуации, поэтому и мои вопросы. Идея с наследованиями мне понравилась, надо попробовать. Как мне кажется, аналогичный класс есть в семействе arduino, но там можно создавать только софт UARTы, хотя это несколько иное. Наверное и на ПК есть одинаковые аппаратно независимо работающие узлы, и там возможно как-то это все объединяют в классах.... Коды есть, могу выложить, но там их много, думаю, что главное - это понимание. В общем вопрос и прикладной и нужный для прояснения....
  7. Работаю с STM32F103C8 в IAR на С++. Создаю класс, общий для всех трех UART данного контроллера. С функциями-членами и обращениями к создаваемым в ОЗУ переменным-членам класса все работает. А вот как в функциях класса обращаться непосредственно к специальным (аппаратным) регистрами UART? В частности хочу создать в классе функцию UARTx::println(char* text) для вывода на монитор ПК. Здесь попытка обращения, например, к спец.регистру USART->DR одного из UART сразу вызывает ошибку. С вводом/выводом и работой на монитор с каждым отдельным UART проблем нет. Просто хочу обобщить все три UART в одном классе. Может, кто подскажет?
  8. Много материалов найдете начиная с http://mypractic.ru/uroki-stm32 а также начиная с http://dimoon.ru/obuchalka/stm32f1/stm32f1-dokumentatsiya.html
  9. Потерь не замечал. Этот пример простой, в других случаях и скорость выше, и объемы больше. Аналогичный метод приема c UART и на стороне МК, только там таймер от 200 до 1000 Гц.
  10. В приложении небольшой пример проекта на С++ Builder 6, может Вам подойдет. Я подключаю МК STM32 к компьютеру через конвертер USB-UART. Есть еще аналогичные программы на C++ и C#. По работе приходилось их часто писать. Rs232_c.zip
  11. Совет по МК: низко потребляющая пара из STM8 + STM32. Первый самый маленький, будет очень экономно дежурить и что-то хранить. Второй будет полностью отключаться, и включаться только при необходимости. Выбор и тех и других очень большой, софт доступен и примеров много. Разработка схемы и программирование, судя по перечню запросов, будет не простым занятием.
  12. Для подпайке к контактной площадке ПЛИС что под корпусом, на самой плате сделано металлизированное отверстие диаметром 4 мм, через которое ПЛИС припаивается к общей цепи. Фото ниже.
  13. У меня плата с такой же ПЛИС. Замечаний по её работе с программатором и отдельно не было. Схема платы в приложении. EP4CE6_CORE.pdf