Перейти к содержанию
    

Потерял I2C4 в STM32F410RBT6

контроллер STM32F410RBT6

в датащите указано наличие в нем I2C4 на ногах PC6 и PC7, указан его бит включения в RCC

т.е. он как бы есть, но в файле stm32f4xx.h базовые адреса только для I2C1 I2C2 и I2C3

 

кто мне скажет где искать базовый адрес I2C4?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

кто мне скажет где искать базовый адрес I2C4?

Обычно базовые адреса есть в даташите или юзермануале.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

да нашел, придется вписывать все ручками.

но прикола с этим портом я не понял, либа вроди та, взята с сайта ST

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

но прикола с этим портом я не понял, либа вроди та, взята с сайта ST

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

базовый адрес прописал, остальные константы прописал, все проверил по сто раз

что этому порту опять не нравится?

 

инит:

 

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 работает у всех и я один такой?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

сам спросил, сам отвечу

по адресам I2C4 в STM32F410RB живет FMPI2C, с ним надо общаться по другому

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

сам спросил, сам отвечу

по адресам I2C4 в STM32F410RB живет FMPI2C, с ним надо общаться по другому

А это что за зверь?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

да, высокоскоростной i2c, у него другой набор регистров

если у кого есть примеры работы с ним киньте пример работы и инита

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...