STM32f4 a I2C

Roman Vostřel vostrel na lit.cz
Úterý Červenec 14 12:27:21 CEST 2015


Je to tak. Nevím jak můžou dát do světa knihovny bez timeoutů u cyklů. 
Ale na druhou stranu v TFT jdou pěkně malovat obrazovky, jsou v tom ale 
také chyby a člověk se stím musí naučit zacházet, ne vše co se v tom 
namaluje odpovídá skutečnosti na displeji. Ale pořád lepší než to 
programovat ručně.


Dne 14.7.2015 v 10:33 Pavel Kutina napsal(a):
> U Mikroe kompilatoru Pascalu a STM32F103 mam podobny problem - jakmile 
> se na I2C objevi nejaky zadrhel, hryzne se a dal nepokracuje. Nejak se 
> mi to nepodarilo osetrit - pokud je slave zivy a odpovida jak ma, tak 
> je vsechno OK, ale pokud se jako master snazim oslovit treba 
> neexistujici zarizeni (typicky - pri vyvoji se spletu v adrese slave), 
> tak ceka a ceka a ceka. Pri nespravne odpovedi (ruseni, chyba v 
> datech) je vysledek velmi podobny. Vcelku moc nevim co s tim, tihle 
> brouci i tenhle kompilator jsou mi sympaticti, ale s I2C je nekde 
> problem. Fakt je, ze jsem to zatim nezkoumal do hloubky, ted je 
> teziste moji "tvorby" malicko jinde.
>
> Pavel Kutina
>
>
>
> ----- Original Message ----- From: "Roman Vostřel" <vostrel na lit.cz>
> To: "HW-news" <hw-list na list.hw.cz>
> Sent: Tuesday, July 14, 2015 9:20 AM
> Subject: Re: STM32f4 a I2C
>
>
>> Učím se používat Visual TFT od Mikroelektroniky a ta má svůj 
>> překladač. Mají tam nějaké knihovny pro komunikaci,nepoužívají 
>> přerušení a zaseknou celý program, pokud slave blbě odpoví. Tudy 
>> cesta nevede.
>>
>> Podíval jsem se do výsledného kodu a i když instrukce Armu zatím 
>> neznám (skončil jsem u 51), bylo jasné že to čtení tam není. Pokud 
>> registr načtu do lokální proměnné,se kterou se dál nepracuje, tak to 
>> překladač ignoruje. Už to konečně chodí.
>>
>> Tři dny hledám, kde je chyba a taková blbost. Jdu se učit instrukce 
>> Armu, vidím že to bez toho nejde. Překladač má někdy svou hlavu.
>>
>>
>> Dne 14.7.2015 v 8:35 Jan Waclawek napsal(a):
>>>   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 na lit.cz>
>>>     Date: Tue, 14 Jul 2015 08:11:37 +0200
>>>       To: HW-news <hw-list na 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.
>>>>
>>>>
>>> _______________________________________________
>>> HW-list mailing list  -  sponsored by www.HW.cz
>>> Hw-list na list.hw.cz
>>> http://list.hw.cz/mailman/listinfo/hw-list
>>>
>>
>> _______________________________________________
>> HW-list mailing list  -  sponsored by www.HW.cz
>> Hw-list na list.hw.cz
>> http://list.hw.cz/mailman/listinfo/hw-list
>>
>
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list



Další informace o konferenci Hw-list