STM32f4 a I2C

Roman Vostřel vostrel na lit.cz
Úterý Červenec 14 08:11:37 CEST 2015


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ší část ---------------
A non-text attachment was scrubbed...
Name: i2c.PNG
Type: image/png
Size: 1971 bytes
Desc: [žádný popis není k dispozici]
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20150714/11cc4617/attachment.png>


Další informace o konferenci Hw-list