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