Полная версия этой страницы:
Потерял I2C4 в STM32F410RBT6
batson
May 24 2017, 12:59
контроллер STM32F410RBT6
в датащите указано наличие в нем I2C4 на ногах PC6 и PC7, указан его бит включения в RCC
т.е. он как бы есть, но в файле stm32f4xx.h базовые адреса только для I2C1 I2C2 и I2C3
кто мне скажет где искать базовый адрес I2C4?
Цитата(batson @ May 24 2017, 14:59)

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

но прикола с этим портом я не понял, либа вроди та, взята с сайта ST
не успели обновить. Вам повезло, что даташит обновили раньше хидера. Бывает наоборот.
batson
May 27 2017, 15:26
базовый адрес прописал, остальные константы прописал, все проверил по сто раз
что этому порту опять не нравится?
инит:
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
May 28 2017, 08:06
вскрытие показало что нет записи в CCR и TRISE, там нули при считывании
batson
May 28 2017, 22:08
сам спросил, сам отвечу
по адресам I2C4 в STM32F410RB живет FMPI2C, с ним надо общаться по другому
AlexRayne
May 29 2017, 07:54
Цитата(batson @ May 29 2017, 01:08)

сам спросил, сам отвечу
по адресам I2C4 в STM32F410RB живет FMPI2C, с ним надо общаться по другому
А это что за зверь?
Цитата(AlexRayne @ May 29 2017, 11:54)

А это что за зверь?
I2C тот, что до мегабита.
Fast
Mode
Plus
batson
May 29 2017, 10:29
да, высокоскоростной i2c, у него другой набор регистров
если у кого есть примеры работы с ним киньте пример работы и инита
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.