Pratesiant ARM seriją su pačia pigiausia plokštele iš kinijos. Plokštelėje tik STM32F103C8 ir keli papildomi elementai. Sekantis reikalas kurį reikia įvaldyti tai I2C. Kol kas tik rašymas ir tik po kelis baitus ir be jokių DMA ir IRQ. Visiškai taip pat, kaip ir su AVR. Tačiau šį kartą naudojam patį pigiausią ekraniuką iš kinijos su SSD1306 kontroleriu, aštriai mėlynos spalvos:
Dalis softo mano, dalis vogto ir supaprastinto. Vienintelis pastebėjimas dėl hardwarės- gal dėl sujungimo (per laidelius), o gal dėl kiniškos kilmės, pastebėta, kad kelis kartus ekraniukas nepasileido.
Ir aišku visas source code, bei sukompiliuotas hex hardvarės testavimui. Kompiliavosi ir su 6 ir su 7 gcc.
SSD1306 OLED on ARM STM32F103C.
Problemos su startu. Vienas modulis pasileidinėjo be problemų įjungiant maitinimą, kitas nepasileido. Net ne visada pasileido po hardware reset. Problema išsisprendė įdėjus 200ms pauzę tarp hardwarės inicializacijos ir I2C paleidimo ir net 1,5s pauzę tarp I2C ir ekraniuko konfiguravimo.
Pastaba: modulis ir ekranas maitinasi iš labai prasto USB per programatorių. Gal pajungus teisingai maitinimą ekraniukas pasileistu greičiau.
I2C greičio keitimas nepadėjo.
https://forum.arduino.cc/index.php?topic=412640.15
Reikia resetinti. Vienintelis postas su nuotrauka yra solution.
Gali būti, nors ten šneka apie SPI ir 5V grandines. Čia I2C ir 3V sistema. Ir padidinus pauzes viskas veikia. Manau, kad kinai naudoja visokias brokuotas atliekas savo moduliams ir paprasčiausiai nepasisekė. Nes kitas moduliukas puikiausiai veikė.