Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Потерял I2C4 в STM32F410RBT6
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
batson
контроллер STM32F410RBT6
в датащите указано наличие в нем I2C4 на ногах PC6 и PC7, указан его бит включения в RCC
т.е. он как бы есть, но в файле stm32f4xx.h базовые адреса только для I2C1 I2C2 и I2C3

кто мне скажет где искать базовый адрес I2C4?
jcxz
Цитата(batson @ May 24 2017, 14:59) *
кто мне скажет где искать базовый адрес I2C4?

Обычно базовые адреса есть в даташите или юзермануале.
batson
да нашел, придется вписывать все ручками.
но прикола с этим портом я не понял, либа вроди та, взята с сайта ST
jcxz
Цитата(batson @ May 24 2017, 15:12) *
но прикола с этим портом я не понял, либа вроди та, взята с сайта ST

не успели обновить. Вам повезло, что даташит обновили раньше хидера. Бывает наоборот.
batson
базовый адрес прописал, остальные константы прописал, все проверил по сто раз
что этому порту опять не нравится?

инит:

GPIOC->MODER &= ~GPIO_MODER_MODER6;
GPIOC->MODER &= ~GPIO_MODER_MODER7;
GPIOC->MODER |= GPIO_MODER_MODER6_1;
GPIOC->MODER |= GPIO_MODER_MODER7_1;
GPIOC->OTYPER |= GPIO_OTYPER_OT_6;
GPIOC->OTYPER |= GPIO_OTYPER_OT_7;
GPIOC->OSPEEDR|=(GPIO_OSPEEDER_OSPEEDR6_1 | GPIO_OSPEEDER_OSPEEDR7_1);
GPIOC->AFR[0] |= (0x04 << (6 * 4));
GPIOC->AFR[0] |= (0x04 << (7 * 4));
RCC->APB1ENR |= RCC_APB1ENR_I2C4EN;
I2C4->CR2 = 24;
I2C4->CCR = 50;
I2C4->TRISE = 10 + 1;
I2C4->CR1 |= I2C_CR1_PE;
while ((I2C4->CR1 & I2C_CR1_PE) == 0){};// специально добавил для проверки, проходит


зависает на:

void i2c_send_start(void)
{
I2C4->CR1 |= I2C_CR1_START;
while(!(I2C4->SR1 & I2C_SR1_SB)){};// тут виснет
}


I2C4 работает у всех и я один такой?
batson
вскрытие показало что нет записи в CCR и TRISE, там нули при считывании
batson
сам спросил, сам отвечу
по адресам I2C4 в STM32F410RB живет FMPI2C, с ним надо общаться по другому
AlexRayne
Цитата(batson @ May 29 2017, 01:08) *
сам спросил, сам отвечу
по адресам I2C4 в STM32F410RB живет FMPI2C, с ним надо общаться по другому

А это что за зверь?
Obam
Цитата(AlexRayne @ May 29 2017, 11:54) *
А это что за зверь?

I2C тот, что до мегабита. FastModePlus
batson
да, высокоскоростной i2c, у него другой набор регистров
если у кого есть примеры работы с ним киньте пример работы и инита
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.