<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>STM32 Projeleri &#8211; Robo90 &#8211; Blog</title>
	<atom:link href="https://blog.robo90.com/kategori/projeler/stm32-projeleri/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.robo90.com</link>
	<description>Arduino, 3D Yazıcı, Elektronik, Yazılım ve Teknoloji Hakkında Yüzlerce İçerik!</description>
	<lastBuildDate>Tue, 14 Nov 2023 10:01:43 +0000</lastBuildDate>
	<language>tr</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://blog.robo90.com/wp-content/uploads/2023/09/cropped-robo90-blog-favicon-robot-1-32x32.png</url>
	<title>STM32 Projeleri &#8211; Robo90 &#8211; Blog</title>
	<link>https://blog.robo90.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>STM32 ile I2C Oled Ekran Kullanımı</title>
		<link>https://blog.robo90.com/stm32-ile-i2c-oled-ekran-kullanimi/</link>
					<comments>https://blog.robo90.com/stm32-ile-i2c-oled-ekran-kullanimi/#comments</comments>
		
		<dc:creator><![CDATA[Yusuf Coşgun]]></dc:creator>
		<pubDate>Tue, 14 Nov 2023 08:46:19 +0000</pubDate>
				<category><![CDATA[STM Eğitim Serisi]]></category>
		<category><![CDATA[STM32 Projeleri]]></category>
		<category><![CDATA[CubeIDE]]></category>
		<category><![CDATA[ekran]]></category>
		<category><![CDATA[I2C]]></category>
		<category><![CDATA[oled]]></category>
		<category><![CDATA[STM32]]></category>
		<guid isPermaLink="false">https://blog.robo90.com/?p=8843</guid>

					<description><![CDATA[<p>Bu uygulamada STM32 ile I2C Oled ekran kullanımını öğrendik.</p>
<p><a rel="nofollow" href="https://blog.robo90.com/stm32-ile-i2c-oled-ekran-kullanimi/">STM32 ile I2C Oled Ekran Kullanımı</a> yazısı ilk önce <a rel="nofollow" href="https://blog.robo90.com">Robo90 - Blog</a> üzerinde ortaya çıktı.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Arkadaşlar merhaba ben Yusuf. Bu yazıda sizlerle STM32 ile I2C Oled ekranlar nasıl kullanabiliriz onu öğreneceğiz. Detayları yazımın devamını okuyarak bulabilirsiniz. Kafanıza takılan bir soruyu yorum olarak sorabilirsiniz ayrıca öneri ve eleştirilerinizi de bekliyorum. </p>





<h2 class="wp-block-heading has-black-color has-text-color">Malzemeler</h2>



<ul class="wp-block-list">
<li><a href="https://www.robo90.com/stm32f411ceu6-gelistirme-karti-100mhz-512kb?utm_source=Robo90&amp;utm_medium=blog&amp;utm_campaign=stm32oled" data-type="link" data-id="https://www.robo90.com/stm32f411ceu6-gelistirme-karti-100mhz-512kb">STM32F411</a></li>



<li><a href="https://www.robo90.com/st-link-v2-stm8-stm32-mini-programlayici-arm?utm_source=Robo90&amp;utm_medium=blog&amp;utm_campaign=stm32oled" data-type="link" data-id="https://www.robo90.com/st-link-v2-stm8-stm32-mini-programlayici-arm">STLINK</a></li>



<li><a href="https://www.robo90.com/128x64-oled-lcd-ekran-096-inch-mavi?utm_source=Robo90&amp;utm_medium=blog&amp;utm_campaign=stm32oled" data-type="link" data-id="https://www.robo90.com/128x64-oled-lcd-ekran-096-inch-mavi?utm_source=Robo90&amp;utm_medium=blog&amp;utm_campaign=stm32oled">128&#215;64 Oled Lcd Ekran 0.96 inch &#8211; Mavi</a></li>
</ul>



<h2 class="wp-block-heading has-black-color has-text-color">Adım 1: CubeIDE Üzerinde STM32 Projesi Oluşturma </h2>



<p>Projemizi oluşturmadan önce STM32CubeIDE üzerinde projemizde kullanacağımız mikrodenetleyiciyi seçmemiz gerekiyor. Ben elimde bulunduğu için F411CEU6 modelini seçeceğim. Siz elinizdeki modeli seçerek ilerleyeceksiniz.</p>



<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="1024" height="767" src="https://blog.robo90.com/wp-content/uploads/2023/11/image-1024x767.png" alt="STM32CubeIDE mikrodenetleyici seçim ekranı" class="wp-image-8877" title="STM32 ile I2C Oled Ekran Kullanımı 1" srcset="https://blog.robo90.com/wp-content/uploads/2023/11/image-1024x767.png 1024w, https://blog.robo90.com/wp-content/uploads/2023/11/image-300x225.png 300w, https://blog.robo90.com/wp-content/uploads/2023/11/image-768x575.png 768w, https://blog.robo90.com/wp-content/uploads/2023/11/image-150x112.png 150w, https://blog.robo90.com/wp-content/uploads/2023/11/image-450x337.png 450w, https://blog.robo90.com/wp-content/uploads/2023/11/image-1200x899.png 1200w, https://blog.robo90.com/wp-content/uploads/2023/11/image.png 1368w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>Mikrodenetleyicimizi seçip Next dedikten sonra projemize isim vererek devam ediyoruz. Burada gelen ekranda mikrodenetleyicimizin birimlerini düzenleyeceğiz.</p>



<p>İlk olarak sol tarafta bulunan menüden System Core kategorisi altında bulunan SYS menüsüne geliyoruz ve Debug&#8217;ı fotoğraftaki gibi Serial Wire yapıyoruz.</p>



<figure class="wp-block-image size-full"><img decoding="async" width="827" height="379" src="https://blog.robo90.com/wp-content/uploads/2023/11/image-1.png" alt="STM32CubeIDE System Core altından Debug seçimini Serial Wire yapıyoruz" class="wp-image-8878" title="STM32 ile I2C Oled Ekran Kullanımı 2" srcset="https://blog.robo90.com/wp-content/uploads/2023/11/image-1.png 827w, https://blog.robo90.com/wp-content/uploads/2023/11/image-1-300x137.png 300w, https://blog.robo90.com/wp-content/uploads/2023/11/image-1-768x352.png 768w, https://blog.robo90.com/wp-content/uploads/2023/11/image-1-150x69.png 150w, https://blog.robo90.com/wp-content/uploads/2023/11/image-1-450x206.png 450w" sizes="(max-width: 827px) 100vw, 827px" /></figure>



<p>Daha sonra RCC menüsüne giriyoruz ve fotoğraftaki gibi High Speed Clock (HSE) seçeneğini Crystal/Ceramic Resonator seçiyoruz.</p>



<figure class="wp-block-image size-full"><img decoding="async" width="824" height="378" src="https://blog.robo90.com/wp-content/uploads/2023/11/image-2.png" alt="STM32CubeIDE RCC mode seçimi" class="wp-image-8879" title="STM32 ile I2C Oled Ekran Kullanımı 3" srcset="https://blog.robo90.com/wp-content/uploads/2023/11/image-2.png 824w, https://blog.robo90.com/wp-content/uploads/2023/11/image-2-300x138.png 300w, https://blog.robo90.com/wp-content/uploads/2023/11/image-2-768x352.png 768w, https://blog.robo90.com/wp-content/uploads/2023/11/image-2-150x69.png 150w, https://blog.robo90.com/wp-content/uploads/2023/11/image-2-450x206.png 450w" sizes="(max-width: 824px) 100vw, 824px" /></figure>



<p>Daha sonra Connectivity menüsü altında bulunan I2C birimlerinden birini seçiyoruz. Ben I2C1&#8217;i seçerek devam ediyorum. Bu menü altında I2C&#8217;yi fotoğraftaki gibi I2C seçip aşağıda açılan Configuration sekmesinde fotoğraftaki gibi I2C Speed Modunu Fast Mode&#8217;a ayarlıyoruz. Bu ayarlamadan sonra bu sekmedeki işimizi bitiriyoruz.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="802" height="905" src="https://blog.robo90.com/wp-content/uploads/2023/11/image-3.png" alt="STM32CubeIDE I2C seçimi" class="wp-image-8880" title="STM32 ile I2C Oled Ekran Kullanımı 4" srcset="https://blog.robo90.com/wp-content/uploads/2023/11/image-3.png 802w, https://blog.robo90.com/wp-content/uploads/2023/11/image-3-266x300.png 266w, https://blog.robo90.com/wp-content/uploads/2023/11/image-3-768x867.png 768w, https://blog.robo90.com/wp-content/uploads/2023/11/image-3-150x169.png 150w, https://blog.robo90.com/wp-content/uploads/2023/11/image-3-450x508.png 450w" sizes="(max-width: 802px) 100vw, 802px" /></figure>



<p>Bu işlemleri yaptıktan sonra ekranda bulunan mikrodenetleyicimizin ön izlemesinde bazı pinlerin yeşil olduğunu göreceksiniz.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="705" height="591" src="https://blog.robo90.com/wp-content/uploads/2023/11/image-4.png" alt="STM32CubeIDE STM32F411CEUx UFQFPN48 mikrodenetleyici pin ön izlemesi" class="wp-image-8881" title="STM32 ile I2C Oled Ekran Kullanımı 5" srcset="https://blog.robo90.com/wp-content/uploads/2023/11/image-4.png 705w, https://blog.robo90.com/wp-content/uploads/2023/11/image-4-300x251.png 300w, https://blog.robo90.com/wp-content/uploads/2023/11/image-4-150x126.png 150w, https://blog.robo90.com/wp-content/uploads/2023/11/image-4-450x377.png 450w" sizes="(max-width: 705px) 100vw, 705px" /></figure>



<p>Şimdi sırada mikrodenetleyicimizin çalışacağı frekansı ayarlamakta bunun için üst tarafta bulunan sekmelerden Clock Configuration sekmesine geliyoruz burada fotoğraftaki ayarları uygulayıp ALT+K tuşlarına basarak kodumuzu oluşturuyoruz.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="487" src="https://blog.robo90.com/wp-content/uploads/2023/11/image-5-1024x487.png" alt="STM32CubeIDE Clock Configuration üzerinden frekans ayarı" class="wp-image-8882" title="STM32 ile I2C Oled Ekran Kullanımı 6" srcset="https://blog.robo90.com/wp-content/uploads/2023/11/image-5-1024x487.png 1024w, https://blog.robo90.com/wp-content/uploads/2023/11/image-5-300x143.png 300w, https://blog.robo90.com/wp-content/uploads/2023/11/image-5-768x365.png 768w, https://blog.robo90.com/wp-content/uploads/2023/11/image-5-150x71.png 150w, https://blog.robo90.com/wp-content/uploads/2023/11/image-5-450x214.png 450w, https://blog.robo90.com/wp-content/uploads/2023/11/image-5.png 1191w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>Şimdi yapmamız gereken kütüphane dosyalarımızı indirip projede ilgili klasörlerine atmak. Ben kullanım kolaylığı ve işlevsel fonksiyonlarından dolayı Controllers Tech&#8217;in hazırladığı kütüphaneyi tercih ediyorum. Inc klasörü içine <strong>fonts.h </strong>ve<strong> ssd1306.h </strong>dosyalarını atıyoruz. Src klasörü içine ise <strong>fonts.c</strong> ve <strong>ssd1306.c</strong> dosyalarını kopyalıyoruz.</p>



<h2 class="wp-block-heading has-black-color has-text-color">Adım 2: CubeIDE Üzerinde Kodları Yazma</h2>



<p>Projemizi başarı ile oluşturup kütüphane dosyalarını ekledikten sonra main.c içerisinde ilk önce kütüphanemizi import ediyoruz bunun için aşağıdaki kodu kullanıyoruz.</p>



<pre class="wp-block-code"><code>/* USER CODE BEGIN Includes */
#include "ssd1306.h"
#include "fonts.h"
/* USER CODE END Includes */</code></pre>



<p>Yazdığımız kodları ve projemize eklediğimiz kütüphaneleri USER CODE yorum satırları arasına yazmamız çok önemli. Çünkü CubeIDE her mikrodenetleyici ayarı yaptığımızda kodu sıfırdan oluşturuyor. Bu işlem sırasında kodlarımızın silinmemesi için kodlarımızı USER CODE yorum satırları arasına alarak silinmelerin önüne geçiyoruz. Kütüphanemizi import ettikten sonra main loopumuzda ssd1306 oled ekranımızı başlatmalıyız bunun için aşağıdaki kodu kullanıyoruz.</p>



<pre class="wp-block-code"><code>/* USER CODE BEGIN 2 */
SSD1306_Init();
/* USER CODE END 2 */</code></pre>



<p>Şu andan itibaren oled ekranımız kullanıma hazır hale geliyor. Şimdi ilk örnek olarak oled ekranımızda belirli konumlarda yazı yazdıralım. Yine USER CODE yorum satırları arasında aşağıdaki kodu kullanabiliriz.</p>



<pre class="wp-block-code"><code>SSD1306_GotoXY (0,0); 
SSD1306_Puts ("Merhaba", &amp;Font_11x18, 1); 
SSD1306_GotoXY (10, 30); 
SSD1306_Puts ("ROBO90 !!", &amp;Font_11x18, 1); 
SSD1306_UpdateScreen(); </code></pre>



<p>Burada SSD1306_GotoXY fonksiyonu ekran imlecimizin gideceği x ve y koordinatlarını ayarlıyor. SSD1306_Puts fonksiyonu ise imlecin bulunduğu konuma bir string verisi yazdırıyor. Buradaki en önemli kod olan SSD1306_UpdateScreen();  ise oled ekranımızı güncelliyor ve ona yazdırdığımız şeylerin gözükmesini sağlıyor.</p>



<h2 class="wp-block-heading has-black-color has-text-color">Adım 3: Devre Şeması, Bağlantı ve İlk Test</h2>



<h3 class="wp-block-heading">STM32 OLED LCD Devre Şeması ve Bağlantı</h3>



<p>Oled ekranımızın çalışması için güç ve veri hatlarını mikrodenetleyicimize bağlamalıyız. I2C pinlerimiz B6 ve B7&#8217;de olduğu için karşılığı oldukları sinyalleri bağlıyoruz. Uygun devre şemasını fotoğrafta görebilirsiniz.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="987" height="756" src="https://blog.robo90.com/wp-content/uploads/2023/11/image-6.png" alt="stm32 ile oled kullanımı devre şeması" class="wp-image-8886" title="STM32 ile I2C Oled Ekran Kullanımı 7" srcset="https://blog.robo90.com/wp-content/uploads/2023/11/image-6.png 987w, https://blog.robo90.com/wp-content/uploads/2023/11/image-6-300x230.png 300w, https://blog.robo90.com/wp-content/uploads/2023/11/image-6-768x588.png 768w, https://blog.robo90.com/wp-content/uploads/2023/11/image-6-150x115.png 150w, https://blog.robo90.com/wp-content/uploads/2023/11/image-6-450x345.png 450w" sizes="(max-width: 987px) 100vw, 987px" /></figure>



<h3 class="wp-block-heading">İlk Test</h3>



<p>Oled ekranımızı ve STM32&#8217;mizi birbirine bağladıktan sonra sıra STLink üzerinden kodumuzu atmaya geliyor. Bunun için önce kodumuzu derleyip (Fotoğrafta en soldaki üzerinde 010 yazan kağıt ikonlu tuş ) daha sonra debug modunda kodumuzu çalıştırıyoruz. (Fotoğrafın en sağındaki örümcek ikonu)</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="284" height="51" src="https://blog.robo90.com/wp-content/uploads/2023/11/image-7.png" alt="stm32 stlink kod derleme" class="wp-image-8887" title="STM32 ile I2C Oled Ekran Kullanımı 8" srcset="https://blog.robo90.com/wp-content/uploads/2023/11/image-7.png 284w, https://blog.robo90.com/wp-content/uploads/2023/11/image-7-150x27.png 150w" sizes="(max-width: 284px) 100vw, 284px" /></figure>



<p>Bunları yaptıktan sonra alt fotoğrafta gözüken kısım ile karşılaşacağız fotoğrafın en soldan ikinci ikonuna tıklayıp kodumuzun mikrodenetleyici içerisinde çalışmasını başlatıyoruz.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="244" height="69" src="https://blog.robo90.com/wp-content/uploads/2023/11/image-8.png" alt="stlink ile kodu mikrodenetliyiciye atmak" class="wp-image-8888" title="STM32 ile I2C Oled Ekran Kullanımı 9" srcset="https://blog.robo90.com/wp-content/uploads/2023/11/image-8.png 244w, https://blog.robo90.com/wp-content/uploads/2023/11/image-8-150x42.png 150w" sizes="(max-width: 244px) 100vw, 244px" /></figure>



<p>Bunları yaptıktan sonra OLED ekranımızda aşağıdaki gibi bir görüntü olması gerekiyor. Eğer bu sonucu elde edebildiyseniz STM32 ile başarılı bir şekilde OLED ekranını kullanabildiniz demektir. </p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="845" height="475" src="https://blog.robo90.com/wp-content/uploads/2023/11/stm32-i2c-oled-lcd-ekran-kullanimi-ilk-test.jpg" alt="stm32 ile oled kullanımı projesi çalışır hali" class="wp-image-8900" title="STM32 ile I2C Oled Ekran Kullanımı 10" srcset="https://blog.robo90.com/wp-content/uploads/2023/11/stm32-i2c-oled-lcd-ekran-kullanimi-ilk-test.jpg 845w, https://blog.robo90.com/wp-content/uploads/2023/11/stm32-i2c-oled-lcd-ekran-kullanimi-ilk-test-300x169.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/11/stm32-i2c-oled-lcd-ekran-kullanimi-ilk-test-768x432.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/11/stm32-i2c-oled-lcd-ekran-kullanimi-ilk-test-150x84.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/11/stm32-i2c-oled-lcd-ekran-kullanimi-ilk-test-450x253.jpg 450w" sizes="(max-width: 845px) 100vw, 845px" /></figure>



<p class="has-text-align-center"><a href="https://blog.robo90.com/kategori/stm32-projeleri/">Diğer STM32 Projeleri Yazılarımızı İnceleyin</a></p>



<h2 class="wp-block-heading has-black-color has-text-color">Kullanışlı Linkler</h2>



<p>STM32 ile Debug İşlemi: <a href="https://lezzetlirobottarifleri.com/stm32-ile-debug-islemi/" target="_blank" rel="noopener">STM32 ile Debug İşlemi</a><br>Instagram:&nbsp;<a href="https://www.instagram.com/yusuf_cosgun04/" target="_blank" rel="noreferrer noopener nofollow">https://www.instagram.com/yusuf_cosgun04/</a><br>Discord sunucusu:&nbsp;<a href="https://discord.gg/8MVnu59tkx" target="_blank" rel="noreferrer noopener nofollow"></a><a href="https://discord.gg/8MVnu59tkx" target="_blank" rel="noreferrer noopener nofollow">https://discord.gg/8MVnu59tkx</a><br>Discord: reevee0</p>
<p><a rel="nofollow" href="https://blog.robo90.com/stm32-ile-i2c-oled-ekran-kullanimi/">STM32 ile I2C Oled Ekran Kullanımı</a> yazısı ilk önce <a rel="nofollow" href="https://blog.robo90.com">Robo90 - Blog</a> üzerinde ortaya çıktı.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.robo90.com/stm32-ile-i2c-oled-ekran-kullanimi/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
	</channel>
</rss>
