cancel
Showing results for 
Search instead for 
Did you mean: 

STM32F030C8 I2C1 in BUS_BUSY after first start pulse.

Wanderer
Associate

First I thouht that problem in code generation from Cube, rewrote all in CMSIS, but nothing changed. 

I2C using only as a "slave", but after generation "start" and sending addres (0x70) + write no interrupt flags is set. Where my mistake?

Initialisation code here:

RCC->AHBENR|=RCC_AHBENR_GPIOBEN;

GPIOB->MODER|=GPIO_MODER_MODER6_1|GPIO_MODER_MODER7_1;

GPIOB->OSPEEDR|=GPIO_OSPEEDR_OSPEEDR6_0|GPIO_OSPEEDR_OSPEEDR7_0;

GPIOB->AFR[0]|=0x11000000;

RCC->APB1ENR|=RCC_APB1ENR_I2C1EN;

I2C1->CR1|=I2C_CR1_PE;

I2C1->CR1&=~I2C_CR1_PE;

I2C1->CR1|=I2C_CR1_TXIE|I2C_CR1_RXIE|I2C_CR1_STOPIE|I2C_CR1_ERRIE|I2C_CR1_ANFOFF

|I2C_CR1_ADDRIE;

I2C1->CR2|=I2C_CR2_NACK;

I2C1->OAR1|=I2C_OAR1_OA1EN;

I2C1->OAR1|=(0x70<<1);

I2C1->TIMINGR=0x00200000;

 I2C1->CR1|=I2C_CR1_PE;  

 __enable_irq ();

HAL_NVIC_EnableIRQ(I2C1_IRQn);

Thank you for help.

This discussion is locked. Please start a new topic to ask your question.
1 REPLY 1
KnarfB
Super User

I don't really get your point. A I2C slave will not send its address. It may only respond to a master read/write request.

for HAL I2C slave sample code look at my comment in "Connecting Raspberry PI to STM32F105xx via I2C". (Does the forum have permanent links for that?).

hth

KnarfB

Announcement

We’re moving the ST Community to a new platform to give you a better and more reliable community experience.