STM32F466RE Hello World su LED! 2022.01.28 at 15:22
Toks pirmas programavimo greitukas, tik tam, kad pabandyti su kuo tas STMas valgomas, tiksliau kaip jį valgyti. Viskas daug maž intuityviai pasidaro, vos ne vedlio (wizard) principu, todėl per daug į smulkmenas nesileisiu. O be to pilna tiek video (YouTube), tiek aprašymų (šiaip Internete), kaip pradėti ir parašyti kokią nors paprastą programėlę. Nors ir trumpai, bet pažingsniui.
- Instaliuojam STM32CubeIDE, teksto rašymo metu versija 1.8.0.
- Prijungiam kūrybinį modulį, paleidžiam IDE.
- Susirandam modulį IDE aplinkoje (beje, ten galima iš karto parsitempti PDF aprašymus), nieko labai nekonfigūruojam, nes viską sumes pagal nutylėjimą pagal modulį. Važiuojam per vedlį kol pamatom procesoriaus paveiksliuką.
- Kad nebūčiau toks visai nulinukas, pridėjau papildomą LEDą ant PA6 prievado.
Pavadinau jį LED1 [Yellow LED], nes geltonas, ir šalia „gamyklinis” LED, toks kaip Arduine ant 13 prievado kaba, taigi jį pavadinau LED2 [Green Led] nes žalias. Abo prievadai nustatyti kaip GPIO_Output (spragtelk ant pino). Ir kol kas užteks, spaudžiam F11 arba Run > Debug arba plaktuką meniu juostoje, ir iš to kas sureguliuota pagamins main.c failiuką (bus tarpinis vedliukas, bet ten lyg nieko nekeičiau).
- Turim jau sugeneruot visą naudžiąją kodo dalį su konfigūravimu. Toliau Main programoje tik pasidarom kintamąjį, kuris laikys prievado būklės reikšmę (1 arba 0):
/* USER CODE BEGIN 2 */
static unsigned short pin_state = 0; // Inicializuojamas kintamasis
/* USER CODE END 2 */
Pastaba – būtina savo kodą rašyti tarp USER CODE BEGIN ir atitinkamai END. Šitas atitinka Arduino void setup() { } - Važiuojam į while (1) ciklą, kuris suks mūsų kodą be sustojimo. Atitinka Arduino void loop() { } ir sakom ko mes norim iš procesoriaus.
/* USER CODE BEGIN WHILE */
while (1)
{
HAL_GPIO_WritePin(GPIOA, LED1_Pin, pin_state); // Geltonas LED
HAL_GPIO_WritePin(GPIOA, LED2_Pin, !pin_state); // Zalias LED
pin_state = !pin_state;
HAL_Delay(1000);
/* USER CODE END WHILE */
Vėl viskas rašoma tarp tų BEGIN ir END. HAL – Hardware Abstraction Layer. Panašiai kaip bibliotekos Arduine, viena komanda padaro visą darbą. Prie modulio aprašymo įdėjau HAL aprašymą, ten ~2000 puslapių :D. - Spaudžiam žalia mygtuką su trikampiuku ir laukiam kol sukompiliuos ir užprogramuos procesorių. Viskas :).
Leave a Reply