STM32. CMSIS. Урок#06: I2C. Теория. Сканер I2C адресов. Отправка и прием данных. MemWrite, MemRead.

  Переглядів 5,407

Олег Волков

Олег Волков

День тому

Привет друзья! Вот уже 2 года, как я изучаю STM32.
Самое время, после опыта работы с библиотекой HAL, когда мы уже более менее ознакомились с периферией микроконтроллера, начать осваивать его на низкоуровневой библиотеке CMSIS.
В седьмом уроке мы настроим I2C. Научимся настраивать его. Разберемся, как принимать и отправлять данные. Интерфейс сложный. Надеюсь, что смог донести информацию доступно.
00:00 Введение
00:15 Теория по i2c
15:02 Оборудование для тестов. На чем будем тренироваться.
16:11 Инициализация i2c. Регистры.
41:48 Функция сканирования адресов устройств на шине i2c. Таймаут(ВАЖНО!)
52:38 Функция передачи данных
59:30 Функция приема данных
01:06:17 Функция записи в память по указанному адресу
01:09:45 Функция чтения из памяти по указанному адресу
01:14:00 Тестирование FastMode. Сравним скорости.
Материалы из урока: github.com/Solderingironspb/S...
Библиотека по AT24C128: • EEPROM AT24Cxx. Подклю...
Мои заметки по CMSIS:github.com/Solderingironspb/S...
Группа вконтакте: solderingiron.stm32
ЯндексДзен: dzen.ru/id/622208eed2eb4c6d0c...

