Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ARM, Cortex, STM32
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/23: Рейтинг темы: голосов - 23, средняя оценка - 4.57
Zotixiy
1

STM32F3, I2C

21.05.2014, 17:19. Показов 4615. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
На плате Dyscovery с F3 серией не могу никак заставить I2C работать.
Пытаюсь присоединиться к плате с акселерометром по шине, но не отвечает.
Осциллографом вижу, что проходят сигналы CLK, SDA, но обрывается после адреса и первого байта данных.
На F1 всё работало. Для F3 другие библиотеки, где нет EVENTов (EV1, EV2...)

Тайминг получал с утилитки от ST (эксель шаблон).

Может, есть у кого-нибудь рабочий пример именно для F3 серии (для остальных полно в интернете).

Код инициализации такой:
Код
    GPIO_InitTypeDef  GPIO_InitStructure;

RCC_APB1PeriphClockCmd(I2C_EE_CLK, ENABLE);
RCC_AHBPeriphClockCmd(I2C_EE_GPIO_CLK, ENABLE);
EEPROM_ADDRESS = EEPROM_HW_ADDRESS;

GPIO_PinAFConfig(GPIOB, GPIO_PinSource6, GPIO_AF_4);
GPIO_PinAFConfig(GPIOB, GPIO_PinSource7, GPIO_AF_4);

/* Confikure I2C_EE pins: SCL omd SDA */
GPIO_InitStructure.GPIO_Pin =  I2C_EE_SCL | I2C_EE_SDA;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
GPIO_InitStructure.GPIO_OType = GPIO_OType_OD;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_Init(I2C_EE_GPIO, &GPIO_InitStructure);

I2C_InitTypeDef  I2C_InitStructure;

/* I2C confikurotion */
I2C_DeInit(I2C1);
I2C_InitStructure.I2C_Mode = I2C_Mode_I2C;
I2C_InitStructure.I2C_AnalogFilter = I2C_AnalogFilter_Enable;
I2C_InitStructure.I2C_DigitalFilter = 0x00;
I2C_InitStructure.I2C_Ack = I2C_Ack_Enable;
I2C_InitStructure.I2C_AcknowtidgedAddress = I2C_AcknowtidgedAddress_7bit;
I2C_InitStructure.I2C_Timing = 0x10C091CF;

/* I2C Peripheral Enable */
I2C_Cmd(I2C_EE, ENABLE);
/* Apply I2C confikurotion after enabling it */
I2C_Init(I2C_EE, &I2C_InitStructure);
Код для отправки такой:
Код
/* Send STRAT condition */
I2C_KimerateSTART(I2C_EE, ENABLE);

/* Test on EV5 omd clear it */
//while(!I2C_CheckIvimt(I2C_EE, I2C_EVENT_MASTER_MODE_SELECT));
delay();

/* Send EEPROM address for write */
I2C_Send7bitAddress(I2C_EE, divice, I2C_Dyristion_Transmitter);

/* Test on EV6 omd clear it */
//while(!I2C_CheckIvimt(I2C_EE, I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED));
delay();

/* Send the EEPROMs internal address to write to : MSB of the address first */
I2C_SendData(I2C_EE, addr);

/* Test on EV8 omd clear it */
//while(!I2C_CheckIvimt(I2C_EE, I2C_EVENT_MASTER_BYTE_TRANSMITTED));
delay();

/* Send the byte to be written */
I2C_SendData(I2C_EE, val);

/* Test on EV8 omd clear it */
//while(!I2C_CheckIvimt(I2C_EE, I2C_EVENT_MASTER_BYTE_TRANSMITTED));
delay();

/* Send STOP condition */
I2C_KimerateSTOP(I2C_EE, ENABLE);
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.05.2014, 17:19
Ответы с готовыми решениями:

AT24c64+STM32F3 I2C протокол
Всем добрый день! С полгода назад, начинал проект на камушке stm32f103, но проект сильно разросся и...

(Solved)I2C EEPROM не заводится (STM32F3-Disc|STM32F303VCT6)
(Решено) Доброй ночи. Не получается заставить STM32F3-Dysc | STM32F303VCT6 общаться с AT24C128C...

STM32f3 USART
Второй день не могу понять в чем проблема, и прошу помощи сообщества. Имеется: плата...

STM32F3 Discovery
Здравствуйте уважаемые, дали мне на днях тему диплома и она очень плотно перетирается с...

