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

esaulenka

Свой
  • Постов

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

  • Посещение

  • Победитель дней

    2

Весь контент esaulenka


  1. Коллега, внимательнее! Там вся структура из 8-битных переменных, паддинга между ними нет. А вот то, что гражданин "гуру" взял значения из uint8_t flimsw_state; uint8_t rlimsw_state; и двух последующих байт (которые случайно опять оказались нулевыми) и опять не понял, что произошло - ну, увы, тут половина тем таких...
  2. Это означает, что они внедрили супер-интеллектуальную схему зарядки в виде резистора между Vdd и Vbat. Подключением резистора, вроде б, можно программно управлять. Можно ли на этот ваш аккумулятор подавать 3.3 вольта (пусть и через резистор) - надо думать. Кажется, нельзя.
  3. Вот он, голос разума! :-) https://en.cppreference.com/w/cpp/numeric/math/NAN https://en.cppreference.com/w/cpp/numeric/math/INFINITY
  4. Потому что он знает, что этот int никогда не может быть отрицательным, и нет никакой разницы, применять ASRS или LSRS.
  5. У меня дурацкий вопрос (раз уж тема для начинающих). Как это читать? То есть одну строку я могу прочитать, вторую могу. Две сразу - не могу :-) Хотя, кажется, никому из отвечающих затруднений это не составило...
  6. Вот у одного меня возникает вопрос "что хотел сказать автор" ? Как мне кажется, if (! (ind & 0x01)) куда более читаемо (и компилируется сразу без ошибок). О том, что, например, ind & 0x04 понятнее, чем ind | 0xFB, вообще молчу...
  7. Придётся найти список движков скриптовых языков, и разобраться хотя бы в одном из них. Лучше уж свой велосипед бесконечно пилить...
  8. Спирит, действительно, похоже весьма сложный (не доводилось использовать), а в целом Буст - очень качественная библиотека. Хорошая документация, примеры, продуманное API без побочных эффектов. Главное - внутрь не смотреть, там внутри действительно страшно :-)
  9. Ну проверьте. Ставим level2, запускаем ст-линк, и... Ой! can't connect to target! Jtag-то мы своими руками отключили... Гадание на кофейной гуще, но, возможно, Вы не настроили (или настроили неправильно) тактирование LCD. Ему нужен медленный тактовый сигнал. Подробности - в reference'е (разделы RCC и LCD), и, вероятно, в кубе.
  10. Ошибка в том, что я был невнимателен. Arlleex и компилятор правы, возвращать надо не сам указатель (конечно же), а значение, на которое он указывает.
  11. Можно пример? Не могу сказать, что знаю всё, но всё, что я видел (и контроллеры, и отдельные м/с памяти) по команде "стереть" выставляют 0xff. Инвертировать внутри бит несложно (и даже иногда было б удобнее), но я ни разу с таким не сталкивался. Держите: uint8_t read_byte(uint32_t addr) { return (volatile uint8_t *)addr; }
  12. Осталось выяснить отличия switching current и switching voltage. Ну и вообще прояснить, зачем там C7.
  13. Да, исходное состояние бита флеш-памяти (любой) - единичка. На всякий случай напомню, что для NOR-памяти (используется в подавляющем большинстве контроллеров, в т.ч. и в этой ST'шке) в одну и ту же ячейку можно записывать только один раз. Потом - стирание. Для NAND памяти ограничение ещё жёстче - единовременно надо записывать целиком страницу.
  14. О, спасибо. Не сильно задумывался (и не проверял, что будет, если его игнорировать), но требование, действительно, на первый взгляд, избыточное.
  15. Было бы неплохо указывать, что "датчик" - это, по-вашему, некая отладочная плата. Большинство присутствующих под MPU6050 понимают соответствующую микросхему. У которой в даташите английским языком написано Vdd max 3.46V. И, к слову, в разделе absolute maximum ratings традиционное ограничение Input Voltage Level (CLKIN, AUX_DA, AD0, FSYNC, INT, SCL, SDA) -0.5V to VDD + 0.5V Впрочем, для I2C, если не ошибаться, это не очень страшно.
  16. Занимательная арифметика: 0x0800 0000 + 0х800*0x127 = 0х0809 3800 0x0800 0000 + 0х800*127 = 0х0803 F800 А в остальном всё верно.
  17. Завести свою собственную переменную, назвать её "предыдущее значение счётчика". По какому-то событию взять текущее значение счётчика DMA, вычислить их разницу (не забыть, что он бегает "по кругу"), прочитать новые данные. Сохранить "новый" счётчик в переменную "старый счётчик". Да, события - это не только IDLE, но и заполнение (или даже половина заполнения) буфера, если пакет длинный. Никак. В кольцевом режиме оно "само" прыгнет на начало, когда надо. PS никогда не пользовался прерыванием IDLE. Это действительно событие "пришёл старт-бит после длинной паузы", как описано в референсе ? А если у меня между пакетами полчаса будет, все полчаса ждать? Как же всё у них через задницу...
  18. Кейлы, иары, 100500 разных эклипсов, MSVS, VSC, QtC, силайон, нетбинс, кодеблокс... Неужели поиск совсем-совсем не работает?..
  19. BlueNRG (order code BLUENRGQTR) и BlueNRG-MS (order code BLUNRG-MSQTR) - это, фактически, одно и то же. Второй пришёл на смену первому (поддержка протокола 4.1, какие-то багфиксы). Первый, кажется, уже не производят (мы три года назад (!) уже закладывали MS). Внутри Cortex-M0 с радиоканалом и своей собственной прошивкой, снаружи SPI-slave. Верхняя часть стека должна выполняться на внешнем контроллере. BlueNRG-1 и BlueNRG-2 - попытка ST'шников догнать и перегнать NRF51/52 и CC13xx. Можно написать и загрузить свой собственный софт, т.е. для простых приложений второй контроллер не нужен. Как оно работает, не знаю, даже отладку запускать не пробовал.
  20. Разговор, напомню, начался с фразы "либы для хост-контроллера бинарные". Весь софт для хост-контроллера открыт. Основное можно посмотреть здесь: x-cube-ble1.zip\X-CUBE-BLE1\Middlewares\ST\STM32_BlueNRG Как скачать x-cube-ble1.zip, думаю, разберётесь. Да, прошивка самого чипа закрытая. Но и у TI, и у NRF точно такой же закрытый бинарник именно ядра протокола. Silabs никогда не смотрел, не знаю. Ну и открытый стек именно на этих BlueNRG вряд-ли кто-то сделает. Документация внутренностей отсутствует напрочь.
  21. Если ВЫ заметили, речь о том, что API BlueNRG и BlueNRG-MS полностью открыт.
  22. Продажники уже сколько-то там тыщщ устройств с этим BlueNRG уже напродавали, а я так и не разобрался, что же именно скачал. Спасибо, что открыли мне глаза.
  23. Правда, что-ли? А каким образом я скачал их библиотеку с API в исходниках? И вообще, там по SPI бегает вполне стандартный протокол, описанный в спецификации блютус (в документации ST так и написано: команды такие-то - в официальной спецификации). Говорить за всех - крайне вредная привычка. Если лишний процессор на плате не пугает (судя по BlueNRG-1, не пугает), рекомендую нордик. У них куча примеров, и с требованиями "мне всё равно что, лишь бы байты переслать" сделать что-нибудь готовое можно очень быстро.
  24. dcs=8 - это корректно? TS 23.038 Alphabets and language-specific information в разделе Cell Broadcast Data Coding Scheme нам сообщает 0000 1111 - Language unspecified (т.е. похоже на значение по умолчанию, 15) 0000 1000 - Portuguese (фигня какая-то). При этом dcs=15 работает. Кодировка в модеме - UCS2. Почему на отправку не работает dcs=72 (0100 1000 - General Data Coding indication, UCS2, class 0), не понимаю. Принятые USSD приходят именно с таким dcs. Чёртов симком. Параметры этой команды в руководстве толком не расписаны. Извольте читать стандарты, о существовании которых вы можете узнать из интернетов или из чтения документации каких-то других производителей.
×
×
  • Создать...