STM32f4 a I2C

Jan Waclawek konfera na efton.sk
Úterý Červenec 14 08:35:13 CEST 2015


 ADDR: Address sent (master mode)/matched (slave mode)
This bit is cleared by software reading SR1 register followed reading SR2,
or by hardware
when PE=0

Co je u Vas i2c1_sr2? 

Mimochodom, preco nepouzivate standardne definicie z stm32f4xxx.h?

wek


----- Original Message ---------------

Subject: STM32f4 a I2C
   From: =?ISO-8859-2?Q?Roman_Vost=F8el?= <vostrel at lit.cz>
   Date: Tue, 14 Jul 2015 08:11:37 +0200
     To: HW-news <hw-list at list.hw.cz>

>Zase jeden dotaz k STM32F4. Sna¾ím se odeslat nìco pøes I2c s vyu¾itím 
>pøeru¹ení. Ode¹le mì to start, adresu,dostane ACK a zasekne se to pøi 
>odeslání prvního byte. Nìjak ¹patnì nuluji pøíznak ADDR.
>Zatím tam mát tohle:
>
>zaèátek pøeru¹ení
>
>SR1=I2C1_SR1;
>
>if (SR1.b1==1)
>       {
>
>         //test1=i2c1_sr1; (zkou¹el jsem obì varianty)
>         test2=i2c1_sr2;
>         testi1++;
>       }
>
>
>1) po¹lu start
>2) èeká na SB, pak zapí¹u do DR adresu
>3) vrátí se ADDR + TxE, to je ta rutina vý¹e
>  -poznámka: pokud to tady stopnu a znovu rojedu debuggerem,  tak se 
>addr sám vynuluje a ode¹le zbytek dat jak má.
>4) pak obslou¾ím TxE, tam zapí¹i do DR èíslo, tím vynuliji TxE
>5) dál u¾ nic,data se neode¹lou a zacyklí se to na nevynulovaném bitu 1, 
>tj. ADDR
>
>Jak tedy správnì vynulovat ADDR? nìkde dìlám chybu.
>
>



Další informace o konferenci Hw-list