{"id":2115,"date":"2021-06-17T17:47:58","date_gmt":"2021-06-17T14:47:58","guid":{"rendered":"https:\/\/www.mikrobotik.com\/wp2\/?p=2115"},"modified":"2021-06-25T01:13:30","modified_gmt":"2021-06-24T22:13:30","slug":"stm8s-modulu-ile-programlama","status":"publish","type":"post","link":"https:\/\/www.mikrobotik.com\/wp2\/2021\/06\/17\/stm8s-modulu-ile-programlama\/","title":{"rendered":"STM8S Mod\u00fcl\u00fc ile Programlamaya Ba\u015flamak"},"content":{"rendered":"<p style=\"text-align: center;\"><strong>STM8S103F3 mod\u00fcl\u00fc ile ilk program tecr\u00fcbelerim.<\/strong><\/p>\n<p>Her yeni programlama dili ya da ilk kez kulland\u0131\u011f\u0131m kontrolc\u00fcleri programlarken, ilk yapt\u0131\u011f\u0131m program LED \u00e7\u0131k\u0131\u015f\u0131, Buton Giri\u015fi, bir de UART rs232 seri haberle\u015fmesi olur. Bunlar\u0131 ba\u015fard\u0131ktan sonra ilk giri\u015fi yapm\u0131\u015f olurum.<\/p>\n<p>STM8S103F3 mod\u00fcl\u00fc ile de ayn\u0131s\u0131n\u0131 yapt\u0131m. C programlama dili tecr\u00fcbem \u00e7ok az oldu\u011fundan ve bu entegreye de hakim olmad\u0131\u011f\u0131mdan ara\u015ft\u0131rma s\u00fcrem biraz uzun oldu.<\/p>\n<p>Bu entegreden \u00f6nce STM32 ile bir deneme yapt\u0131m O da ilk STM32 program\u0131md\u0131. <strong>Buradan o yaz\u0131ma da ula\u015fabilirsiniz. \u00a0<a href=\"https:\/\/www.mikrobotik.com\/wp2\/2021\/03\/19\/stm32-ile-program-yapmaya-baslamak\/\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/www.mikrobotik.com\/wp2\/2021\/03\/19\/stm32-ile-program-yapmaya-baslamak\/<\/a><\/strong><\/p>\n<p><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/STM8S103F3_basla\/STM8S.png?raw=true\" target=\"_blank\" rel=\"lightbox noopener noreferrer\"><img decoding=\"async\" class=\"aligncenter lazyload\" data-src=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/STM8S103F3_basla\/STM8S.png?raw=true\" alt=\"\" width=\"251\" height=\"317\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 251px; --smush-placeholder-aspect-ratio: 251\/317;\" \/><\/a><\/p>\n<figure style=\"width: 291px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/STM8S103F3_basla\/stm8module_pim.jpg?raw=true\" target=\"_blank\" rel=\"lightbox noopener noreferrer\"><img decoding=\"async\" data-src=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/STM8S103F3_basla\/stm8module_pim.jpg?raw=true\" alt=\"\" width=\"291\" height=\"233\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 291px; --smush-placeholder-aspect-ratio: 291\/233;\" \/><\/a><figcaption class=\"wp-caption-text\"><span style=\"color: #ff0000; font-size: 14px;\">Test indicator ledi portB 5. bit ucuna ba\u011fl\u0131d\u0131r. Led yan\u0131p s\u00f6nmesini g\u00f6rmek isterseniz ek olarak led ba\u011flamaya gerek kalmadan bu ledi test ama\u00e7l\u0131 kullanabilirsiniz. Ayr\u0131ca sa\u011f tarafta power pimleri bulunuyor. bunlar i\u00e7in 4,5-15V denmi\u015f. Fakat size tavsiyem bu gerilimin 9V tan yukar\u0131 kullan\u0131lmamas\u0131. Sebebi ise 3V3 reg\u00fcle entegresi \u00fczerinde 3V3 ten sonras\u0131 kalacak bir de ak\u0131m \u00e7ekmeye ba\u015flad\u0131\u011f\u0131n\u0131zda bu daha da \u0131s\u0131nacak kart\u0131n\u0131z\u0131 bozabilir. M\u00fcmk\u00fcnse 5V ile \u00e7al\u0131\u015f\u0131n ya da 15V luk geriliminiz varsa 7805 gibi bir reg\u00fclat\u00f6r ekleyerek 5V ta d\u00fc\u015f\u00fcr\u00fcp karta verin. K\u00fc\u00e7\u00fck denemelerde bir \u015fey olmayabilir ama uzun s\u00fcreli denemelerinizde kart \u0131s\u0131n\u0131r bu entegreye yans\u0131r. <\/span><\/figcaption><\/figure>\n<p>\u00d6ncelikle IDE k\u0131sm\u0131n\u0131 g\u00f6zden ge\u00e7irelim. STM32 i\u00e7in CUBE IDE stm32 idesini kullanm\u0131\u015ft\u0131m. Bu ide i\u00e7erisinde, entegre \u00fczerindeki bacaklar\u0131 ve isimleri ayarl\u0131yordum, Clock ayarlar\u0131n\u0131 g\u00f6rsel yapabiliyordum. Sonras\u0131nda bana program\u0131m\u0131 yazabilece\u011fim her \u015feyi kendi haz\u0131rl\u0131yordu ben de gerekli yerlere program\u0131m\u0131 yaz\u0131yordum. Olduk\u00e7a kolay bir ba\u015flang\u0131\u00e7 a\u015famas\u0131yd\u0131.<br \/>\nSTM8 de CUBEMX var fakat sadece entegre \u00fczerinde pim ayarlamalar\u0131n\u0131 g\u00f6steriyor, programlamaya dair yard\u0131m etmiyordu.<\/p>\n<p>IAR ide ise program yapabilece\u011fim bir yerdi. CUBEMX k\u0131sm\u0131n\u0131 sadece entegre ve pim g\u00f6r\u00fcnt\u00fcs\u00fcn\u00fc g\u00f6rmek i\u00e7in kulland\u0131m. Fakat kullanman\u0131z gerekmiyor.<br \/>\nBunun yerine IAR IDE yi kulland\u0131m. STM8 i\u00e7in STVD ve cosmic gibi ideler de kullan\u0131l\u0131yor baz\u0131 \u00f6rnekleri o \u015fekilde yap\u0131lm\u0131\u015f olarak g\u00f6rebilirsiniz.<br \/>\nIAR, program\u0131n ba\u015f\u0131nda haz\u0131rl\u0131k k\u0131sm\u0131nda yard\u0131mc\u0131 olsa da ana program\u0131 s\u0131f\u0131rdan yazmam\u0131z gerekiyor. <strong>IAR da Project\/options men\u00fcs\u00fcnde entegremizi se\u00e7iyoruz<\/strong>. Sonras\u0131nda ise men\u00fcn\u00fcn <strong>debug k\u0131sm\u0131nda\u00a0 ST-LINK programlay\u0131c\u0131 ve debug adapt\u00f6r\u00fc se\u00e7iyoruz.<\/strong><br \/>\nProgram\u0131m\u0131z\u0131 ba\u015flang\u0131\u00e7ta kaydediyoruz. ( <span style=\"color: #ff6600;\"><strong>Burada \u00f6nemli bir yer var. Program 1 kez kaydedildi\u011finde o dizin ismi de kaydedildi\u011fi i\u00e7in o dizin ismini de\u011fi\u015ftirmeniz durumunda program hata verebilecektir. ) (Ayn\u0131 arduinoda oldu\u011fu gibi )<\/strong><\/span><\/p>\n<p>Sonras\u0131nda main.c yi yazmaya ba\u015fl\u0131yorsunuz. K\u00fct\u00fcphaneleri dahil etti\u011finizde ve kay\u0131t etti\u011finizde k\u00fct\u00fcphaneleri dosyalar k\u0131sm\u0131nda g\u00f6rebilirsiniz. <strong><span style=\"color: #ff6600;\">K\u00fct\u00fcphaneleri \u00f6nce kendi dizininde ar\u0131yor. Orada bulamazsa IAR k\u00fct\u00fcphanesinde ar\u0131yor bulamazsa hata veriyor. Bundan dolay\u0131 ben kulland\u0131\u011f\u0131m k\u00fct\u00fcphaneleri program\u0131n bulundu\u011fu dizine koydum. \u00c7\u00fcnk\u00fc standart k\u00fct\u00fcphane de\u011fildi. \u0130\u00e7eri\u011finde baz\u0131 yerleri de\u011fi\u015ftirmi\u015ftim.<\/span><\/strong><br \/>\n<strong>Sizler de kullanaca\u011f\u0131n\u0131z k\u00fct\u00fcphaneleri program\u0131n bulundu\u011fu dizine koyarsan\u0131z iyi olur. Payla\u015ft\u0131\u011f\u0131n\u0131zda, payla\u015ft\u0131\u011f\u0131n\u0131z ki\u015fi program\u0131n\u0131z\u0131 kolayl\u0131kla \u00e7al\u0131\u015ft\u0131r\u0131r.<\/strong><\/p>\n<p>Bendeki STM8S103F3 mod\u00fcl\u00fc 3.3V ile \u00e7al\u0131\u015f\u0131yor. STM8 ler 3.3V ile \u00e7al\u0131\u015f\u0131yor. Bundan dolay\u0131 \u00fczerinde 3.3V reg\u00fclat\u00f6r koymu\u015flar. Devrelerinizi m\u00fcmk\u00fcnse 3.3V ile \u00e7al\u0131\u015ft\u0131r\u0131n ya da GPIO ba\u011flant\u0131lar\u0131n\u0131zda LEVEL SHIFTER denilen seviye \u00e7evirici devre kullanman\u0131z gerekebilir. Ben seri haberle\u015fmeyi FT232RL kart\u0131mla yaparken kart\u0131n \u00fczerinde bulunan jumper dedi\u011fimiz k\u0131sa devre telini <strong>3V3 k\u0131sm\u0131na yerle\u015ftirdim<\/strong> haberle\u015fme 3.3V seviyesinde olsun diye. <span style=\"color: #ff6600;\"><strong>Mod\u00fcl \u00fczerindeki USB soket sadece POWER soketidir. USB \u00fczerinden 5V ile besleme yapmaya yarar. Data g\u00f6nderim ya da programlama k\u0131sm\u0131na yaramaz.<\/strong><\/span><\/p>\n<p>Programlamada, \u0130lk \u00f6nce UART seri haberle\u015fmeyi yapay\u0131m nas\u0131l olsa LED ve Buton kolayd\u0131r dedim. <strong>Fakat \u00f6yle olmad\u0131.<\/strong> \u00d6nce \u00f6rnekler \u00fczerinden STM8S.H k\u00fct\u00fcphanesiyle seri haberle\u015fmeyi olu\u015fturdum. Tabii ki bu arada \u00f6\u011frendi\u011fim ilk \u015fey, <span style=\"color: #ff6600;\">\u00f6rnekleri al\u0131p deneyecekseniz, k\u00fct\u00fcphanesiyle birlikte alman\u0131z gereklili\u011fi oldu.<\/span> <strong><span style=\"color: #ff6600;\">Elimde 1 den fazla stm8s.h k\u00fct\u00fcphanesi var ve bunlar birbirinden farkl\u0131yd\u0131.<\/span><\/strong><br \/>\nUART haberle\u015fmesi i\u00e7in buldu\u011fum 1 \u00f6rne\u011fi geli\u015ftirerek kendi istedi\u011fim haberle\u015fme sistemine \u00e7evirdim. Sonras\u0131nda art\u0131k GPIO dedi\u011fimiz giri\u015f \u00e7\u0131k\u0131\u015f pimlerini kontrol etmeye geldim.<br \/>\nFakat burada STM8S.H k\u00fct\u00fcphanesinin \u00f6rneklerdeki ve \u00f6\u011freticilerdeki register isimleriyle uyu\u015fmad\u0131\u011f\u0131n\u0131 g\u00f6rd\u00fcm. Bundan dolay\u0131 program\u0131 yapt\u0131\u011f\u0131m IAR IDE nin k\u00fct\u00fcphanesini kullanmak zorunda kald\u0131m. <strong><span style=\"color: #ff6600;\">Videoda bahsetti\u011fim gibi 2 genel ama\u00e7l\u0131 k\u00fct\u00fcphane kullan\u0131yorsan\u0131z, i\u00e7erisindeki de\u011fi\u015fkenler ya da tan\u0131mlamalar ayn\u0131 isme sahip olabiliyor. Bundan dolay\u0131 2 kez tan\u0131mland\u0131 ikaz\u0131 veriyor.<\/span> <\/strong>Bu ikaz\u0131 dikkate almadan program \u00e7al\u0131\u015f\u0131yor. <strong>\u015eayet sar\u0131 ikaz yerine k\u0131rm\u0131z\u0131 hata iletisi verseydi \u00e7al\u0131\u015fmayacakt\u0131.<\/strong> Neyse ki k\u00fct\u00fcphanelerin s\u0131ras\u0131n\u0131 ayarlay\u0131nca sar\u0131 ikaz verse de \u00e7al\u0131\u015ft\u0131.<\/p>\n<p>Burada size 2 \u00f6\u011fretici sayfa tavsiye edece\u011fim. Bilgiler \u00e7ok g\u00fczel haz\u0131rlanm\u0131\u015f. Bunlar\u0131 bir kez daha burada tekrarlamak istemiyorum. Bundan dolay\u0131 bu sayfalara g\u00f6z gezdirmeniz yerinde olacakt\u0131r. Bu sayfalarda hem GPIO registerleri, hem CLOCK registerleri hem de UART haberle\u015fme registerleri g\u00f6steriliyor. Bunlar\u0131 kullanarak rahatl\u0131kla programlar\u0131n\u0131z\u0131 haz\u0131rlayabilirsiniz.<\/p>\n<p><span style=\"color: #ff0000;\"><strong>STM8S CLOCK ve GPIO ayarlar\u0131<\/strong> :<\/span> <strong><a href=\"https:\/\/www.mcu-turkey.com\/stm8s-vld-ilk-uygulama-clock-ve-gpio-konfigurasyonu\/\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/www.mcu-turkey.com\/stm8s-vld-ilk-uygulama-clock-ve-gpio-konfigurasyonu\/<\/a><\/strong><\/p>\n<p><span style=\"color: #ff0000;\"><strong>STM8S UART haberle\u015fme ayarlar\u0131<\/strong> :<\/span> <strong><a href=\"https:\/\/www.mcu-turkey.com\/stm8s-uart-modulu-kullanimi\/\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/www.mcu-turkey.com\/stm8s-uart-modulu-kullanimi\/<\/a><\/strong><\/p>\n<p>&nbsp;<\/p>\n<figure style=\"width: 500px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/STM8S103F3_basla\/%C5%9Fema.JPG?raw=true\" target=\"_blank\" rel=\"lightbox noopener noreferrer\"><img decoding=\"async\" data-src=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/STM8S103F3_basla\/%C5%9Fema.JPG?raw=true\" alt=\"\" width=\"500\" height=\"333\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 500px; --smush-placeholder-aspect-ratio: 500\/333;\" \/><\/a><figcaption class=\"wp-caption-text\"><span style=\"color: #ff0000; font-size: 14px;\">Benim ba\u011flant\u0131lar\u0131m bu \u015fekilde. GND u\u00e7lar\u0131 birbiri ile ayn\u0131 diye baz\u0131lar\u0131n\u0131 st-link adapt\u00f6r \u00fczerinden ald\u0131m. Dikkat ediniz. <\/span><\/figcaption><\/figure>\n<p>Program\u0131n \u00e7al\u0131\u015fmas\u0131 ise \u015f\u00f6yledir. STM8 ana program, Arduino program\u0131 gibidir. Ba\u015flang\u0131\u00e7ta k\u00fct\u00fcphane ve de\u011fi\u015fkenler sonras\u0131nda ana program sat\u0131rlar\u0131n\u0131n yer ald\u0131\u011f\u0131 b\u00f6l\u00fcm ve bunun i\u00e7erisinde sonsuz d\u00f6ng\u00fc yer almaktad\u0131r. Sonsuz d\u00f6ng\u00fcde \u00e7al\u0131\u015f\u0131rken Butona bas\u0131lmadan \u00f6nce port b5 pimine ba\u011flad\u0131\u011f\u0131m LED yan\u0131p s\u00f6ner. Bu LED yan\u0131p s\u00f6nerken butona basarsam art\u0131k program UART haberle\u015fme k\u0131sm\u0131na gidece\u011finden LED yan\u0131p s\u00f6nme kesilir. Sonras\u0131nda ise kullan\u0131c\u0131ya seri port \u00fczerinden <strong>&#8220;veri gir&#8221;<\/strong> der. Ve kullan\u0131c\u0131dan gelen veriyi beklemeye ba\u015flar. Veri geldi\u011finde <strong>uart interrupt<\/strong> \u00e7al\u0131\u015farak gelen bilgileri al\u0131r ve bilgi geldi bayra\u011f\u0131n\u0131 (<strong>recflag<\/strong>) 1 yapar. Sonras\u0131nda bekleme durumundan \u00e7\u0131k\u0131p gelen bilgiyi yazd\u0131r\u0131r. Bilgi yaz\u0131ld\u0131ktan sonra ise gelen bilginin bulundu\u011fu de\u011fi\u015fkenler s\u0131f\u0131rlan\u0131r. Ayn\u0131 zamanda <strong>recflag<\/strong> bayra\u011f\u0131 da i\u015fi bitti\u011fi i\u00e7in s\u0131f\u0131rlan\u0131r. Bu \u015fekilde \u00e7al\u0131\u015fma vard\u0131r.<br \/>\n<strong>Burada dikkat edece\u011fimiz baz\u0131 hususlar var.<\/strong><br \/>\n<strong>1-<\/strong> Bilgi seri port \u00fczerinden g\u00f6nderilirken ve gelirken 1 byte l\u0131k bilgi olarak gelir. Siz bir string dedi\u011fimiz dizi bile yollasan\u0131z bilgiler de\u011fi\u015fkene tek tek aktar\u0131l\u0131r. Bundan dolay\u0131 bilgiyi alan de\u011fi\u015fken, ARRAY dedi\u011fimiz dizi \u015feklinde tan\u0131mlan\u0131r ve her bir par\u00e7as\u0131na 1 karakter aktar\u0131l\u0131r.<br \/>\nMesela programda <strong>uint8_t rec_data[7];<\/strong> 8 karakterlik bir dizi tan\u0131mlan\u0131r. (neden 7 de\u011fil de 8 karakter.) \u00c7\u00fcnk\u00fc <strong>array<\/strong> 0 dan ba\u015flar. Yani 0,1,2,3,4,5,6,7 olacak \u015fekilde birer karakter al\u0131rlar.<\/p>\n<p><strong>2-<\/strong> Her seri port \u00fczerinden g\u00f6nderilen karakterden sonra <strong>bir gecikme verilmeli<\/strong> Bu gecikme k\u00fct\u00fcphane taraf\u0131ndan verilmedi\u011fi i\u00e7in biz vermek zorunday\u0131z. Ben program da <strong>delay alt program\u0131<\/strong> ayarlad\u0131m. Baz\u0131 yerlerde buraya gecikme i\u00e7in g\u00f6nderdim. Baz\u0131 yerlerde ise <strong>for next<\/strong> ile bulundu\u011fu yerde gecikme sa\u011flad\u0131m. Bunu yaparken ve <strong>delay<\/strong> komutunun yan\u0131na say\u0131 yazarken hi\u00e7bir zaman <strong>ms<\/strong> veya <strong>us<\/strong> olarak d\u00fc\u015f\u00fcnmedim Bunlar sadece birer say\u0131d\u0131r ve <strong>0-delay say\u0131s\u0131<\/strong>,\u00a0 aras\u0131nda bir sayma i\u015flemiyle gecikme verilecek \u015fekilde d\u00fc\u015f\u00fcn\u00fcld\u00fc. <span style=\"color: #ff6600;\">500 g\u00f6rd\u00fc\u011f\u00fcn\u00fczde o 500 bir saya\u00e7t\u0131r.<\/span> <span style=\"color: #ff0000;\">Milisaniye ya da mikro saniye de\u011fildir.<\/span> Tecr\u00fcbe ile s\u00f6yleyebilirim ki bu say\u0131 1000 olarak ba\u015far\u0131l\u0131 \u015fekilde \u00e7al\u0131\u015ft\u0131r\u0131yor. Siz programlar\u0131n\u0131zda 1000 ile ba\u015flay\u0131n ve a\u015fa\u011f\u0131ya do\u011fru deneme yap\u0131n. En iyi yerde b\u0131rak\u0131n derim ya da timer kullan\u0131rsan\u0131z, delay k\u0131sm\u0131n\u0131 buna g\u00f6re ayarlarsan\u0131z \u00e7ok daha iyi olacakt\u0131r.<\/p>\n<p><strong>3-<\/strong> Gelen veriyi ben array karakter numaras\u0131yla kar\u015f\u0131la\u015ft\u0131rd\u0131m. \u015eayet kolayl\u0131k olsun derseniz C programlaman\u0131n <strong>string.h<\/strong> k\u00fct\u00fcphanesini kullanarak array yerine string olarak ayarlay\u0131p \u00e7al\u0131\u015fabilirsiniz kar\u015f\u0131la\u015ft\u0131rmay\u0131 da <strong>string<\/strong> olarak yapabilirsiniz hatta bir dizi i\u00e7inde ba\u015fka bir diziyi de string \u015feklinde arayabilirsiniz. Faydalar\u0131 olmakla birlikte ben u\u011fra\u015fmak istemedi\u011fim i\u00e7in bildi\u011fim yolla karakter olarak kar\u015f\u0131la\u015ft\u0131rd\u0131m.<\/p>\n<p><strong>4-<\/strong> <span style=\"color: #ff6600;\">Bir yerden bir \u00f6rnek kopyalad\u0131ysan\u0131z ona ait k\u00fct\u00fcphaneyi de almay\u0131 ihmal etmeyin<\/span> ayn\u0131 isim alt\u0131nda birden fazla benzer k\u00fct\u00fcphane oldu\u011fundan \u00f6rnek \u00e7al\u0131\u015fmayabilir.<\/p>\n<p>GPIO b\u00f6l\u00fcm\u00fcnde Breadboard \u00fczerinde sadece 1 adet buton, 1 adet led ve 1 adet de 330R, led i\u00e7in diren\u00e7 vard\u0131r. Bu Led k\u0131sm\u0131 a\u015fa\u011f\u0131daki \u015fekilde ba\u011flanm\u0131\u015ft\u0131r. Butonda ise diren\u00e7 kullan\u0131lmam\u0131\u015ft\u0131r. \u00c7\u00fcnk\u00fc STM8S entegresinin <strong>kendi i\u00e7indeki PULL UP diren\u00e7 aktif edilmi\u015ftir.<\/strong><\/p>\n<figure style=\"width: 133px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/STM8S103F3_basla\/led%20bagla%C4%B1.JPG?raw=true\" target=\"_blank\" rel=\"lightbox noopener noreferrer\"><img decoding=\"async\" data-src=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/STM8S103F3_basla\/led%20bagla%C4%B1.JPG?raw=true\" alt=\"\" width=\"133\" height=\"217\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 133px; --smush-placeholder-aspect-ratio: 133\/217;\" \/><\/a><figcaption class=\"wp-caption-text\"><span style=\"color: #ff0000; font-size: 14px;\">3V3 ile LED kontrol edilir. VDD 3V3 olarak kabul edin. diren\u00e7 ise 330R olabilir. ben 330R kulland\u0131m. <\/span><\/figcaption><\/figure>\n<figure style=\"width: 185px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/STM8S103F3_basla\/butonbagla.jpg?raw=true\" target=\"_blank\" rel=\"lightbox noopener noreferrer\"><img decoding=\"async\" data-src=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/STM8S103F3_basla\/butonbagla.jpg?raw=true\" alt=\"\" width=\"185\" height=\"135\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 185px; --smush-placeholder-aspect-ratio: 185\/135;\" \/><\/a><figcaption class=\"wp-caption-text\"><span style=\"color: #ff0000; font-size: 14px;\">Burada R1 Pull Up direnci kullan\u0131lm\u0131\u015f. Ben devremde direnci kullanmad\u0131m. \u00c7\u00fcnk\u00fc GPIO ayarlar\u0131nda kendi i\u00e7indeki PULL UP direncini aktif ettim. Bende devrede sadece bir ucu gnd ye bir ucu INPUT pimine ba\u011fl\u0131 olan BUTON vard\u0131r. <\/span><\/figcaption><\/figure>\n<p>A\u015fa\u011f\u0131da linkini g\u00f6rd\u00fc\u011f\u00fcn\u00fcz program\u0131 s\u0131k\u0131\u015ft\u0131r\u0131lm\u0131\u015f dosyadan dizin \u015feklinde \u00e7\u0131kar\u0131n ve dizin ismini de\u011fi\u015ftirmeden kullan\u0131n. \u00c7\u00fcnk\u00fc program ilk yap\u0131ld\u0131\u011f\u0131nda dizin ismi belirtildi\u011fi i\u00e7in bir yerlere kay\u0131t ediyor sonras\u0131nda ise dizin ismi de\u011fi\u015fti\u011finde \u00e7al\u0131\u015fmayabiliyor.<\/p>\n<p><strong><span style=\"color: #ff0000;\">T\u00fcm dosyalar bu linktedir.<\/span> <a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/tree\/main\/STM8S103F3_basla\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/tree\/main\/STM8S103F3_basla<\/a><\/strong><\/p>\n<p>IAR program\u0131n\u0131n, 30 g\u00fcnl\u00fck kullan\u0131m ya da <span style=\"color: #ff0000;\"><strong>4KB s\u0131n\u0131r\u0131 ile devaml\u0131 kullanabilece\u011finiz bir s\u00fcr\u00fcm\u00fc free olarak indirebilirsiniz.<\/strong> <\/span>IAR program\u0131n\u0131 buradan download edebilirsiniz. 4KB ba\u015flang\u0131\u00e7ta yeterli profesyonel program haz\u0131rlarken sat\u0131n alabilirsiniz. Tabii ki isterseniz STVD ya da cosmic ideleri de kullanabilirsiniz.<br \/>\n<strong><a href=\"https:\/\/www.iar.com\/products\/architectures\/st\/iar-embedded-workbench-for-stm8\/\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/www.iar.com\/products\/architectures\/st\/iar-embedded-workbench-for-stm8\/<\/a><\/strong><\/p>\n<p><span style=\"color: #ff0000;\"><strong>IAR kullan\u0131m k\u0131lavuzu ise bu linktedir.<\/strong><\/span> <strong><a href=\"https:\/\/wwwfiles.iar.com\/stm8\/guides\/EWSTM8_IDEGuide.pdf\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/wwwfiles.iar.com\/stm8\/guides\/EWSTM8_IDEGuide.pdf<\/a><\/strong><\/p>\n<p>Gelelim <strong>ST-LINK V2 adapt\u00f6re<\/strong>. Videoda da anlatt\u0131\u011f\u0131m gibi hem stm8 hem de stm32 yi programlayabilece\u011finiz bir adapt\u00f6rd\u00fcr. Ayn\u0131 zamanda DEBUG (Hata ay\u0131klama yapman\u0131za da yarar) Debug i\u015flemi yaparken program\u0131 sat\u0131r sat\u0131r \u00e7al\u0131\u015ft\u0131rabilirsiniz. De\u011fi\u015fken de\u011ferlerini de anl\u0131k olarak kontrol edebilirsiniz. Bu programc\u0131lara \u00e7ok yard\u0131mc\u0131 olmaktad\u0131r.<\/p>\n<p>ST-LINK v2 adapt\u00f6r benim elimdekinin resmi a\u015fa\u011f\u0131dad\u0131r. Bu adapt\u00f6rde SWIM yazan yer stm8 i\u00e7in ayr\u0131lm\u0131\u015ft\u0131r. A\u015fa\u011f\u0131daki resimde g\u00f6rece\u011finiz gibi sol taraftaki k\u0131s\u0131m stm8 i\u00e7indir. Bunu ay\u0131rt etmek i\u00e7in soket plasti\u011findeki kesik olan k\u0131sm\u0131 dikkate almal\u0131s\u0131n\u0131z. Adapt\u00f6r versiyonundan dolay\u0131 farkl\u0131 dizilim olabilir. Bundan dolay\u0131, mod\u00fcl \u00fczerindeki ile adapt\u00f6r \u00fczerindeki isimlerin uyu\u015fmas\u0131na bakmal\u0131s\u0131n\u0131z. Ayr\u0131ca STM8 i\u00e7in adapt\u00f6r \u00fczerindeki <strong><span style=\"color: #ff6600;\">3V3 ucunu kullanmal\u0131s\u0131n\u0131z. 5V k\u0131sm\u0131 kullanmay\u0131n.<\/span><\/strong><\/p>\n<p>&nbsp;<\/p>\n<figure style=\"width: 500px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/STM8S103F3_basla\/stlink_soket1.png?raw=true\" target=\"_blank\" rel=\"lightbox noopener noreferrer\"><img decoding=\"async\" data-src=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/STM8S103F3_basla\/stlink_soket1.png?raw=true\" alt=\"\" width=\"500\" height=\"333\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 500px; --smush-placeholder-aspect-ratio: 500\/333;\" \/><\/a><figcaption class=\"wp-caption-text\"><strong><span style=\"color: #ff0000; font-size: 14px;\">Baz\u0131 adapt\u00f6rler g\u00f6r\u00fcn\u00fc\u015fte ayn\u0131 bile olsa pim s\u0131ralamalar\u0131 de\u011fi\u015fik olabilir. Bundan dolay\u0131 kendi adapt\u00f6r\u00fcn\u00fcze uygun bir \u015fekilde ba\u011flant\u0131n\u0131z\u0131 yap\u0131n\u0131z.<\/span><\/strong><\/figcaption><\/figure>\n<p>&nbsp;<\/p>\n<p><span style=\"color: #ff0000;\"><strong>STM8 Ger\u00e7ek Devre:<\/strong><\/span> <iframe title=\"YouTube video player\" data-src=\"https:\/\/www.youtube.com\/embed\/PE9zXY0Edik\" width=\"900\" height=\"506\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" data-load-mode=\"1\"><\/iframe><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>STM8S103F3 mod\u00fcl\u00fc ile ilk program tecr\u00fcbelerim. Her yeni programlama dili ya da ilk kez kulland\u0131\u011f\u0131m kontrolc\u00fcleri programlarken, ilk yapt\u0131\u011f\u0131m program LED \u00e7\u0131k\u0131\u015f\u0131, Buton Giri\u015fi, bir de UART rs232 seri haberle\u015fmesi&#8230; <\/p>\n","protected":false},"author":1,"featured_media":2124,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[51],"tags":[],"class_list":["post-2115","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-stm8s103f3"],"_links":{"self":[{"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/posts\/2115","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/comments?post=2115"}],"version-history":[{"count":8,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/posts\/2115\/revisions"}],"predecessor-version":[{"id":2123,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/posts\/2115\/revisions\/2123"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/media\/2124"}],"wp:attachment":[{"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/media?parent=2115"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/categories?post=2115"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/tags?post=2115"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}