|
0 / 0 / 0
Регистрация: 13.02.2016
Сообщений: 141
|
|
STM32F107 и I2C24.02.2016, 11:40. Показов 8616. Ответов 30
Метки нет (Все метки)
в даташит в статус регистре бизи флаг это бит 1. соответственно возникает желание сделать так
while (I2Cx->SR2 & 0x2) но в дефайнах он прописан так #define I2C_FLAG_BUSY ((uint32_t)0x00020000) и когда я смотрю на I2C_GetFlagStatus я понимаю что я чего то не понимаю.
0
|
|
| 24.02.2016, 11:40 | |
|
Ответы с готовыми решениями:
30
Конвертер i2c в usb - MIKROE-1421, FTDI click USB 2.0 to I2C для ПК STM32F107 USB_SIL_WRITE STM32F107 |
|
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
|
|
| 24.02.2016, 13:16 | |
|
Смотрите разгадку в I2C_GetFlagStatus() :-)
I2C_FLAG_BUSY и прочие I2C_FLAG_... - это не хардварные маски регистров, а софтварные маски состояний и eventов. Для удобства регистры SR1 и SR2 комбинируют в одно 32-хбитовое поле, поэтому реальные биты смещаются.
0
|
|
|
0 / 0 / 0
Регистрация: 13.02.2016
Сообщений: 141
|
|
| 24.02.2016, 13:53 | |
|
но это ведь лишние действия. удобство за счет размер кода и скорости. в принципе я могу сделать так while (I2C1->SR2 & 0x2)
0
|
|
|
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
|
|
| 24.02.2016, 14:18 | |
|
А Вас никто и не заставлял пользоваться SPL ;-)
Естественно, можно обращаться непосредственно к битам SR1 и SR2 по отдельности. И стандартными состояниями/флагами/событиями state-машины I2C не пользоваться, это дело вкуса.
0
|
|
|
0 / 0 / 0
Регистрация: 13.02.2016
Сообщений: 141
|
|
| 24.02.2016, 14:28 | |
|
спасибо. :)
0
|
|
|
0 / 0 / 0
Регистрация: 13.02.2016
Сообщений: 141
|
|||||||||||
| 27.02.2016, 13:16 | |||||||||||
|
непонятки продолжаются. :)
я соорудил такой код для чтения ST датчика. немного переделал их пример. в оригинале написано на HAL платформе.
0
|
|||||||||||
|
1 / 1 / 0
Регистрация: 06.12.2016
Сообщений: 3,946
|
|
| 27.02.2016, 13:55 | |
|
А посмотреть что такое эти ср****ые события не судьба? Что они комбинируются из тех же флагов.
А вообще STM хорошо обделались со старой реализацией y2s , в новой периферии все намного лучше...
0
|
|
|
0 / 0 / 0
Регистрация: 13.02.2016
Сообщений: 141
|
||
| 27.02.2016, 14:15 | ||
а новая периферия с какого начинается? С F4?
0
|
||
|
0 / 0 / 0
Регистрация: 22.03.2015
Сообщений: 838
|
||
| 27.02.2016, 15:15 | ||
IMHO, если в F1 только один байт читать/писать, то ещё имеет смысл по флажкам, а если больше, то проще по dma
0
|
||
|
0 / 0 / 0
Регистрация: 13.02.2016
Сообщений: 141
|
|
| 27.02.2016, 15:20 | |
|
а чем объясняется I2C_CheckIvimt? чем мой метод плох?
а что DMA не обращает внимание на флаги.? ему все равно в каком состоянии слейв.?
0
|
|
|
1 / 1 / 0
Регистрация: 06.12.2016
Сообщений: 3,946
|
||||||
| 27.02.2016, 15:25 | ||||||
|
Китайцы в TS100 вАААще хардварный y2s не используют, заляпали софтовый ногодрыг. :)))))))
Изумительный пример китайчатины...
0
|
||||||
|
0 / 0 / 0
Регистрация: 13.02.2016
Сообщений: 141
|
||
| 27.02.2016, 15:31 | ||
0
|
||
|
1 / 1 / 0
Регистрация: 06.12.2016
Сообщений: 3,946
|
|
| 27.02.2016, 15:45 | |
|
Ну не просто же так, работал бы- не стали бы до такого опускаться... :)))))))
0
|
|
|
0 / 0 / 0
Регистрация: 22.03.2015
Сообщений: 838
|
||
| 27.02.2016, 15:57 | ||
И кстати если б мне надо было 2-3 байта слать на 100Кгц и можно было б в ожиданиях намертво зависать, то я б наверно ногодрыг выбрал )
0
|
||
|
0 / 0 / 0
Регистрация: 13.02.2016
Сообщений: 141
|
||
| 27.02.2016, 16:08 | ||
И кстати если б мне надо было 2-3 байта слать на 100Кгц и можно было б в ожиданиях намертво зависать, то я б наверно ногодрыг выбрал ) и все таки почему I2C_CheckIvimt? почему не мой способ?
0
|
||
|
0 / 0 / 0
Регистрация: 22.03.2015
Сообщений: 838
|
||
| 27.02.2016, 16:13 | ||
0
|
||
|
1 / 1 / 0
Регистрация: 06.12.2016
Сообщений: 3,946
|
|||||||||||||||||||||
| 27.02.2016, 16:25 | |||||||||||||||||||||
|
vt340 , урезаем жЫрноту :))))
0
|
|||||||||||||||||||||
|
0 / 0 / 0
Регистрация: 22.03.2015
Сообщений: 838
|
|
| 27.02.2016, 16:31 | |
|
Мои макросы мне больше нравятся, я без ровного левого столбика инструкций себя неуютно чувствую ))
0
|
|
|
1 / 1 / 0
Регистрация: 06.12.2016
Сообщений: 3,946
|
||
| 27.02.2016, 16:37 | ||
|
Я возьму на вооружение твои фичи.
А так же у Борща с элха скомуниздил:
DMA2_Stream4->M0AR = (uintptr_t)p_data_buf; // для указателей есть специальный тип uintptr_t DMA2_Stream4->POR = (uintptr_t)&ADC1->DR; DMA2_Stream4->NDTR = data_size; DMA2_Stream4->FCR = 0; буферизация отключена DMA2_Stream4->CR = 0 | 0 * (DMA_SxCR_CHSEL & -DMA_SxCR_CHSEL) // канал 0 | 2 * (DMA_SxCR_PSIZE & -DMA_SxCR_PSIZE) // разрядность 32 бита (для примера) | 1 * (DMA_SxCR_MSIZE & -DMA_SxCR_MSIZE) // разрядность 16 бит | 0 * DMA_SxCR_PINC | 1 * DMA_SxCR_MINC | 1 * DMA_SxCR_CIRC // кольцевой режим | 1 * DMA_SxCR_EN ;В такой записи легко менять значения битов, значит ее можно копировать из проекта в проект и такая запись компилится ровно в одну запись в регистр. Запись ( x & -x ) выделяет младший установленный бит из x.
0
|
||
|
0 / 0 / 0
Регистрация: 22.03.2015
Сообщений: 838
|
|
| 27.02.2016, 17:03 | |
|
Красиво, но длинновато )
dosykus, а не попадался тебе где-нибудь y2s ногодрыгом, но в виде конечного автомата, чтоб без мёртвых зависаний в ожиданиях?
0
|
|
| 27.02.2016, 17:03 | |
|
Помогаю со студенческими работами здесь
20
STM32F107+LAN8720+lwIP. stm32f107 любимый usb 2 STM32f107 не работает SPI STM32F107 проблема с Ethernet STM32F107. Проблемы с АЦП Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git
main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели
8ATzM_2aurI
|
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2.
Задача: запретить редактирование документа, если он открыт у другого пользователя.
/ / . . .
|
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои.
А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
|
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
kYBz3eJf3jQ
|
|
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
|
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
|
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора
Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2.
Задача: уведомлять пользователя, если. . .
|
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
|