|
8 / 7 / 3
Регистрация: 24.11.2014
Сообщений: 111
|
||||||
Чтение регистров на HAL по I2C28.11.2021, 14:56. Показов 2111. Ответов 7
Метки нет (Все метки)
Приветствую всех!
Подскажите, пожалуйста, так правильно читать регистры другой мс, подключенной по I2C?
Спасибо.
0
|
||||||
| 28.11.2021, 14:56 | |
|
Ответы с готовыми решениями:
7
I2C, HAL, запись и чтение GT811 MLX90614 + STM32 i2c hal STM32F1 HAL LCD1602 I2C готово |
|
22 / 22 / 5
Регистрация: 18.03.2010
Сообщений: 331
|
|
| 11.12.2021, 19:22 | |
|
Просто, прочитать первый байт, в затем вычитать второй. Или я не очень понял, что Вы хотели сказать.
0
|
|
|
8 / 7 / 3
Регистрация: 24.11.2014
Сообщений: 111
|
|
| 11.12.2021, 22:22 [ТС] | |
|
GaFBich, так в этом и вопрос: как указать что сейчас я читаю первый байт (из двух), а следующей командой буду читать второй байт?
0
|
|
|
Почетный модератор
11559 / 4353 / 453
Регистрация: 12.06.2008
Сообщений: 12,455
|
|
| 12.12.2021, 10:31 | |
|
Чем вас не устраивает текущий подход? Вы же сейчас вычитываете 2 байта. Только вы их потом игнорируете, а обращаетесь зачем-то за пределы массива "val = (int8_t)buf2[2]" (у вас массив всего состоит из 2 элементов, значит старшая часть регистра в buf2[0], а младшая в buf2[1]... элемента buf2[2] вообще не существует у этой переменной).
Добавлено через 6 минут Кстати, рекомендую включить в компиляторе опцию "-Wall" и всегда смотреть, какие предупреждения он выводит (и, конечно, исправлять их). Эти предупреждения позволили бы вам сэкономить кучу времени при поиске решения данной проблемы.
0
|
|
|
8 / 7 / 3
Регистрация: 24.11.2014
Сообщений: 111
|
|
| 12.12.2021, 14:01 [ТС] | |
|
Humanoid, странно, "-Wall" включено в опциях компиляции, но предупреждений нет(((
(-O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF) Сейчас посмотрел, у меня ранее в коде было правильно val = (int8_t)buf2[0]; просто потом игрался с размерностью массива и не поменял обратно. И не понимаю, правильные ли значения считываются? Должно быть: Vendor_ID = 25h (=37) Product_ID = 0Bh (=11)
0
|
|
|
Windows must die
|
|
| 12.12.2021, 14:20 | |
|
PeterS, нужно еще добавить
-Wextra -Werror, тогда не будет соблазна не обращать внимания на предупреждения: компилятор сразу же расценит это как ошибку и остановится.Кстати, у clang намного приятней сообщения об ошибках, gcc потихоньку исправляется, конечно, но gcc-12 таки еще далеко до clang-12… Что до I2C, могу показать, как у меня реализована работа с ним. Но я "калом" не пользуюсь.
0
|
|
|
8 / 7 / 3
Регистрация: 24.11.2014
Сообщений: 111
|
|
| 12.12.2021, 14:33 [ТС] | |
|
Eddy_Em, да, покажите, пожалуйста. У меня и Keil есть.
0
|
|
|
Windows must die
|
|
| 12.12.2021, 14:39 | |
|
Ну вот, например, сканер I2C на STM32F103.
Прием двух байт и N байт. Если все выполнять согласно мануалу, никаких проблем не будет. Ну и в errata надо заглядывать: вдруг конфликт периферии какой получится..
0
|
|
| 12.12.2021, 14:39 | |
|
Помогаю со студенческими работами здесь
8
STM32F4discovery Соединение 2-ух плат I2C. HAL. Как читать данные по I2C с помощью HAL? I2C 16-битная адресация регистров Подключение LCD 1602 через I2C к STM32F4 без библиотеки Hal Как, используя wiringPI, читать/писать 16-битные адреса регистров I2C? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|