A.Lex 0 20 января, 2017 Опубликовано 20 января, 2017 · Жалоба Пытаюсь читать регистр SiI9575 через I2c. STM32F407 - мастер. Осциллографом вижу правильное значение содержимого регистра, а в отладчике бред :smile3046: Кто виноват? Я, Кеил, контроллер? На скриншоте значения в регистре I2c и принятое переменной. 0х53 - это адрес регистра +1, 0х20 - правильное значение. Направьте на путь истинный... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
esaulenka 7 23 января, 2017 Опубликовано 23 января, 2017 · Жалоба Отладчиком в этом случае пользоваться нельзя!! Регистр DR читается ДВА раза. Один раз - из кода, второй - отладчиком. Как минимум, закройте окошко с регистрами I2C. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
A.Lex 0 23 января, 2017 Опубликовано 23 января, 2017 · Жалоба Спасибо. Это у Кейла фича такая? А вообще библиотечные функции для I2C у HAL безобразные и не работают. Пришлось делать свои Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
esaulenka 7 24 января, 2017 Опубликовано 24 января, 2017 · Жалоба Это у Кейла фича такая? Это у любого отладчика фича такая. Видит, что пользователь хочет считать переменную - и считывает при каждом удобном случае. Каких-то особо умных отладчиков, которые знают о "спецэффектах" при чтении регистров периферии, я не знаю. Максимум - пользователь может сам управлять, читать ли данный конкретный регистр. А вообще библиотечные функции для I2C у HAL безобразные и не работают. Пришлось делать свои Да и вообще I2C какой-то странный и на "раз-два" работать отказывается. И виснет от внешних помех в недокументированных состояниях (благо, есть бит сброса). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
A.Lex 0 24 января, 2017 Опубликовано 24 января, 2017 · Жалоба Спасибо за ответ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться