{"id":121,"date":"2017-09-15T15:06:32","date_gmt":"2017-09-15T13:06:32","guid":{"rendered":"http:\/\/aiiot-technology.eu\/web\/?p=121"},"modified":"2018-02-09T17:08:31","modified_gmt":"2018-02-09T16:08:31","slug":"stm32-praca-w-srodowisko-arduinoide","status":"publish","type":"post","link":"http:\/\/aiiot-technology.eu\/web\/2017\/09\/15\/stm32-praca-w-srodowisko-arduinoide\/","title":{"rendered":"STM32 Praca w \u015brodowisko Arduino_IDE &#8211; Miganie diod\u0105 Blink"},"content":{"rendered":"<p><strong>W tej cz\u0119\u015bci poradnika poka\u017ce jak uruchamia\u0107 programy w \u015brodowisko Arduino IDE dla p\u0142ytek STM32<\/strong><\/p>\n<p>Proces zostanie przedstawiony z wykorzystanie bootloader&#8217;a\u00a0STM32duino, nie jest on niezb\u0119dny ale znacz\u0105co u\u0142atwi programowanie tych p\u0142ytek przynajmniej w pocz\u0105tkowym etapie.<\/p>\n<p>Jak wgra\u0107 bootloader \u00a0STM32duino mo\u017cesz dowiedzie\u0107 si\u0119 z mojego innego poradnika.<\/p>\n<p>&nbsp;<\/p>\n<p><strong>Je\u015bli posiadasz ju\u017c p\u0142ytk\u0119 z wgranym bootloader \u00a0STM32duino, lub porostu zmieni\u0142e\u015b\/formatowa\u0142e\u015b komputer nie zapomnij o wgraniu podstawowych sk\u0142adnik\u00f3w.<\/strong><\/p>\n<ul>\n<li><strong>Sterowniki do usb dla\u00a0bootloader&#8217;a \u00a0STM32duino:<\/strong><\/li>\n<\/ul>\n<blockquote><p><a href=\"https:\/\/drive.google.com\/file\/d\/0BwY2LTXAYDBLRkpfbExVTlVGaVE\" target=\"_blank\" rel=\"noopener\">https:\/\/drive.google.com\/drive\/folders\/0BwY2LTXAYDBLZnVqRXE4N0NPSjA<\/a><\/p><\/blockquote>\n<ul>\n<li><strong>Definicje p\u0142ytek:<\/strong><br \/>\nPotrzebne b\u0119dzie Arduino IDE w wersji co najmniej 1.6.9.Wchodzimy w <strong>Plik&gt;Preferencje<\/strong> i dopisujemy dodatkowy URL do definicji p\u0142ytek:<strong>http:\/\/dan.drown.org\/arduino\/package_STM32duino_index.json<\/strong><\/p>\n<p>Nast\u0119pne w mened\u017cerze p\u0142ytek (<strong>Narz\u0119dzia&gt;P\u0142ytka&gt;Mened\u017cera p\u0142ytek&#8230;<\/strong>) wyszukujemy i dodajemy p\u0142ytki\u00a0<strong>STM32F1*<\/strong><\/li>\n<li><strong>Pami\u0119taj\u00a0\u00a0STM32 dzia\u0142a na logice 3.3V podaj\u0105c\u00a0wy\u017csze napi\u0119cie uszkodzisz p\u0142ytk\u0119.<\/strong><\/li>\n<\/ul>\n<h3><strong>Pierwsze uruchomienie przyk\u0142adowego programu:<\/strong><\/h3>\n<p>przechodzimy do\u00a0<strong>Narz\u0119dzia<\/strong>&gt;<strong>P\u0142ytka<\/strong> i wybieramy<strong>\u00a0Generic\u00a0STM32F103C series<\/strong><\/p>\n<p>nast\u0119pnie\u00a0przechodzimy do\u00a0<strong>Narz\u0119dzia<\/strong>&gt;<strong>Upload method:<\/strong>\u00a0zmienamy na <strong>STM32duino-bootloader<\/strong><\/p>\n<p>kolejno\u00a0do\u00a0<strong>Narz\u0119dzia<\/strong>&gt;<strong>Port<\/strong> i wybieramy odpowiedni port w nawiasie obok portu b\u0119dzie napisane <strong>Maple Mini<\/strong><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-124\" src=\"http:\/\/aiiot-technology.eu\/web\/wp-content\/uploads\/2017\/09\/STM32.png\" alt=\"\" width=\"669\" height=\"493\" srcset=\"http:\/\/aiiot-technology.eu\/web\/wp-content\/uploads\/2017\/09\/STM32.png 669w, http:\/\/aiiot-technology.eu\/web\/wp-content\/uploads\/2017\/09\/STM32-300x221.png 300w\" sizes=\"(max-width: 669px) 100vw, 669px\" \/><\/p>\n<p>Teraz za\u0142adujemy przyk\u0142adowy program b\u0119dzie to <strong>Blink<\/strong><\/p>\n<p>przechodzimy do\u00a0<strong>Plik<\/strong>&gt;<strong>Przyk\u0142ady&gt;(wbudowane przyk\u0142ady) 01.Basics&gt;Blink<\/strong><\/p>\n<p>Teraz mo\u017cemy klikn\u0105\u0107<strong> Szkic<\/strong>&gt;<strong>Wgraj<\/strong><\/p>\n<h3><strong>OK, CZAS NA ZMIANY W PROGRAMIE <\/strong><\/h3>\n<p>mo\u017cemy zmieni\u0107 czas aby sprawdzi\u0107 czy proces wgrywania przebiega pomy\u015blnie<\/p>\n<p><strong>LED_BUILTIN<\/strong> jest zmienn\u0105 okre\u015blon\u0105 dla ka\u017cdej p\u0142ytki indywidualnie dla STM32 jest to pin PC13, zmienna zosta\u0142a ju\u017c zadeklarowana dodatkowo jest to zmienna statyczna, wi\u0119c nie mo\u017cemy jej zmieni\u0107, aby zmieni\u0107 pin musimy<\/p>\n<p><strong>metoda 1<\/strong> zdefiniowa\u0107 now\u0105 zmienn\u0105 oraz zamieni\u0107 j\u0105 w miejscu zmiennej LED_BUILTIN np. powo\u0142uj\u0105c:<\/p>\n<blockquote><p><strong>static const byte LED = PC13;<\/strong> \/\/ jest to zmienna statyczna typu byte(zakres od od 0 do 255) ustawiona na pin PC13<\/p><\/blockquote>\n<p>Aby przyspieszy\u0107 proces podmiany mo\u017cemy skorzysta\u0107 z<\/p>\n<p><strong>Edytuj<\/strong>&gt;<strong>Szukaj&#8230; <\/strong>\u00a0i wyko\u017cysta\u0107 linie<strong> Zast\u0105p:<\/strong> wpisuj\u0105c<strong> LED<\/strong> i klikaj\u0105\u0107 <strong>Znajd\u017a i zast\u0105p<\/strong><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-128\" src=\"http:\/\/aiiot-technology.eu\/web\/wp-content\/uploads\/2017\/09\/STM1.png\" alt=\"\" width=\"488\" height=\"202\" srcset=\"http:\/\/aiiot-technology.eu\/web\/wp-content\/uploads\/2017\/09\/STM1.png 488w, http:\/\/aiiot-technology.eu\/web\/wp-content\/uploads\/2017\/09\/STM1-300x124.png 300w\" sizes=\"(max-width: 488px) 100vw, 488px\" \/><\/p>\n<p>Program powinien wygl\u0105da\u0107 tak:<\/p>\n<blockquote><p>\/*<br \/>\nBlink<\/p>\n<p>Turns an LED on for one second, then off for one second, repeatedly.<\/p>\n<p>Most Arduinos have an on-board LED you can control. On the UNO, MEGA and ZERO<br \/>\nit is attached to digital pin 13, on MKR1000 on pin 6. LED is set to<br \/>\nthe correct LED pin independent of which board is used.<br \/>\nIf you want to know what pin the on-board LED is connected to on your Arduino<br \/>\nmodel, check the Technical Specs of your board at:<br \/>\nhttps:\/\/www.arduino.cc\/en\/Main\/Products<\/p>\n<p>modified 8 May 2014<br \/>\nby Scott Fitzgerald<br \/>\nmodified 2 Sep 2016<br \/>\nby Arturo Guadalupi<br \/>\nmodified 8 Sep 2016<br \/>\nby Colby Newman<br \/>\nmodified 15 Sep 2017<br \/>\nby AIIoT<\/p>\n<p>This example code is in the public domain.<\/p>\n<p>http:\/\/www.arduino.cc\/en\/Tutorial\/Blink<br \/>\n*\/<\/p>\n<p>static const byte LED = PC13;<\/p>\n<p>\/\/ the setup function runs once when you press reset or power the board<br \/>\nvoid setup() {<br \/>\n\/\/ initialize digital pin LED as an output.<br \/>\npinMode(LED, OUTPUT);<br \/>\n}<\/p>\n<p>\/\/ the loop function runs over and over again forever<br \/>\nvoid loop() {<br \/>\ndigitalWrite(LED, HIGH); \/\/ turn the LED on (HIGH is the voltage level)<br \/>\ndelay(1000); \/\/ wait for a second<br \/>\ndigitalWrite(LED, LOW); \/\/ turn the LED off by making the voltage LOW<br \/>\ndelay(1000); \/\/ wait for a second<br \/>\n}<\/p><\/blockquote>\n<p><strong>metoda 2<\/strong> jednak szybszym sposobem jest zdefiniowanie polecenia dla preprocesora kt\u00f3ry za nas zamieni LED_BUILTIN na \u017c\u0105dany przez nas pin<\/p>\n<blockquote><p><strong>#define LED_BUILTIN PC13<\/strong><\/p><\/blockquote>\n<p>&nbsp;<\/p>\n<p>Tak powinien wygl\u0105da\u0107 program:<\/p>\n<blockquote><p>\/*<br \/>\nBlink<\/p>\n<p>Turns an LED on for one second, then off for one second, repeatedly.<\/p>\n<p>Most Arduinos have an on-board LED you can control. On the UNO, MEGA and ZERO<br \/>\nit is attached to digital pin 13, on MKR1000 on pin 6. LED_BUILTIN is set to<br \/>\nthe correct LED pin independent of which board is used.<br \/>\nIf you want to know what pin the on-board LED is connected to on your Arduino<br \/>\nmodel, check the Technical Specs of your board at:<br \/>\nhttps:\/\/www.arduino.cc\/en\/Main\/Products<\/p>\n<p>modified 8 May 2014<br \/>\nby Scott Fitzgerald<br \/>\nmodified 2 Sep 2016<br \/>\nby Arturo Guadalupi<br \/>\nmodified 8 Sep 2016<br \/>\nby Colby Newman<br \/>\nmodified 15 Sep 2017<br \/>\nby AIIoT<\/p>\n<p>This example code is in the public domain.<\/p>\n<p>http:\/\/www.arduino.cc\/en\/Tutorial\/Blink<br \/>\n*\/<\/p>\n<p>#define LED_BUILTIN PC13<\/p>\n<p>\/\/ the setup function runs once when you press reset or power the board<br \/>\nvoid setup() {<br \/>\n\/\/ initialize digital pin LED_BUILTIN as an output.<br \/>\npinMode(LED_BUILTIN, OUTPUT);<br \/>\n}<\/p>\n<p>\/\/ the loop function runs over and over again forever<br \/>\nvoid loop() {<br \/>\ndigitalWrite(LED_BUILTIN, HIGH); \/\/ turn the LED on (HIGH is the voltage level)<br \/>\ndelay(1000); \/\/ wait for a second<br \/>\ndigitalWrite(LED_BUILTIN, LOW); \/\/ turn the LED off by making the voltage LOW<br \/>\ndelay(1000); \/\/ wait for a second<br \/>\n}<\/p><\/blockquote>\n<p>Teraz korzystaj\u0105c z schematu wyprowadze\u0144 p\u0142ytki mo\u017cemy ustawi\u0107 zmienn\u0105 na dowolny pin<\/p>\n<p><a href=\"http:\/\/wiki.stm32duino.com\/images\/a\/ae\/Bluepillpinout.gif\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-127\" src=\"http:\/\/aiiot-technology.eu\/web\/wp-content\/uploads\/2017\/09\/Bluepillpinout-1024x718.gif\" alt=\"\" width=\"730\" height=\"512\" srcset=\"http:\/\/aiiot-technology.eu\/web\/wp-content\/uploads\/2017\/09\/Bluepillpinout-1024x718.gif 1024w, http:\/\/aiiot-technology.eu\/web\/wp-content\/uploads\/2017\/09\/Bluepillpinout-300x210.gif 300w, http:\/\/aiiot-technology.eu\/web\/wp-content\/uploads\/2017\/09\/Bluepillpinout-768x539.gif 768w\" sizes=\"(max-width: 730px) 100vw, 730px\" \/><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>W tej cz\u0119\u015bci poradnika poka\u017ce jak uruchamia\u0107 programy w \u015brodowisko Arduino IDE dla p\u0142ytek STM32 Proces zostanie przedstawiony z wykorzystanie bootloader&#8217;a\u00a0STM32duino, nie jest on niezb\u0119dny ale znacz\u0105co u\u0142atwi programowanie tych p\u0142ytek przynajmniej w pocz\u0105tkowym etapie. Jak wgra\u0107 bootloader \u00a0STM32duino mo\u017cesz dowiedzie\u0107 si\u0119 z mojego innego poradnika. &nbsp; Je\u015bli posiadasz ju\u017c p\u0142ytk\u0119 z wgranym bootloader \u00a0STM32duino, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":140,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2,4],"tags":[],"class_list":["post-121","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ardiono-ide","category-stm32"],"_links":{"self":[{"href":"http:\/\/aiiot-technology.eu\/web\/wp-json\/wp\/v2\/posts\/121"}],"collection":[{"href":"http:\/\/aiiot-technology.eu\/web\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/aiiot-technology.eu\/web\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/aiiot-technology.eu\/web\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/aiiot-technology.eu\/web\/wp-json\/wp\/v2\/comments?post=121"}],"version-history":[{"count":18,"href":"http:\/\/aiiot-technology.eu\/web\/wp-json\/wp\/v2\/posts\/121\/revisions"}],"predecessor-version":[{"id":221,"href":"http:\/\/aiiot-technology.eu\/web\/wp-json\/wp\/v2\/posts\/121\/revisions\/221"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/aiiot-technology.eu\/web\/wp-json\/wp\/v2\/media\/140"}],"wp:attachment":[{"href":"http:\/\/aiiot-technology.eu\/web\/wp-json\/wp\/v2\/media?parent=121"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/aiiot-technology.eu\/web\/wp-json\/wp\/v2\/categories?post=121"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/aiiot-technology.eu\/web\/wp-json\/wp\/v2\/tags?post=121"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}