- Pagpili at Pagda-download ng Mga Kinakailangan na Platform ng Pag-unlad para sa mga Nucleo64 Board
- Pag-setup ng Circuit Diagram at Hardware
- Pagsisimula sa STM32CubeMX para sa STM32 Nucleo64 Development Boards
- Programming STM32 Nucleo64 Development Board gamit ang TrueSTUDIO
- Programa ng STM32 Nucleo64 upang Makontrol ang LED gamit ang Push Button
- Pag-debug at Pag-upload ng Code sa STM32 Necleo64 Development Board gamit ang TrueSTUDIO
Marami sa atin ay dapat maging pamilyar sa mga tanyag na microcontrollers at development board tulad ng Arduino, Raspberry Pi, ESP8266, NoduMCU, 8051, atbp. Sa katunayan, para sa karamihan ng mga tao, ang Arduino ay ang kanilang unang development board, ngunit habang naghuhukay kami ng malalim at nagsisimula mga propesyonal na disenyo, malalaman natin sa lalong madaling panahon ang mga limitasyon ng Arduino (tulad ng gastos, kagalingan sa maraming bagay, katatagan, bilis, atbp.) at maunawaan ang pangangailangan na lumipat sa isang mas katutubong platform ng Microcontroller tulad ng PIC, STM, Renesas, atbp.
Natakpan na namin ang isang pagkakasunud-sunod ng mga tutorial ng PIC Microcontroller, na gumagabay sa mga nagsisimula para sa pag-aaral ng mga microcontroller ng PIC. Katulad nito, simula sa artikulong ito, magpaplano din kami ng isang pagkakasunud-sunod ng mga STM32 Nucleo64 Development Board Tutorial na makakatulong sa ganap na mga nagsisimula na malaman at bumuo gamit ang STM32 Platform. Ang mga Nucleo64 Development Board ay mababa ang gastos at madaling gamitin na platform para sa mga propesyonal na developer pati na rin para sa hobbyist. Kung ganap kang bago sa STM32 Nucleo64 Development Boards, suriin ang video ng Nucleo64 Review na ito upang maunawaan ang mga pangunahing kaalaman sa board na ito bago ka magpatuloy. Ipinapakita rin ng video kung paano i-program ang STM32 gamit ang ARM Mbed Platform ngunit para sa tutorial na ito, gagamit kami ng isa pang libre upang magamit ang platform mula sa ST Microelectronics na tinatawag na TrueSTUDIO.
Tandaan: Maraming mga bersyon ng STM32 Nucleo64 Development Boards, ang partikular na board na ginamit sa tutorial na ito ay NUCLEO-F030R8. Pinili namin ang board na ito pangunahin dahil sa mababang gastos. Kahit na, kung mayroon kang ibang bersyon, ang karamihan sa mga bagay na tinalakay sa tutorial ay sapat para sa iyo upang makapagsimula.
Pagpili at Pagda-download ng Mga Kinakailangan na Platform ng Pag-unlad para sa mga Nucleo64 Board
Ang pagsisimula sa anumang microcontroller ay mangangailangan ng isang programming IDE tulad ng mayroon kaming Arduino IDE para sa Arduino boards, Atmel Studio para sa AVR microcontroller, MP Lab para sa PIC, atbp. Kaya narito din kailangan namin ng isang IDE para sa aming mga STM32 Nucleo64 Boards upang maisagawa ang pag-program at pag-debug. Ang pamilya STM32 ay binubuo ng 32-bit Microcontrollers na sumusuporta sa mga sumusunod na IDE at toolchain:
- IAR Embedded Workbench® para sa ARM® (EWARM).
- MDK-ARM Keil
- TrueSTUDIO
- System Workbench para sa STM32
Dito para sa aming mga tutorial, gagamitin ang TrueSTUDIO para sa pagsusulat, pag-compile, at pag-debug ng code dahil libre itong mag-download at magamit kahit para sa mga komersyal na proyekto nang walang kinakailangang lisensya. Pagkatapos ang STM32CubeMX ay gagamitin upang makabuo ng mga peripheral driver para sa mga board ng STM32 upang gawing madali ang pag-program. Upang mai-upload ang aming programa (hex file) sa aming development board, karaniwang ginagamit ng mga tao ang tool na STM32 ST-LINK Utility, ngunit sa halip, gagamitin namin ang TrueSTUDIO mismo upang gawin ito. Ang TrueSTUDIO ay mayroong isang debug mode na nagpapahintulot sa mga programmer na i-upload ang hex file nang direkta sa board ng STM32. Ang parehong TrueSTUIO at STM32CubeMX ay madaling i-download, sundin lamang ang link sa ibaba, pag-sign up at i-download ang setup. Pagkatapos i-install ang mga ito sa iyong Laptop.
- I-download ang STM32Cube MX
- I-download ang TrueSTUDIO
Pag-setup ng Circuit Diagram at Hardware
Bago kami magpatuloy sa seksyon ng software at pag-coding, ihanda na natin ang aming board para sa proyektong ito. Tulad ng nabanggit nang mas maaga sa artikulong ito, makokontrol namin ang isang LED gamit ang isang pindutan ng push. Ngayon, kung nakita mo ang naka-link na video sa itaas, dapat mong malaman na ang iyong STM32 Development Board ay may dalawang hanay ng mga pin ng konektor sa magkabilang panig na tinatawag na mga pin na ST Morpho. Nakakonekta kami ng isang push-button at isang LED sa mga pin na ito tulad ng ipinakita sa circuit diagram sa ibaba.
Madali ang mga koneksyon sa circuit para sa proyektong ito, kailangan naming ikonekta ang isang LED sa PA5 ng PORTA at isang switch sa PC13 ng PORTC na patungkol sa GND. Kapag nagawa na ang mga koneksyon, ganito ang hitsura ng aking set-up na pagsubok.
Bilang kahalili, maaari din naming magamit ang inbuilt LED at push button sa board. Ang mga built-in na LED at push-button na ito ay nakakonekta din sa parehong pin tulad ng ipinakita sa circuit diagram. Nagdagdag lamang kami ng mga panlabas na sangkap para sa pagsasanay. Ang diagram sa ibaba pin ng STM32 Development Board ay madaling gamitin upang malaman kung saan ang bawat mga pin ng morpho ay konektado sa onboard.
Pagsisimula sa STM32CubeMX para sa STM32 Nucleo64 Development Boards
Hakbang 1: Pagkatapos ng pag-install, ilunsad ang STM32CubeMX, pagkatapos ay piliin ang tagapili ng access board upang piliin ang board ng STM32.
Hakbang 2: Ngayon maghanap ng board sa pamamagitan ng iyong pangalan ng board na STM32 tulad ng NUCLEO-F030R8 at mag-click sa board na nagpapakita sa larawan. Kung mayroon kang ibang board search para sa kani-kanilang pangalan. Susuportahan ng software ang lahat ng mga board ng pag-unlad ng STM32 mula sa ST Microelectronics.
Hakbang 3: Ngayon mag-click sa oo tulad ng ipinakita sa larawan sa ibaba, upang mapasimulan ang lahat ng mga peripheral sa kanilang default mode. Maaari naming baguhin sa paglaon ang mga kinakailangan tulad ng kinakailangan ng aming proyekto.
Pagkatapos ng pag-click sa 'Oo', ang screen ay katulad ng sa ibaba ng larawan at berdeng kulay na pin na nagpapahiwatig na sila ay pinasimulan bilang default.
Hakbang 4: Ngayon ay maaaring piliin ng mga gumagamit ang nais na setting mula sa mga kategorya. Dito sa tutorial na ito, magpapalipat-lipat kami ng isang LED gamit ang isang push button. Kaya, kailangan nating gawin ang LED pin bilang output at switch pin bilang INPUT.
Maaari kang pumili ng anumang pin, ngunit pipiliin ko ang PA5 at binabago ang estado nito sa GPIO_Output upang gumana ito bilang isang output pin tulad ng ipinakita sa larawan sa ibaba.
Katulad nito, pipili ako ng PC13 bilang GPIO_Input upang mabasa ko ang katayuan ng aking push-button.
Bilang kahalili, maaari din naming mai-configure ang mga pin mula sa pinout at tab na pagsasaayos pati na rin ang ipinakita sa ibaba.
Hakbang 5: Sa susunod na hakbang, maaaring itakda ng gumagamit ang nais na dalas para sa microcontroller at mga pin alinsunod sa panlabas at panloob na oscillator. Bilang default, ang isang panloob na 8 MHz crystal oscillator ay napili at sa pamamagitan ng paggamit ng PLL, ang 8 na ito ay nabago sa 48MHz. Ibig sabihin ng default na STM32 board o microcontroller at Pins ay gagana sa 48MHz.
Hakbang 6: Lumipat ngayon sa manager ng proyekto at magbigay ng isang pangalan sa iyong proyekto, lokasyon ng proyekto, at piliin ang toolchain o IDE. Narito ginagamit namin ang TrueSTUDIO, kaya napili ko ang katulad ng ipinakita sa ibaba.
Hakbang 7: Ngayon mag-click sa Bumuo ng marka ng Code sa pamamagitan ng pulang bilog sa larawan sa ibaba.
Hakbang 8: Ngayon makikita mo ang isang popup tulad ng naibigay pagkatapos mag-click sa bukas na proyekto. Ngunit, tiyaking na-install mo ang TrueSTUDIO bago ang hakbang na ito.
Programming STM32 Nucleo64 Development Board gamit ang TrueSTUDIO
Ngayon ang iyong code o proyekto ay bubukas sa TrueSTUDIO nang awtomatiko kung hihilingin ng TrueSTUDIO ang lokasyon ng workspace pagkatapos ay magbigay ng isang lokasyon ng workspace o sumama sa default na lokasyon.
Makikita ng gumagamit ang ibinigay na screen sa ibaba at pagkatapos ay kailangang mag-click sa marka ng sulok sa pulang kulay.
At ngayon maaari naming makita ang code sa aming TreuSTUDIO IDE. Sa kaliwang bahagi sa ilalim ng folder na 'src' maaari naming makita ang iba pang mga file ng programa (na may.c extension) na nabuo na para sa amin mula sa STM32Cube. Kailangan lang nating i-program ang main.c file. Kahit na sa main.c file magkakaroon na kami ng kaunting mga bagay na na-set-up para sa amin ng CubeMX kakailanganin lamang naming i-edit ito upang umangkop sa aming programa. Ang kumpletong code sa loob ng main.c file ay ibinibigay sa ilalim ng pahinang ito.
Programa ng STM32 Nucleo64 upang Makontrol ang LED gamit ang Push Button
Dahil ang lahat ng kinakailangang driver at code ay nabuo ng STM32CubeMX, kailangan lang naming i-configure ang isang LED pin bilang output at isang push-button bilang Input. Ang programa para sa pagkontrol na humantong gamit ang pindutan ng push ay dapat na nakasulat sa main.c file. Ang kumpletong programa ay matatagpuan sa ilalim ng pahinang ito. Ang paliwanag dito ay ang mga sumusunod
Mayroon lamang kaming nakasulat na code para sa pag-toggle ng LED gamit ang push button. Upang makamit ito, tinukoy muna namin ang mga pin para sa LED at mga push-button. Natukoy namin ang isang LED sa Pin 5 na bilang ng PORTA
#define LED_PORT GPIOA #define LED_PIN GPIO_PIN_5
At tukuyin ang switch sa Pin Number 13 ng PORTC.
#define SW_PORT GPIOC #define SW_PIN GPIO_PIN_13
Pagkatapos sa pangunahing pag-andar, nasimulan namin ang lahat ng ginamit na mga peripheral.
/ * Ipasimula ang lahat ng mga naka-configure na peripheral * / MX_GPIO_Init (); MX_USART2_Init ();
At pagkatapos basahin ang pindutan ng push gamit ang kung pahayag at kung nahanap ang pindutan ng pindutin (LOW) pagkatapos ay i-toggle ng LED ang estado nito.
Habang (1) {/ * USD CODE END WHILE * / If (! HAL_GPIO_ReadPin (SW_PORT, SW_PIN)) {HAL_GPIO_TogglePin (SW_PORT, LED_PIN); HAL_Delay (200); } / * USD CODE BEGIN 3 * /}
Narito ang pagpapaandar ng HAL_GPIO_ReadPin (SW_PORT, SW_PIN) ay may dalawang mga argumento, ang isa ay PORT at ang iba pa ay isang pin kung saan nakakonekta ang switch at ang pin na ito ay na-configure bilang INPUT habang ang pag-configure ng paligid sa STM32CubeMX.
Pag-debug at Pag-upload ng Code sa STM32 Necleo64 Development Board gamit ang TrueSTUDIO
Ngayon ikonekta ang iyong board sa computer gamit ang programmer cable. Kapag ikinonekta mo ito, ang driver na kinakailangan para sa board ay dapat na awtomatikong mai-download, maaari mo itong suriin gamit ang manager ng aparato.
Pagkatapos, pindutin ang icon ng debug na minarkahan ng pulang bilog sa ibinigay na larawan sa ibaba upang maipon ang programa at pumasok sa mode ng debug.
Sa mode ng pag-debug, awtomatikong maa-upload ang code. Ngayon kailangan naming patakbuhin ang code sa pamamagitan ng pagpindot sa 'Ipagpatuloy' o F8 (minarkahan sa pulang circuit sa larawan sa ibaba).
Ngayon ay maaari naming subukan ang kontrol ng LED sa pamamagitan ng pagpindot sa pindutan ng push. Ayon sa code, dapat baguhin ng LED ang estado nito tuwing pinindot mo ang pindutan ng push. Ang kumpletong pagtatrabaho ay maaari ding matagpuan sa video na naka-link sa ilalim ng pahinang ito.
Matapos ang pagsubok, maaari din nating wakasan ang programa sa pamamagitan ng pagpindot sa icon na wakasan, na minarkahan ng pulang bilog sa larawan sa ibaba.