КОМЕНТАРІ: 33
@the_inevitability_of_stupidity
@the_inevitability_of_stupidity 6 днів тому
Это лучшие уроки в мире! Вы преподаватель от бога! Спасибо огромнейшее!
@bumbarash8551
@bumbarash8551 Місяць тому
Привет! Вы проделали огромную работу! Супер уроки для начинающих. Спасибо.
@Slavken
@Slavken Рік тому
Спасибо! Бесценный материал, случайно наткнулся на этот урок. Смотрю все уроки с начала, очень полезно и познавательно. Прекрасная работа.
@ciklomat
@ciklomat Рік тому
По моему, на сегодняшний день это лучшие уроки по STM для тех, кто хочет познать как это устроено . Спасибо за труд и бесценный материал с домашним заданием разобраться в оставшихся вопросах.
@Solderingironspb
@Solderingironspb Рік тому
Согласен) когда умеешь уже работать с документацией, то вообще вся магия уходит. Не нужно никаких уроков искать по библиотекам высокого уровня. Листаешь на нужный пункт и настраиваешь. Я представляю, как легко работать тем, кто еще и ин. языком владеет на высоком уровне, чтоб переводчик вообще не использовать…)
@user-hk1xl4ee1e
@user-hk1xl4ee1e Рік тому
Олег молодец, супер, очень познавательно, все очень доступно и полезно.
@user-bb6ym1bo3h
@user-bb6ym1bo3h Рік тому
Огромное спасибо за ваш труд!
@serggorod1423
@serggorod1423 Рік тому
Good explanation !
@avr_stm_pro2955
@avr_stm_pro2955 Рік тому
С интересом просмотрел материал , спасибо 👍
@user-yg4mu7rm7k
@user-yg4mu7rm7k Рік тому
Качество контента растет)
@OpenFrimeTVcom
@OpenFrimeTVcom Рік тому
отличный материал. да и еще на час)
@AlexRootx
@AlexRootx Рік тому
Молодчага, Олег! Как всегда, грамотная подача материала! Лайк за проделанную работу! И да, еще раз поздравляю тебя с БРАКОСОЧЕТАНИЕМ!!!
@Solderingironspb
@Solderingironspb Рік тому
Спасибо!)
@serggorod1423
@serggorod1423 Рік тому
На 47:00 остановился. Чтоб не забыть! Эклипс затмило, пошол делать пере_выкат солнца вручную!
@gin87100
@gin87100 Рік тому
Урок топ! Спасибо! Но вот аск (ак) и буси(бизи) режет ухо).
@user-cm9nh5hv7w
@user-cm9nh5hv7w Рік тому
Для ознакомления прям то, что нужно. Спасибо автору, что делится знаниями. Предложенный вариант обмена хорош для обучения, но I2C - медленный протокол, ждать в цикле окончания передачи/приёма данных слишком расточительно. В реальном проекте, нужно прерывания использовать. P.S. Пересмотрел несколько видео, немного режет слух как вы читаете слово busy, правильно его произносить как [бизи]. Я без претензий, сам не так давно взялся за английский. Вот тоже поделюсь знаниями :-)
@alche74
@alche74 Рік тому
Привет. Раскажи про DBGMCU. Важная информация, а толком не нашел на русском.
@svbHiTek
@svbHiTek 3 місяці тому
Перевожу для себя референс мануал, нашел способ как разблокировать этот PDF файл, программу для редактирования, а так же неплохой переводчик с ИИ, теперь стало еще удобнее, если интересно могу поделиться информацией.
@Solderingironspb
@Solderingironspb 3 місяці тому
Расскажите, интересно узнать Ваш опыт.
@svbHiTek
@svbHiTek 3 місяці тому
@@Solderingironspb особо чего то сверхестественного нет, нашел сайт, на который можно закинуть PDF, и снять защиту от редактирования, затем переводил, так же с помощью онлайн переводчика, меня его качество порадовало, плюс позволяет подбирать смысл фраз после перевода, сами PDF редактировал этой программой Master PDF Editor, она на русском, жаль ссылки в комментариях нельзя размещать, ни сколько не реклама, просто сейчас развелось очень много софта, запутаться можно.
@user-du2bz8ml9h
@user-du2bz8ml9h Рік тому
Очень крутая подача материала, каждый ролик посмотрел. Буквально вчера гуглил тему i2c на CMSIS, и там были «знатоки», которые могли лишь тыкать лицом в референс мануал, а толку со спроса нету. Слежу за тобой с самого начала, спасибо за проделанный труд. Если есть возможность добавить бусти или патреон, где твои труды будут оплачиваться и, возможно, будет чаще материал выходить(🤞) - буду первым подписчиком. Ещё раз спасибо :)
@intelektum
@intelektum Рік тому
Все как всегда отлично. Но вот новая версия проги под анализатор, все же ужасная, так и не смог к ней привыкнуть.
@Solderingironspb
@Solderingironspb Рік тому
да я тоже не могу к ней привыкнуть, но есть в ней один плюс. Ее можно в бок экрана прилепить и на пол экрана сделать)
@OpenFrimeTVcom
@OpenFrimeTVcom Рік тому
У вас там беда с комментариями в проекте, пока разобрался. //Если устройство не отозвалось, прилетит 1 в I2C_SR1_AF вот это во многих местах неправильно
@svbHiTek
@svbHiTek 3 місяці тому
Эх, встрял на I2C, примеры от F103 не подходят, регистры разные и алгоритм слегка другой используется в F030F4. Да и логический анализатор надо, что бы смотреть что на линии творится, есть простенький дешевый, но он на работе, а себе заказал с частотой до 400МГц, он еще едет
@Solderingironspb
@Solderingironspb 3 місяці тому
Без логического анализатора вообще очень сложно работать с железом. Даже если что-то заработало - не факт, что заработало правильно. Тот же HAL часто ногами дергает на там, где не нужно.
@svbHiTek
@svbHiTek 3 місяці тому
@@Solderingironspb Первый день как вышел на работу после праздников, подключил анализатор, а у меня вообще на линии мертво. Разбираться не получилось сразу, озадачили, но возьму его домой и буду посмотреть. Хотя нашел массу примеров под мой камень, инициализация у меня получилась как и в остальных примерах, да и остальное в общем то такое же, буду разбираться.
@svbHiTek
@svbHiTek 3 місяці тому
@@Solderingironspb Писать код ночами не лучшее затея)))), в инициализации указал не тот порт, GPIOB в место GPIOA, ппц, а я на самих битах регистров зрение сломал))), анализатор показал что у меня ножки вообще не але)))
@pavelmokrov710
@pavelmokrov710 Рік тому
Отличное видео.Не сочтите за наглость ,но можно сделать сканер адреса I2C c выводом на монитор UART?
@Solderingironspb
@Solderingironspb Рік тому
могу...но зачем?) все же в уроке есть. Вы этот сканер можете сами сделать за несколько минут.
@alinalevina3814
@alinalevina3814 Рік тому
Здравствуйте, Олег. Заюзал очередную вашу библиотеку, все работает. Даже пришло немного понимание происходящего. Режим переделать вашу же библиотеку для lcd1602, заменив в ней функцию HAL_I2C_Master_Transmit на вашу CMSIS_I2C_Data_Transmit, с заменой адресов . Но ругается и дисплей не хочет инициализироваться. Не подскажите в чём может быть проблема?
@Solderingironspb
@Solderingironspb Рік тому
Добрый день! А на что ругается?
@alinalevina3814
@alinalevina3814 Рік тому
@@Solderingironspb добрый день. В общем сам половину допетрил. При замене hal овской функции на CMSIS_I2C_DATA_TRANSMIT я не указал прототип данной функции в файле lcd1602_i2c_lib. После этого дисплей стал инициароваться. Но в логическом анализаторе он долбит постоянно на 27 адрес и все, на экране ничего не выводится, хотя я реализовал вывод массива символа. В халовском варианте все работает. И второй момент. Решил реализовать через цикл for ( i=0; i
EEPROM AT24Cxx. Подключаем к STM32. CRC32.
27:09
Олег Волков
Переглядів 7 тис.
🐩🐕
00:25
Янчик
Переглядів 2,4 млн
Лекция 308.  Шина I2C
19:54
Электротехника и электроника для программистов
Переглядів 101 тис.
💪Установи свой Home Assistant за 5 минут! 🏠 Умный Дом это просто!
6:04
Using I2C for any device on STM32 with HAL | VIDEO 26
37:51
Matej Blagšič
Переглядів 71 тис.
Redis за 20 минут
23:22
suchkov tech
Переглядів 67 тис.
Лекция "Интерфейсы (часть II). I2C. 1-Wire"
39:16
Vladimir Leonidov [BMSTU]
Переглядів 7 тис.
Samsung or iPhone
0:19
rishton_vines😇
Переглядів 223 тис.
Клавиатура vs геймпад vs руль
0:47
Balance
Переглядів 509 тис.
''Бесплатные умные'' домофоны для глупых людей. За чей счет банкет?
12:48
Вадим Шегалов.Оккультные игры элиты
Переглядів 30 тис.
Первые продажи Ryzen на Ozon и первый возврат! 😱
13:17
Герасимов Live
Переглядів 14 тис.
Broken Flex Repair #technology #mobilerepair
0:55
ideal institute aligarh
Переглядів 16 млн