реклама на сайте
подробности

 
 
> STM32F100C6T6 и I2C1, работать не хочет
ivainc1789
сообщение Apr 12 2012, 14:36
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 175
Регистрация: 5-01-05
Пользователь №: 1 807



По примеру в IAR EWARM написал небольшую программу инициализации интерфейса I2C для работы через прерывания:
CODE
void I2C_Ini(void){
I2C_InitTypeDef I2C_InitStructure;
NVIC_InitTypeDef NVIC_InitStructure;
// I2C RCC
RCC_APB1PeriphClockCmd(RCC_APB1Periph_I2C1,ENABLE);
// I2C GPIO
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);
GPIO_PinRemapConfig(GPIO_Remap_I2C1,ENABLE);// SCL=B8,SDA=B9
PININI(SCL,GPIO_Mode_AF_OD,GPIO_Speed_50MHz);PINLOCK(SCL); // макросы проверены, ошибок нет
PININI(SDA,GPIO_Mode_AF_OD,GPIO_Speed_50MHz);PINLOCK(SDA);// макросы проверены, ошибок нет
// I2C config
I2C_InitStructure.I2C_ClockSpeed = 100000;
I2C_InitStructure.I2C_Mode = I2C_Mode_I2C;
I2C_InitStructure.I2C_DutyCycle = I2C_DutyCycle_2;
I2C_InitStructure.I2C_OwnAddress1 = 0xAA;
I2C_InitStructure.I2C_Ack = I2C_Ack_Enable;
I2C_InitStructure.I2C_AcknowledgedAddress = I2C_AcknowledgedAddress_7bit;
I2C_Init(I2C1,&I2C_InitStructure);
I2C_Cmd(I2C1,ENABLE);
// I2C NVIC
NVIC_InitStructure.NVIC_IRQChannel = I2C1_EV_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
NVIC_InitStructure.NVIC_IRQChannel = I2C1_ER_IRQn;
NVIC_Init(&NVIC_InitStructure);
I2C_ITConfig(I2C1,I2C_IT_EVT,ENABLE); // enable event IRQ
I2C_ITConfig(I2C1,I2C_IT_ERR,ENABLE); // enable error IRQ
I2C_ITConfig(I2C1,I2C_IT_BUF,ENABLE); // enable buffer IRQ
}


Странно, но результатом ее выполнения является установка бита BUSY, хотя осцилл показывает, что линии SCL и SDA находятся в высоком уровне. По описанию этого бита, его установка свидетельствует о низком уровне хотя бы одной линии. Что же тут не так?
Дальнейшая выдача START бессмысленна, т. к. судя по всему интерфейс неправильно инициализирован...

Сообщение отредактировал IgorKossak - Apr 12 2012, 17:43
Причина редактирования: [codebox]!!!
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 04:09
Рейтинг@Mail.ru


Страница сгенерированна за 0.01346 секунд с 7
ELECTRONIX ©2004-2016