-
- Первый блин (семейство F10x) вышел комом. Не только с I2C, но и с ремапом функций на пинах, например - LightElf(09.12.2020 18:46)
- Я попробовал как-то использовать прерывания в случае I2C и ... не
понял зачем. Данных мало всегда. Или кто-то блоками в десятками
килобайт данные оперативно гоняет? - POV_(09.12.2020 14:53, )
- У меня тоже почему-то никогда не было желания там прерывания взводить. Отдать команду записать 32 байта? Считать даже 256 байт? Может у меня такие примитивные программы. Пока не считаешь - делать всё равно нечего. :-) - Лaгyнoв(09.12.2020 17:15)
- Есть у меня одно экзотическое применение, надо делать небольшой обмен по I2C как можно чаще. Удалось разогнать где-то до 40 тыс. раз в секунду. - SciFi(09.12.2020 14:58)
- Сделано конечно на редкость косячно, особенно с учетом ерраты. Но
работает по прерыванием нормально в мастере и слейве. Глянул в свой
код - I2C_SR1_BTF используется и при приеме, и при передаче. Таймер
конечно тоже используется для отлова ошибок и зависонов, но
основная работа по прерываниям. В RM очень неплохо описан
алгоритм.. - Andreas(09.12.2020 14:23)
- А проц какой? В моем при прерывании по BTF до момента его сброса (я
делал сброс BTF по START, ReSTART, STOP) прерывание успевает
вызваться еще 5 раз. Явный идеалогический косяк. Если BTF - флаг
запроса на прерывание, то он должен мнгновенно сбрасываться, а не
по достижения кондиций на шине. il-2(169 знак., 09.12.2020 15:02)
- Stm32f103 stm32f100. Флаги обычно ручками сбрасывают, сами они
редко сбрасываются Andreas(190 знак., 09.12.2020 15:13)
- Могу сказать по свежей памяти, что чтением SR2 (если предварительно
читалось SR1) сбрасывается ADDR, обнуление SR1 позволяет сбросить
флаги ошибок. Ну а последняя команда не несет никакой смысловой
нагрузки. il-2(99 знак., 09.12.2020 15:48)
- Сомневаюсь. При отладке я при каждом входе в прерывание дергаю пин или вывод короткий отладочный делаю. И лишние прерывания на этом этапе отсекаются. На и2с большая гнусная еррата и ее обязательно надо исполнить, но подобного в ней нет, значит что-то у тебя не так. Или еррата не отработана. - Andreas(09.12.2020 15:53)
- Могу сказать по свежей памяти, что чтением SR2 (если предварительно
читалось SR1) сбрасывается ADDR, обнуление SR1 позволяет сбросить
флаги ошибок. Ну а последняя команда не несет никакой смысловой
нагрузки. il-2(99 знак., 09.12.2020 15:48)
- Stm32f103 stm32f100. Флаги обычно ручками сбрасывают, сами они
редко сбрасываются Andreas(190 знак., 09.12.2020 15:13)
- А проц какой? В моем при прерывании по BTF до момента его сброса (я
делал сброс BTF по START, ReSTART, STOP) прерывание успевает
вызваться еще 5 раз. Явный идеалогический косяк. Если BTF - флаг
запроса на прерывание, то он должен мнгновенно сбрасываться, а не
по достижения кондиций на шине. il-2(169 знак., 09.12.2020 15:02)
- Убого там сделано, это общеизвестный факт. В более поздних
семействах лучше становится. - SciFi(09.12.2020 12:53)
- У STM в каждой серии сделано по своему. Ну и убого по своему. - BlackMorda(09.12.2020 13:22)
- Плагиат! "Все счастливые семьи похожи друг на друга, каждая
несчастливая семья несчастлива по-своему." © - SciFi(09.12.2020 13:29)
- Ну да плагиат. Делал на L серию, брал примеры с 100, 103 и 400
какой то. У всех по разному и флаги прерываний разные. - BlackMorda(09.12.2020 13:34)
- Всё смешалось в доме Облонских: и лицо, и одежда, и душа, и мысли. - йцyкeн(09.12.2020 14:15)
- А кони? - SciFi(09.12.2020 14:20)
- Всё смешалось в доме Облонских: и лицо, и одежда, и душа, и мысли. - йцyкeн(09.12.2020 14:15)
- Ну да плагиат. Делал на L серию, брал примеры с 100, 103 и 400
какой то. У всех по разному и флаги прерываний разные. - BlackMorda(09.12.2020 13:34)
- Плагиат! "Все счастливые семьи похожи друг на друга, каждая
несчастливая семья несчастлива по-своему." © - SciFi(09.12.2020 13:29)
- У STM в каждой серии сделано по своему. Ну и убого по своему. - BlackMorda(09.12.2020 13:22)