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

 
 
> STM32 I2C + Keil Странности с адресом
RiseOfDeath
сообщение Oct 4 2013, 11:20
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 48
Регистрация: 2-10-13
Пользователь №: 78 579



Доброго времени суток. Я столкнулся со странным поведением моей программы.

Делаю инициализацию I2C:

Код
...
        I2C_InitStruct.I2C_Mode =I2C_Mode_I2C;
    I2C_InitStruct.I2C_OwnAddress1=0x2a; <<<<
    I2C_InitStruct.I2C_Ack=I2C_Ack_Enable;
    I2C_InitStruct.I2C_DutyCycle=I2C_DutyCycle_2;
    I2C_InitStruct.I2C_ClockSpeed = 100000;
    I2C_InitStruct.I2C_AcknowledgedAddress=I2C_AcknowledgedAddress_7bit; <<<< //0x4000
    I2C_Init(I2C1, &I2C_InitStruct);
....


Делаю трассировку внутри функции I2C_Init, дохожу до строки

Код
I2Cx->OAR1 = (I2C_InitStruct->I2C_AcknowledgedAddress | I2C_InitStruct->I2C_OwnAddress1);


И тут начинается неладное - смотри в отладчик и вижу:
Прикрепленное изображение


(поясню.. add7 = (0x2a>>1), причем пробовал другие значения ставить, они именно смещаются на 1 бит в право).

Устройство действительно отзывается по адресу 15 (2a>>1)
Что я не так делаю?

Сообщение отредактировал RiseOfDeath - Oct 4 2013, 11:21
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 19th July 2025 - 16:40
Рейтинг@Mail.ru


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