Jump to content

    

IvanPletnev

Участник
  • Content Count

    68
  • Joined

  • Last visited

Community Reputation

0 Обычный

About IvanPletnev

  • Rank
    Участник

Recent Profile Visitors

944 profile views
  1. Приветствую, уважаемые коллеги! Напишу здесь, может кому пригодится, как сделать так, чтобы контрольная сумма, вычисляемая блоком CRC STM32, совпадала с обычной CRC32 (в онлайн калькуляторах, библиотеках и т.п.). В микроконтроллерах серии F4 блок CRC никак не настраивается, то есть нельзя настроить реверс бит на входе и на выходе блока CRC. Поэтому, для реверса бит, мы применяем инструкцию ARM rbit. Насколько мне известно, она присутствует в ARM, начиная с Cortex M3. Функция реверса выглядит так: uint32_t reverse_32(uint32_t value) { uint32_t result; __ASM volatile ("rbit %0, %1" : "=r" (result) : "r" (value) ); return(result); } Далее надо реверсировать вход и выход модуля CRC: for (index = 0U; index < BufferLength; index++) { hcrc->Instance->DR = reverse_32(pBuffer[index]); } temp = reverse_32(hcrc->Instance->DR); И инвертировать выход. return ~temp; Всё, теперь контрольная сумма соответствует CRC32. Правда, должен заметить, что если мы используем CRC для расчета контрольной суммы массива байт, то размер массива должен быть кратен четырём. Для расчета остатка меньше четырех байт нужно провести еще кое-какие операции.
  2. Итак, коллеги, снова здравствуйте! Эти микроконтроллеры еще продаются. По 1500 за штуку. Если всё сразу, то по 1000.
  3. Вам тогда в Питере выгоднее купить будет
  4. Ну сколько Вы хотите купить?
  5. В Питер, если я правильно понял? Если возьмете все, отправлю бесплатно.
  6. Уважаемые коллеги! Ошибочно заказал в КОМПЭЛ микроконтроллеры PIC18F44K22-I/P в корпусе DIP, хотя надо было PIC18F44K22-I/PT в TQFP-44. Обратно не берут. Отдам за 200 руб/шт.
  7. Уважаемые коллеги! Ошибочно заказал в КОМПЭЛ микроконтроллеры PIC18F44K22-I/P в корпусе DIP, хотя надо было PIC18F44K22-I/PT в TQFP-44. Обратно не берут. Отдам за 200 руб/шт.
  8. Уважаемые коллеги, добрый день! Ошибочно заказал в КОМПЭЛ 150шт PIC18F44K22 -I/P в корпусе DIP. Хотя нужно было в TQFP-44. Обратно не принимают. Отдам за 200 рублей/шт. UPD. Ой, простите, не заметил раздел форума с продажей компонентов, написал здесь
  9. В моём случае точно не из-за питания, на одной и той же плате всё. Сейчас тестирую, всё работает отлично.
  10. А и правда компилируется этот код. Но избавиться от подсветки "неактивного" кода мне так и не удалось. #include "lwip/opt.h" #if LWIP_NETIF_STATUS_CALLBACK void netif_set_status_callback(struct netif *netif, netif_status_callback_fn status_callback){ ..... #error bla-bla } #endif Даёт ошибку. Значит, всё работает. Но эта подсветка сильно сбивает с толку.
  11. Здравствуйте, коллеги!! Может, конечно, глупый вопрос задам, не пинайте сильно. В который раз уже замечаю, что CubeIDE иногда отказывается реагировать на define. Вот пример: В файле lwipopts.h #define LWIP_NETIF_STATUS_CALLBACK 1 в файле netif.c #include "lwip/opt.h" #if LWIP_NETIF_STATUS_CALLBACK void netif_set_status_callback(struct netif *netif, netif_status_callback_fn status_callback){ ..... } Соответственно, в файле lwip/opt.h подключен файл lwipopts.h. Всё, как обычно. Но! Код, который внутри #if #endif неактивен(подсвечен) и не компилируется. При наведении курсора на LWIP_NETIF_STATUS_CALLBACK в подсказке показывается 0. При этом в файле opt.h конструкция #if !defined LWIP_NETIF_STATUS_CALLBACK || defined __DOXYGEN__ #define LWIP_NETIF_STATUS_CALLBACK 0 #endif работает. И если нажать в файле netif.c на LWIP_NETIF_STATUS_CALLBACK с зажатым ctrl, то редактор перекидывает на этот дефайн в файле lwipopts.h, где стоит единица. Такое регулярно случается, потом проходит само собой. Почему это происходит и как бороться с этим, кто нибудь может объяснить?
  12. В общем, экспериментальным путём я выяснил, что эта проблема появляется, когда код генерируется CubeMX v. 6.2.1 и STM32Cube F4 v. 1.26.1. Когда код сгенерирован CubeMX v. 6.1.1 или 6.1.2 и STM32Cube F4 v. 1.25.2 всё работает отлично. Заметил, что в версии 1.26.1 обновлена FreeRTOS до 10.3.1. Пока не разбирался, в чём там отличия.
  13. Больше нет никакой разницы. Просто мне понадобился web интерфейс на устройство, которое уже почти готово. Для того, чтобы потренироваться с http сервером я не стал встраивать его сразу в устройство, а решил сначала сделать для него отдельный проект. Взял CubeIDE, настроил LWIP, сгенерировал, запустил. И потом несколько дней провозился собственно с сабжем. Пока не создал проект в CubeMX с точно такими же настройками. Всё совершенно одинаково, но проект из CubeMX работает хорошо, а из CubeIDE нет. Теперь вот надо прикручивать SGI и SSI. Если кто-то поделится опытом в этом смысле, буду благодарен.
  14. STM32CubeMX встроен в STM32CubeIDE, то есть в Eclipse, по сути. Но, видимо, кривовато