Jump to content

    

scifi

Свой
  • Content Count

    3070
  • Joined

  • Last visited

Community Reputation

0 Обычный

About scifi

  • Rank
    Гуру

Recent Profile Visitors

6841 profile views
  1. У меня есть вариант всего на 6 КБайт uIP+TFTP. Ну а если, к примеру, минимальный сектор флеша 16 КБайт, то об этом вообще можно не беспокоиться.
  2. TFTP в загрузчике полезен для аварийного режима или для первичной прошивки. А в норме, конечно, основная прошивка должна загружать новую версию, а загрузчик её прошьёт.
  3. STM32F7 и VCAP

    Vcap нужен для стабилизации встроенного регулятора напряжения. Там есть требование в том числе к ESR (чтобы не превышало 2 Ома). Дорожка 20 мм этому не противоречит. Добавляет совсем немного индуктивности, но здесь это не страшно.
  4. Error[Pe070]: incomplete type is not allowed

    extern "C" - это не про типы, а про функции. То есть эта примочка помочь никак не сможет.
  5. счетчик DWT - аритмия

    Счётчик нормальный, нет причин его подозревать. Откуда вы взяли, что инструкции должны исполняться ритмично - непонятно, вам все уже написали, что этого нет и не будет. Инструкции исполняются предсказуемо только на стареньких тихоходных МК, причём, как правило, восьмиразрядных.
  6. "Оптимальная задержка" - это спорная философская категория
  7. #include "stm32l011xx.h" void systick_init(void) { SysTick->CTRL &= SysTick_CTRL_ENABLE_Msk; // stop SysTick timer SysTick->LOAD = 0x00FFFFFF; SysTick->VAL = 0x00FFFFFF; SysTick->CTRL = SysTick_CTRL_ENABLE_Msk; // start SysTick timer } int systick_ticks(void) { return SysTick->VAL; } int systick_diff(unsigned int from, unsigned int to) { return ((from << 8) - (to << 8)) >> 8; } void systick_delay(int ticks) { int start = systick_ticks(); while (systick_diff(start, systick_ticks()) < ticks) ; }
  8. Критерии совершенства в CubeMX?

    Поздравляю. Вы изобрели NDEBUG и assert() из <assert.h>. Больше велосипедов, хороших и разных
  9. Критерии совершенства в CubeMX?

    Не вопрос. Подключайтесь к проекту и возьмите на себя задачу устранить нарекания статических анализаторов. Я думаю, все будут только благодарны. Я один раз налетел на такое с 8051. Стандарт гласит: гарантируетируется, что нулевой указатель не указывает ни на какой объект в программе. Очевидно, чтобы это выполнялось, надо немного подрихтовать скрипт линкера.
  10. STM32F103C8T6. Запуск TFT дисплея ILI9341

    Бросайте это гиблое дело. Управлять TFT - это не ваш уровень. Пока, во всяком случае. Там нужно понимать природу процесса (впрочем, это везде полезно), тыкать осциллографом, листать мануалы на сотни страниц и т.д. Надеяться стырить быдлокод в тырнете и заставить его заработать просто так - это наивно. Не мигание лампочкой, в конце концов.
  11. При запуске под отладчиком это неважно. Всё можно настроить хотя бы в скрипте инициализации отладчика.
  12. stm32 i2c

    Зависит от того, какие устройства есть на шине. Где-то видел апноту, где этот вопрос разжёвывали. Считали худший случай для разных вариантов и всё такое.
  13. stm32 i2c

    Сброс блока точно поможет. Как-то так: RCC->APB1RSTR |= RCC_APB1RSTR_I2C1_RST; // wait a few cycles RCC->APB1RSTR &= ~RCC_APB1RSTR_I2C1_RST;