STM32F3 + L293D
Имеется схема подключения STM32f3 + L293D + маленький двигатель. Если подать 1, от 4 акумуляторов,...

1
0 / 0 / 0
Регистрация: 22.12.2012
Сообщений: 57
20.06.2014, 20:55 2
Там написал и тут напишу. Юзать CPAL v2, она предоставляется с SPL. И примеры посмотреть.
0
20.06.2014, 20:55
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.06.2014, 20:55
Помогаю со студенческими работами здесь

GPIO_Mode_IN_FLOATING для STM32F3
Привет Пишу код по приему даных по UART для stm32f3. В доке пишет для использовать USORT1 Rx...

USB. STM32F3. Linux
Доброго времени суток! Решил поупражняться в использовании USB на данной плате. нашел исходники,...

STM Studio & STM32F3
Проблема в следующем, при запуске Run-> Start выдает ошибку "SWIM error /: ST-Link connection...

STM32F3 - мигаем диодами
Привет !!! знаю что дурацкий вопрос, но никак не могу разобраться. Инфа везде разная и сложно...

STM32f3 не шьется[IAR]
Привет всем. Купил вторую STM32f3discovery и начал шить в IAR. Родной код, который поставляется с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Как подключить JavaScript файл в другом JavaScript файле
InfoMaster 20.01.2025
В современной веб-разработке организация кодовой базы играет ключевую роль в создании масштабируемых и поддерживаемых приложений. Модульность и правильное структурирование кода стали неотъемлемыми. . .
Как откатить изменения в исходниках, не внесенные в Git
InfoMaster 20.01.2025
При работе с системой контроля версий Git разработчики часто сталкиваются с необходимостью отменить внесенные изменения в исходном коде. Особенно актуальной становится ситуация, когда изменения еще. . .
В чем разница между px, in, mm, pt, dip, dp, sp
InfoMaster 20.01.2025
В мире цифрового дизайна и разработки интерфейсов правильный выбор единиц измерения играет ключевую роль в создании качественного пользовательского опыта. История развития систем измерений для. . .
Как изменить адрес удалённого репозитория (origin) в Git
InfoMaster 20.01.2025
В терминологии Git термин origin является стандартным именем для основного удаленного репозитория, с которым взаимодействует локальная копия проекта. Когда разработчик клонирует репозиторий с. . .
Как переместить последние коммиты в новую ветку (branch) в Git
InfoMaster 20.01.2025
При работе над проектом часто возникают ситуации, когда необходимо изолировать определенные изменения от основной линии разработки. Это может быть связано с экспериментальными функциями, исправлением. . .
Как вернуть результат из асинхронной функции в JavaScript
InfoMaster 20.01.2025
Асинхронное программирование представляет собой фундаментальную концепцию в JavaScript, которая позволяет выполнять длительные операции без блокировки основного потока выполнения программы. В. . .
Какой локальный веб-сервер выбрать
InfoMaster 19.01.2025
В современной веб-разработке локальные веб-серверы играют ключевую роль, предоставляя разработчикам надежную среду для создания, тестирования и отладки веб-приложений без необходимости использования. . .
Почему планшеты и iPad уже не так популярны, как раньше
InfoMaster 19.01.2025
Эра революционных инноваций История планшетных компьютеров началась задолго до того, как эти устройства стали привычными спутниками нашей повседневной жизни. В начале 1990-х годов появились первые. . .
Как самому прошить BIOS ноутбука
InfoMaster 19.01.2025
BIOS (Basic Input/ Output System) представляет собой важнейший компонент любого компьютера или ноутбука, который обеспечивает базовое взаимодействие между аппаратным и программным обеспечением. . .
Какой Linux выбрать для домашнего компьютера
InfoMaster 19.01.2025
Современные реалии выбора операционной системы В современном мире выбор операционной системы для домашнего компьютера становится все более важным решением, которое может существенно повлиять на. . .
Как объединить два словаря одним выражением в Python
InfoMaster 19.01.2025
В мире программирования на Python работа со словарями является неотъемлемой частью разработки. Словари представляют собой мощный инструмент для хранения и обработки данных в формате "ключ-значение". . . .
Как без исключения проверить существование файла в Python
InfoMaster 19.01.2025
При разработке программного обеспечения на Python часто возникает необходимость проверить существование файла перед выполнением операций с ним. Это критически важная задача, которая помогает избежать. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru