Это видео недоступно.
Сожалеем об этом.

Starting with STM32 - Programming Tutorial for Beginners | Step by Step | Greidi Ajalik

Поделиться
HTML-код
  • Опубликовано: 16 авг 2024
  • For everyone who would like to learn how to start with STM32 programming. Thank you very much Greidi Ajalik
    Links:
    - Greidi's RUclips: • How To Become An Embed...
    Chapters:
    00:00 What is this video about
    01:17 Starting a new project in STM32 CubeIDE
    10:30 STM32 chip configuration - GPIO pins ( ioc file )
    16:38 Clock configuration
    22:12 Project tree and files explained
    26:53 Controlling a GPIO in STM32
    36:22 Delay function - HAL_Delay
    40:04 ST-LINK upgrade
    43:22 STLINK STM32 debugger / programmer
    45:55 Building and running your code
    49:20 STM32 interrupt code example + explanation
    1:01:53 STM32 UART to PC example + explanation
    ------------------------------------------------------
    Would you like to support me? It's simple:
    - Sign up for online courses hosted on our platform: marketplace.fe...
    - Sign up for my Hardware design and PCB Layout online courses: academy.fedeve...
    - You can also support me through Patreon: / robertferanec
    - Or sign up for my Udemy course: www.udemy.com/...
    It is much appreciated. Thank you,
    - Robert

Комментарии • 184

  • @____________________________.x
    @____________________________.x 2 года назад +86

    When guests cover every little detail it’s really useful, everyone else just assumes that we already know the 42 mouse clicks they did to get from A to B

  • @GreidiAjalik
    @GreidiAjalik 2 года назад +73

    What a great video! It was pleasure to collaborate with you and thank you so much for having me on your channel!

    • @RobertFeranec
      @RobertFeranec  2 года назад +7

      Thank you very much Greidi for helping me with this video.

    • @vincei4252
      @vincei4252 2 года назад +2

      Thanks for participating. Very much appreciated!

    • @TheProlificScribbler
      @TheProlificScribbler Год назад +1

      I am working as an intern in one company and i was assigned task with stm32. Although even after going through documnetations i was unable to figure out the concepts. Then luckily i found this wonderful tutorial. It was very very useful and informative.
      Thanks a lot @greidi Ajalik and @robert feranec for bringing out this video. I would like to tune up for more such videos related to stm32.

  • @Sid-po5yt
    @Sid-po5yt Год назад +53

    We need a second part for this! Hands down one of the best beginner tutorials out there. Thank you for the effort Robert!

  • @mostafaabdelaziz2316
    @mostafaabdelaziz2316 8 дней назад

    This is one of the best tutorials I have ever seen, it is really simple and easy for beginners to understand it.

  • @rahuls7039
    @rahuls7039 Год назад +14

    Robert is like that intelligent kid who knows it all and is just helping the teacher convey every piece of information to all the kids... This is an excellent video for explaining every step...
    Thank You @Robert Feranec and @Greidi Ajalik for this beautiful video. 😇

    • @redmist4963
      @redmist4963 Год назад

      For real, he knows all the necessary questions to make

  • @nomadic_rider42
    @nomadic_rider42 2 года назад +4

    An Interrup can to two things: cause software to execute via an interrupt handler (if the interrupt is enabled) and cause some peripheral to do something (like triggering a timer). An Event doesn't cause the interrupt handler to run, but can cause some peripheral to do something.

  • @daft4682
    @daft4682 7 дней назад

    This is one of the best tutorials ever. Thank you so much for putting this together. Excellent starting point.

  • @nikosant03
    @nikosant03 2 года назад +17

    What a great tutorial for beginners!!! Thank again for your effort and your time!! Please upload more STM32 firmware-based tutorials explring maybe more peripherals or low-power design techniques (I liked the point mentioning the value of suspend and resume tick) :)

  • @vrjb100
    @vrjb100 Год назад +5

    Compilers will optimize code generated and remove dead code from include files etc. So it's correct to include the string.h file. Only the call to strlen will be included, because that one is really called. Include files define prototype of functions, so the compiler can do type checking and thus detect programming errors at compile time.

  • @skateboardinglatvia
    @skateboardinglatvia 2 года назад +69

    The hardest part of STM32 programming is getting the STM32 you want

    • @matt_313
      @matt_313 2 года назад +7

      I'll never forget in 2019 when DigiKey had nearly every STM32 ic in stock by the thousands. It seemed so normal.

    • @JosefKopal
      @JosefKopal 2 года назад +2

      More like get any STM in these days ......

    • @thenextproblem8001
      @thenextproblem8001 2 года назад +2

      Have literally 850pcs with wrong order. İf you interested i can share it with you

    • @JosefKopal
      @JosefKopal 2 года назад

      @@thenextproblem8001 which one please ? (part number)

    • @thenextproblem8001
      @thenextproblem8001 2 года назад

      @@JosefKopal stm32l011k4

  • @stevenbroshar7948
    @stevenbroshar7948 7 месяцев назад

    I applaud the questions from Robert. You asked several questions that I was wondering about. The presenter knows this stuff so well that he doesn't know what a novice doesn't know.

  • @bahjatmurrad8008
    @bahjatmurrad8008 Месяц назад

    Honestly one of the best videos i've seen on STM32

  • @kaihorstmann2783
    @kaihorstmann2783 2 года назад +4

    You can use the built-in ST-Link for custom boards. The debug pins are available on header pins on the ST-Link of the Nucleo board. Here you need to disconnect the Nucleo MCU from the debugger.
    The purpose for the cuts in the Nucleo PCB is actually breaking or cutting off the ST-Link part from the Nucleo, and keep using the ST-Link as stand-alone device.

    • @davidjablonski3996
      @davidjablonski3996 2 года назад

      That's invaluable advice! That was the only solution for me, when all cheap ST-Link copies failed.

    • @uncommonsensor
      @uncommonsensor Год назад

      wow neat

  • @ediahmadfauziserbhaneka9946
    @ediahmadfauziserbhaneka9946 Год назад +2

    Dude, this is the only video that works. Thanks for posting!

  • @rogerhusarik
    @rogerhusarik 2 года назад +8

    Examples can be found in the repository - C:\Users\YourUserName\STM32Cube\Repository\STM32Cube_FW_G4_V1.4.0\Projects\NUCLEO-G431KB\Examples\GPIO\GPIO_IOToggle

  • @elecrain
    @elecrain Год назад +2

    Perfect content for learning the stm32. Thanks for the detailed explanations, we are waiting for second part !!

  • @marc_montalvez
    @marc_montalvez Месяц назад

    I think this is the best tutorial that I have seen in my life

  • @desaoaraujo
    @desaoaraujo 2 года назад +5

    Just a small correction, you can program another MCU using the ST-Link that's integrated in the Nucleo board, you just need to remove a couple of jumper shunts and you can connect your board via the SWD header.

    • @Graham_Wideman
      @Graham_Wideman 2 года назад +1

      To clarify, you're addressing the question that Robert asked at 43:15

    • @TheDrJHo
      @TheDrJHo Год назад

      Absolutely, I used the nucleo on-board st-link to program an smt32f334 on my custom pcb. Remove jumpers on nucleo and connect custom pcb via jumper cables.

  • @justadude8716
    @justadude8716 9 месяцев назад

    This is a really deep step by step for beginners, I'd argue this is something you should watch only after you stumble through the blink LED and read pin projects.

    • @spaidory874
      @spaidory874 9 месяцев назад

      I found it fine tbh

    • @karm00n29
      @karm00n29 6 месяцев назад +1

      i am depressed i dont get 80% of what theyre talking about lmao im new i only did arduino starter projects in which the code was nowhere near as complicated

    • @Josuah96
      @Josuah96 Месяц назад

      ​@@karm00n29same as you bro. Bro please can you share how to learn this stm32 as a beginner

  • @vincei4252
    @vincei4252 2 года назад +7

    @Robert you're a mind reader!
    Very cool. I just bought an STM32H745 discovery board. I installed CubeIDE but the initial complexity of what you need to do next when you start is stopped me in my tracks. I understand the complexity because of all the different (hundreds?) of STM32 variants but it still leaves you with initial sticker shock.

  • @lucienrapilly6407
    @lucienrapilly6407 2 года назад +2

    Thanks guys! Part 2 anytime? It would be awesome!

  • @superdau
    @superdau 2 года назад +3

    *You can use the programmer part of a nucleo board to program other STMs on other boards (including your own custom one).* The SWD interface is available on pins and there are jumpers there as well to "disconnect" the main MCU. If you want you can even cut off the programmer part. There's a prerouted slot and only three small tabs connecting the two boards. Score them with a knife and break it apart.
    Both parts will still work, but you'll obviously have to manage the connections to the programming interface of the main MCU yourself, as well as the rest like connection to power, the right UART pins, the external oscillator aso.
    The original "ST links" are already exceptionally cheap for a programmer (props to ST for that). But you can have even cheaper ones (~3€) on your favorite ecommerce platform for cheap stuff ;) . I wouldn't start out with those, to avoid problems (though I never had any, but just to be safe). They even update through the same firmware flasher tool. But be aware that the more recent ones don't use an STM32F1 anymore but a GD32F1. That's a Chinese version of an STM32 with a few slight differences. So unless the firmware for the programmer hits one of these differences the GD32F1 should be fine.

    • @desaoaraujo
      @desaoaraujo 2 года назад +1

      The bootleg programmers from China are not working anymore with ST software - they detect the fake chips and won't let you use it properly.

  • @kbgaminghd7504
    @kbgaminghd7504 2 месяца назад

    The amount of respect i have for this guy

  • @mitjakobler
    @mitjakobler 2 года назад

    From today, after 10 year design hardware(AD13-AD22), i will start software for my DIY project. Thanks for video. ;)

  • @davidjablonski3996
    @davidjablonski3996 2 года назад +1

    Great video. Especially your humility with things you don't know about is outstanding and rare these days! Maybe some video on a modern RTOS like Zephyr OS as a follow-up?

  • @hernameplz6506
    @hernameplz6506 2 года назад +2

    This is absolutely amazing! Walk us through each step! Pls do more like this! Thanks

  • @johnpark3138
    @johnpark3138 10 месяцев назад

    This is an excellent tutorial for learning about programming microcontrollers. Thanks you Robert!

  • @achrafeleuch3040
    @achrafeleuch3040 2 года назад +1

    very very helpful and comfortable to watch, it feels like we are with you in the conversation and it's making us concentrate a lot better :D thanks a lot

  • @Fubar12341
    @Fubar12341 2 года назад

    Thank you Guys, as a slow old duffer I really found this tutorial Very Useful.

  • @user-ne6gm2ub5e
    @user-ne6gm2ub5e 2 года назад +1

    The best channel about programming stm32 is NR.electronics.

  • @aitorsierra
    @aitorsierra 2 года назад +4

    @Robert Feranec: Do you intend to make a video explaining how to design drivers (sensors) I2C, SPI using STM32?

  • @arneweber7875
    @arneweber7875 10 месяцев назад

    Thanx a lot, the tip at 40:42 to update ST-Link solved my Problem

  • @bobdalah8374
    @bobdalah8374 11 месяцев назад

    The capacitor C15 and R30 are not for filtering a signal, they give time to clock system to start before the level of reset pin become high to start the microcontroller.

  • @therealdorsch
    @therealdorsch 10 месяцев назад +1

    Great Video! Thanks for the good explanations and details :)

  • @therealb888
    @therealb888 2 года назад +1

    Your videos are always such a high quality resource of knowledge!

  • @TongweiZhang
    @TongweiZhang 2 месяца назад

    Amazing video, thank you!!! I am a beginner and i find this video really helpful!

  • @returncode0000
    @returncode0000 7 месяцев назад +1

    I want to check embedded programming on ARM/STM32 starting with a Nucleo board. Whereever this journey will take me, should I develop on Windows or Mac with STM32CubeIDE? I’ve heared that the industry standard for developing on ARM is Windows most tools, drivers etc).

  • @felixfigueroa
    @felixfigueroa 2 года назад

    Wow, what good news this initiative .... excellent way to start and masterful introduction..god job 👌

  • @pochuanpeng1729
    @pochuanpeng1729 7 месяцев назад

    Very helpful, thanks. Please consider have 2nd episode step by step instructions to use I2C ( or multiple I2Cs) on STM32.

  • @jozefsoucik3115
    @jozefsoucik3115 5 месяцев назад

    like your videos and questions. cca 31:00 BTW ... examples are against workflow of STM32 IDE. Because code is generated mostly by setting in IOC.

  • @ThePing98
    @ThePing98 2 года назад

    happy to see some software stuff in your channel , thank you

  • @yabool2001
    @yabool2001 2 года назад +1

    Super! Waiting for UART receiving part.

  • @nambot
    @nambot Год назад

    Cool! very useful video for getting started with nucleo board. Thanks for making this video

  • @sandrainthesky1011
    @sandrainthesky1011 Год назад

    Well done! This was very valuable for first time Cube IDE users (like me)

  • @user-eh5cl3cc4b
    @user-eh5cl3cc4b Год назад

    Thank you for the explanation. Really great video for beginners

  • @imrichmorvay2227
    @imrichmorvay2227 2 года назад

    Robert excelent video!!! Len tak dalej.

  • @bartek153
    @bartek153 2 года назад

    That was very useful Robert. thanks for that!

  • @jalilbiad8656
    @jalilbiad8656 9 месяцев назад +1

    Second Part is needed !

  • @paulpichler5089
    @paulpichler5089 Год назад

    20:00 you can undo it inside the clock configuration window

  • @ds-dronebike
    @ds-dronebike 2 года назад +2

    Absolute perfect. I start with STM32 dome months ago, like transfer from pic32 platform. Will you create any tutorial about SAI or I2S and DSP? I’m interested of sound applications with using STM32H7 and DSP instructions.

  • @Fixaj
    @Fixaj Год назад

    thanks too much, like Matrix movie I have learned STM32 now.

  • @nikhilchitroda9886
    @nikhilchitroda9886 2 года назад

    waiting for more such video playlist.
    thanks !

  • @byatse3013
    @byatse3013 2 года назад

    yes yes it is really useful thank you from Mongolia

  • @Frisky0563
    @Frisky0563 Год назад

    I learn so many from you both great to see G

  • @B1063N
    @B1063N 12 дней назад

    Useful. Thanks!

  • @TheMechatronicEngineer
    @TheMechatronicEngineer 2 года назад +1

    Great idea! You should make a whole course about this topic :)

  • @polatech-tipps
    @polatech-tipps 6 месяцев назад +1

    Hey, can somebody help me i have a problem, i dont understand why hello World is not displayed on the screen. I have been following each step and all is good (STM32 is connected, code is good...) but on the console is nothing. Have somebody a solution ? Thanks :/

  • @zaferaltun
    @zaferaltun 8 месяцев назад

    So helpful, thank you for your effort.

  • @ge440
    @ge440 6 месяцев назад

    Very nice video, we need second part.

  • @welldonehuang9133
    @welldonehuang9133 Год назад

    thanks for your guidance, very useful.

  • @payloh_3328
    @payloh_3328 2 года назад

    THANK YOU I needed this

  • @mehmetacar5881
    @mehmetacar5881 2 года назад

    It's perfect Tutorial. Thanks A lot.

  • @ValiRossi
    @ValiRossi Год назад

    Fantastic video. Thanks!

  • @ric_nhut
    @ric_nhut 10 месяцев назад

    I will give you a bunch of thanks for this video

  • @nazariimoroz6216
    @nazariimoroz6216 Год назад

    Robert was not learning, he was making sure Greidi isn't making a mistake or misleading the viewers the entire video XD

  • @zerocool3002
    @zerocool3002 5 месяцев назад +1

    Hello, I am new to the world of STM32, do you recommend programming it from visual studio code, or better from cubeIDE?

  • @ahmetbingol2966
    @ahmetbingol2966 8 месяцев назад

    Thanks for the great content !

  • @Fnta_discovery
    @Fnta_discovery Год назад

    Hi dear. I’d love you to give the manner or advice so that I can understand STM32 because when I see a code HAL I panicked suddenly. Best regards 😢

  • @engineerrehman6821
    @engineerrehman6821 15 дней назад

    How to connect LED and relay operation with STM ?

  • @mohammed_saeedzayat1418
    @mohammed_saeedzayat1418 Год назад +1

    Thanks for the course. However, I wonder if I can use the STM32 Cube IDE environment as exactly real life does for the blinking led first example as a simulation.

  • @patrickrichard6556
    @patrickrichard6556 Год назад

    good work king, love you

  • @christiankoch4627
    @christiankoch4627 2 года назад +1

    LIN Bus tutorial would ne nice!

  • @nickskywalker2568
    @nickskywalker2568 7 месяцев назад

    I've got the F746G and I am struggling to find which pin I should activate for the led, anyone can help?

  • @Tezza120
    @Tezza120 4 месяца назад

    I'm not a professional programmer or anything but I did learn a big thing about libraries. I didn't know if it's included, the whole thing is added. I thought the IDE was smart enough to only compile what was used in the library.
    So does this mean if you wanted to use just strlng() from string.h....you'd have to copy that string.h library as your own and delete everything that's not needed to save on program size?

  • @ediahmadfauziserbhaneka9946
    @ediahmadfauziserbhaneka9946 Год назад

    It worked. Thanks a lot

  • @rajendrailager8281
    @rajendrailager8281 7 месяцев назад

    After Project explorer my ioc file will not be able to see in the leftside window. Please let me know

  • @arunasadeepa1767
    @arunasadeepa1767 11 месяцев назад

    Another great tutorial😍😍, I just don't understand how the LED turned off when using interrupt coz there wasn't any code line as i saw, can someone tell me how.

  • @nomannosher8928
    @nomannosher8928 2 месяца назад

    sometimes issue comes in st board and we dont know reasons why this happened.

  • @nassershehadeh4661
    @nassershehadeh4661 Год назад

    Could you guys do a tutorial for simulating stm32 processors in Proteus? I am new to this type of development and simulating is cheaper and more practical than buying and testing

  • @tedina72
    @tedina72 2 года назад

    Best Author

  • @thronex4741
    @thronex4741 6 месяцев назад

    i cant find the STM32F407VET6 development board in the STM32CubeIDE
    what can i do?
    Is there a way to add it?

  • @marcosethais7
    @marcosethais7 2 года назад +1

    do you have plans to take the stm32mp157 course in schematic and pcb?

  • @yaswanthcdac
    @yaswanthcdac 3 месяца назад

    sir, why they give double underscore what is the significance of that

  • @kanchanagangadaita7442
    @kanchanagangadaita7442 2 месяца назад

    Which cable is to be used for connecting with PC?

  • @user-eq1pz8qc1o
    @user-eq1pz8qc1o Год назад

    Hello guys, im having a trouble with stm32cubeide, basicall when i try to open a new project its says "Code generation could not be done most probably because the necessary firmware package is missing. Not able to complete STM32Cube project creation. See Firmware Updater for settings related to firmware package installation Tips: Please use the Device Configuration Tool, and then use 'Project > Generate Code' to complete the project generation." any helps?

  • @raghudevisetti9382
    @raghudevisetti9382 8 месяцев назад

    Is there any processor (instruction) simulator for STM32 MCUs on CubeIDE?

  • @klausehrhardt4481
    @klausehrhardt4481 6 месяцев назад

    Question: all this hall/cmsiss setup config is alteady multitheading?

  • @arisk4
    @arisk4 Год назад +2

    24:11 can someone explain how uint8_t hello = "Hello"; works? How can Hello be stored in 8 bits?

    • @uncommonsensor
      @uncommonsensor Год назад +1

      Maybe the 8 bits point to the array's starting address?

    • @arisk4
      @arisk4 Год назад

      @@uncommonsensor yeah that makes sense. I am not used in programming like that. I would declare it as a string. Is there any difference? Which is better?

    • @uncommonsensor
      @uncommonsensor Год назад +1

      @@arisk4 Well I'm more familiar with C++, but it does use C strings, which are just arrays of bytes terminated by a 0. Also, arrays typically just point to a location in memory, and then depending on what type of array it is, it will know how to access each element in the array depending on the size of its type, and it's index.
      I'm not sure if that is what is going on here, but it was just an assumption. Maybe the
      marks the end of the array somehow

  • @KnaufL
    @KnaufL 2 года назад +2

    Too bad that the stm32s are pretty much still unobtainable

  • @ibrahimshasirajithin9150
    @ibrahimshasirajithin9150 2 года назад

    Very Useful....

  • @danielmelendrez1616
    @danielmelendrez1616 Год назад +1

    Is it just me or does developing STM32 applications seem extremely convoluted? I feel like the HAL concept is, in principle, a nice idea, however, feels "bloated". One sure thing is that the learning curve for STM32 applications is steep AF. :(

  • @bormisha
    @bormisha 2 года назад

    Too bad most STM32s are unavailable on the market since more than a year now. It's a bad idea to start any new designs with them. But their documentation, software support and low prices for programming tools made them very attractive and easy to start with.

    • @rolfw2336
      @rolfw2336 2 года назад +1

      It's a problem for other micros as well, but you're right, STM chips seem to be totally unavailable since about mid-2021.

  • @947C.Christmas.Siletz.Benton
    @947C.Christmas.Siletz.Benton Год назад

    That my-friend is the body of the circuits.

  • @frevanneste7595
    @frevanneste7595 Год назад

    very usefull video!

  • @cortex-technologies
    @cortex-technologies Год назад

    Is it possible to start this tutorial if I don't have the hardware(stm32 board)? That thing is not available in my country, aliexpress will require around 30 days for shipping

  • @pooper_master1564
    @pooper_master1564 Год назад

    I followed the steps but I don't see no output in the serial monitor

  • @user-eo5ew1ue3i
    @user-eo5ew1ue3i Год назад

    Robert the legend

  • @bassome3000ify
    @bassome3000ify 2 года назад

    Cool, thx

  • @Hamza_mrc
    @Hamza_mrc Год назад

    i love it !

  • @user-lp2op9uu1w
    @user-lp2op9uu1w 2 года назад +2

    Next tutorial: Where to buy some ;)

    • @remy-
      @remy- 2 года назад +2

      Yes that’s holding me back from investing time into this chip. ESP32 has it’s disadvantages, but no shortages.

    • @alperuzi
      @alperuzi 2 года назад

      I would really like to know this too :) :)