STM32World
STM32World
  • 46
  • 14 477
STM32 Tutorial #28 - FreeRTOS Runtime Statistics
In this video we will collect and use runtime statistics from FreeRTOS.
As usual, please do like and subscribe if you learned anything from this video.
Check the previous video about FreeRTOS here: th-cam.com/video/3Kevk3l6vPs/w-d-xo.html
FreeRTOS page: stm32world.com/wiki/STM32_FreeRTOS
STM32World wiki: stm32worlld.com/wiki
00:00 Intro and recap
01:22 Modify FreeRTOS config in STM32CubeMX
04:20 Modifying the code - adding variable and adding interrupt hook
07:12 Running through debugger
08:53 Create a task to show stats
12:21 Allocating more memory to a task based on stats
มุมมอง: 82

วีดีโอ

STM32 Tutorial #27 - DIVING into FreeRTOS
มุมมอง 21612 ชั่วโมงที่ผ่านมา
In this video we will start a dive into FreeRTOS on STM32 MCUs. We will be using the CMSIS RTOS/V2 abstraction layer. Next video about FreeRTOS is here: th-cam.com/video/zY_I6GZffos/w-d-xo.html As usual, please like and subscribe. You can watch the entire Video Series here: th-cam.com/video/EZqwBuRpdns/w-d-xo.html STM32World wiki FreeRTOS page: stm32world.com/wiki/STM32_FreeRTOS STM32World wiki...
STM32 Tutorial #26 - Creating a LIBRARY for a I2C sensor
มุมมอง 24519 ชั่วโมงที่ผ่านมา
In this video we will finalise dealing with the BMP085 temperature and pressure sensor by creating a portable C library. As usual, if you like this video please like and subscribe and I love to hear your thoughts and questions in the comments below. #stm32 #tuturial #i2c #hal #stm32cubeide #stm32cubemx 00:00 Intro and recap 01:51 Creating the library directory and files 05:09 Explaining the hea...
STM32 Tutorial #25 - Bit manipulation using bit banding
มุมมอง 406วันที่ผ่านมา
In this video we will be doing bit-manipulation using Bit Banding. Bit Banding is a feature (optional feature) of ARM Cortex M0, M3 and M4 cores and it is as far as I know available in all of the F series MCU's. As usual please like and subscribe. Comments are greatly appreciated. Described here: stm32world.com/wiki/STM32_Bit_Banding 00:00 Intro 00:45 Historical background - the 8051 MCU 02:55 ...
STM32 Tutorial #24 - HOW TO Read from and Write to I2C Slave
มุมมอง 18514 วันที่ผ่านมา
In this video we will use I2C to read temperature data from the BMP085 Temperature/Pressure sensor. Sensor documentation here: stm32world.com/wiki/Bosch_BMP_series_digital_pressure_sensor 00:00 Intro and recap 01:55 Understanding how to read temperature 03:00 Creating defines for registers and addresses 04:00 Creating the read temperature function 04:50 Writing TO the I2C device 07:27 Reading t...
STM32 Tutorial #23 - UNDERSTANDING GPIO
มุมมอง 29214 วันที่ผ่านมา
In this video we dive into the details around GPIOs and alternate functions. As usual please like and subscribe! And I read all comments and reply if necessary, so please do write your comments down below. Wiki page about GPIOs: stm32world.com/wiki/General-purpose_input/output_(GPIO) Site: stm32world.com/wiki 00:00 Intro and recap 00:50 Explaining GPIO basics and documentation 04:50 The anatomy...
OOPS, SOLUTION to the crazy mystery
มุมมอง 10221 วันที่ผ่านมา
FINALLY found - with a little help from someone on Reddit - a solution to the crazy mystery I presented a few days back. The original video was here: th-cam.com/video/ossp0eSth9A/w-d-xo.html As expected the problem was glaringly simple and I am a bit ashamed I didn't spot it myself. I guess I must be an idiot ;) 00:00 Intro and recap 02:55 The solution from a Redditor 03:40 Testing the solution...
STM32 Tutorial #22 - AMAZING Jump to System Bootloader
มุมมอง 35021 วันที่ผ่านมา
In this video we demonstrate that it is possible to jump to the built-in system bootloader without using the boot0 pin. It is a bit naughty as it uses the stack space to store a flag during restart (stack space is NOT initialized during a reset). Please like and subcribe if you enjoy this kind of video. I also love comments - good and bad. This approach is documented on the STM32World wiki here...
STM32 - CRAZY Mystery!
มุมมอง 41821 วันที่ผ่านมา
In this video I am asking YOU dear viewers for help. Pretty please, with sugar on top. I have been struggling with a mystery for a while which have me quite stunned. Update: The solution is now here: th-cam.com/video/W0gh_nC45WY/w-d-xo.html Please like and subscribe if you want a notification when I figure this out. Please watch the video and if you want more details I have also documented this...
STM32 Tutorial #21 - I2C Read and Write
มุมมอง 41428 วันที่ผ่านมา
In this tutorial video we will read from and write to a I2C device. The video also describe the difference between Big- and Little-Endian MCU's. Site: stm32world.com/wiki Source for this example: github.com/STM32World/stm32fun/tree/master/stm32world_i2c2 The device and datasheets: stm32world.com/wiki/DFRobot_10_DOF 00:00 Intro and Recap 01:20 Reading the datasheet 05:15 Explaining endianness 10...
STM32 Tutorial #20 - Understanding I2C
มุมมอง 356หลายเดือนก่อน
In this video we will introduce the I2C bus and the STM32 HAL libraries supporting the I2C peripheral. Please LIKE and subscribe and comments are always appreciated. WARNING to the woke audience - I use the regular terms master and slave! STM32World wiki: stm32world.com/wiki/I²C 00:00 Intro and recap 02:50 The important parts - bus implementation and I2C addresses 06:12 Explaining the address b...
STM32 Tutorial #19 - Understanding C types on STM32 MCUs
มุมมอง 378หลายเดือนก่อน
Just a short video going through the size of various standard C types on STM32 MCUs. Please like and subscribe and as always - comments are greatly appreciated. 00:00 Intro 00:30 Introducing the "The C Programming Language" 04:38 Checking size of variables using sizeof operator 05:17 Going through all the standard variable types
STM32 Tutorial #18 - SURPRISING Timer feature - Rotary Encoder with Timer Input Capture
มุมมอง 450หลายเดือนก่อน
In this video we will decode the signals from a rotary encoder using input capture from two timer channels. As usual please like and subscribe and questions/comments really help me improving the quality of the channel. Described on our wiki here: stm32world.com/wiki/STM32_Rotary_Encoder 00:00 Intro/Recap and an apology 01:39 Introduction to rotary encoders 06:18 Setting up a project 07:03 Confi...
STM32 Tutorial #17 - More debugging - introducing SWO
มุมมอง 298หลายเดือนก่อน
In this video we will dive more into debugging by looking at the SWO (Serial Wire Output) and using that to print debug information and to do profiling. As usual, please do like, subscribe and comment down below. Example code can be found on Github here: github.com/STM32World/stm32fun STM32World Wiki here: stm32world.com/wiki DIY ST-Link device: stm32world.com/wiki/DIY_STM32_Programmer_(ST-Link...
STM32 Absolutely SHOCKING Solution to the Mystery
มุมมอง 482หลายเดือนก่อน
STM32 Absolutely SHOCKING Solution to the Mystery
STM32 A MASSIVE Mystery
มุมมอง 151หลายเดือนก่อน
STM32 A MASSIVE Mystery
STM32 Tutorial #16 - UART Receive with DMA and Idle Detection
มุมมอง 264หลายเดือนก่อน
STM32 Tutorial #16 - UART Receive with DMA and Idle Detection
STM32 Tutorial #15 - Sine wave on DAC with DMA
มุมมอง 5022 หลายเดือนก่อน
STM32 Tutorial #15 - Sine wave on DAC with DMA
STM32 Tutorial #14 - Individual PWM channels pulsing with a sine wave
มุมมอง 2012 หลายเดือนก่อน
STM32 Tutorial #14 - Individual PWM channels pulsing with a sine wave
STM32 Tutorial #13 - Optimizing my stuff again (more than one way to skin a cat)
มุมมอง 1712 หลายเดือนก่อน
STM32 Tutorial #13 - Optimizing my stuff again (more than one way to skin a cat)
STM32 Tutorial #12 - Low level access to peripherals
มุมมอง 4192 หลายเดือนก่อน
STM32 Tutorial #12 - Low level access to peripherals
STM32 Tutorial #11 - Running multiple timer channels
มุมมอง 2072 หลายเดือนก่อน
STM32 Tutorial #11 - Running multiple timer channels
STM32 Tutorial #10 - Pulsing a LED using PWM from a Timer Channel
มุมมอง 1562 หลายเดือนก่อน
STM32 Tutorial #10 - Pulsing a LED using PWM from a Timer Channel
STM32 Tutorial #9 - Using a timer channel to blink a LED
มุมมอง 3182 หลายเดือนก่อน
STM32 Tutorial #9 - Using a timer channel to blink a LED
STM32 Tutorial #8 - Introduction to timers
มุมมอง 2722 หลายเดือนก่อน
STM32 Tutorial #8 - Introduction to timers
STM32 Tutorial #7 - Optimizing my stuff (getting smarter every day)
มุมมอง 1972 หลายเดือนก่อน
STM32 Tutorial #7 - Optimizing my stuff (getting smarter every day)
STM32 Tutorial #6 - External Interrupt
มุมมอง 2582 หลายเดือนก่อน
STM32 Tutorial #6 - External Interrupt
STM32 Tutorial #5 - DEBUGGING in-circuit
มุมมอง 2292 หลายเดือนก่อน
STM32 Tutorial #5 - DEBUGGING in-circuit
STM32 Tutorial #4 Second Blink (done right!)
มุมมอง 5463 หลายเดือนก่อน
STM32 Tutorial #4 Second Blink (done right!)
STM32 Tutorial #3 First Blink (done WRONG!)
มุมมอง 4393 หลายเดือนก่อน
STM32 Tutorial #3 First Blink (done WRONG!)

ความคิดเห็น

  • @edwardcomeau2625
    @edwardcomeau2625 วันที่ผ่านมา

    I was looking for PICO PIO work with DMA to do basically the same, read a message to idle into a DMA buffer - found this video very informative on what I'm trying to do being on the right lines and if I can't achieve with PIO then great to know about what the STM32 can do as another option. Great video!

    • @stm32world
      @stm32world 21 ชั่วโมงที่ผ่านมา

      When I discovered that one about a year ago I think I was quite surprised that this is not being mentioned more often. The receive to idle makes it much easier to work with serial receive. Happy you enjoyed the video! Check out my other videos in the serious - you might find another surprise or two (bit banding is a life safer too).

  • @breadx333
    @breadx333 2 วันที่ผ่านมา

    Great tutorial. Do you know about system design?

    • @stm32world
      @stm32world วันที่ผ่านมา

      Well, I know some things ;) But you would need to be a bit more specific what you have in mind.

  • @mealshake4284
    @mealshake4284 4 วันที่ผ่านมา

    You are doing great job ! I saw in the planned videos you will talk about USB and DIY Bootloader, can you explain and show : - How to flash fw through USB without any buttons, just using PC software using DFU or MSC (UF2) - USB IP or USB WIFI for vendor specific devices Thanks.

    • @stm32world
      @stm32world 3 วันที่ผ่านมา

      USB will come later. I am struggling a bit coming up with ideas which will be possible to squeeze into < 30 min videos. The bootloader - well - first you should check the earlier video on jumping to the built-in bootloader. With enough storage on-board it _would_ be possible to do this more elegantly so that video would come after I have been showing SPI flash ;) Your comments and suggestions are greatly appreciated!

  • @breadx333
    @breadx333 5 วันที่ผ่านมา

    thanks for the video. could you teach us how to work with sd cards?

    • @stm32world
      @stm32world 5 วันที่ผ่านมา

      That is a pretty good idea. I don't have a STM32World board designed yet but I might throw one together. Alternative I do have a couple of STM32F405 based boards with a SD card slot on them. The sd card interface is quite simple. The hard part is to use the FAT library actually.

  • @niclash
    @niclash 8 วันที่ผ่านมา

    Referencing main.h in library isn't a good idea. Should only reference what is actually used, for instance a particular header file. If it is a variable, then declare it "extern int some_var" in the library.

    • @stm32world
      @stm32world 8 วันที่ผ่านมา

      Ok, point taken. In this case a few typedefs

  • @breadx333
    @breadx333 11 วันที่ผ่านมา

    To use the live expression do I need to configure the MCU's debug mode to Trace Asynchronous SW mode or Serial Wire is enough? Also can I use st-link v2 for that or do I need JTAG?

    • @stm32world
      @stm32world 11 วันที่ผ่านมา

      I think you will find an answer to your questions in Tutorial video #17 th-cam.com/video/j-GaEZKrkbQ/w-d-xo.html In short, you can use a st-link v2 if it is an original. The Chinese clones do not include a SWO pin by default.

    • @stm32world
      @stm32world 11 วันที่ผ่านมา

      Sorry, I missed the "live expression" part of your question. And no, no need for Trace - Serial Wire is enough and that will work with any st-link - even the Chinese clones.

  • @niclash
    @niclash 14 วันที่ผ่านมา

    "/ pow(2,4)" == ">> 4"

    • @stm32world
      @stm32world 14 วันที่ผ่านมา

      Right - but I lifted the formulas straight from the datasheet. Easier to toubleshoot later.

  • @milanercegovic8413
    @milanercegovic8413 17 วันที่ผ่านมา

    Hi, nice video, I have shield that fits on Arduino Mega 2560 for electronic lead screw, it has connection to fit, spindle encoder,100 line hand encoder. stepper drivers, LCD, rotary switches, push buttons, menu buttons, joystick etc. Each pin is pull up with 1K Resistor. To make shield for STM32F767ZI to fit above things, can board handle it, it say pins are 5v tolerant. Or to install 3v3 to 5v level shifters. Thank you.

    • @stm32world
      @stm32world 17 วันที่ผ่านมา

      That's a tricky one. Ultimately it will probably boil down to how much current will run into all the pins on the stm32 when going low and that could become a bad thing. You would have to read the datasheet for your specific mcu and schematics of the "shield". 5V tolerant pins is a nice thing but they probably shouldn't be relied on without careful consideration. I have used it a few times - for example to drive ws2812 leds (which require 5V data).

    • @milanercegovic8413
      @milanercegovic8413 17 วันที่ผ่านมา

      @@stm32world Thank you, to be on safe side use level shifters 3v3 to 5v for each pin, can you recommend which shifters for analog pins and digital pins.Thank you very much.

    • @stm32world
      @stm32world 17 วันที่ผ่านมา

      Sorry, no - the recommendation would be the same - look at the schematics and the datasheets for the individual stuff.

  • @niclash
    @niclash 19 วันที่ผ่านมา

    @12:25 Nitpick; It is not "after reset" but "after initialization".

    • @stm32world
      @stm32world 18 วันที่ผ่านมา

      Hmmm, yeah - you are probably right about that, but nitpicking back - IF the initialisation is run at each reset then that would technically also be the same. I am going to test this, which _can_ be done the moment "main" is called before the HAL/NVIC etc. get executed.

  • @wwadley
    @wwadley 19 วันที่ผ่านมา

    Yes, a very comprehensive overview of the GPIO! Thank you very much.

    • @stm32world
      @stm32world 19 วันที่ผ่านมา

      I hope it is useful. I am doing a deeper dive into the HAL library in the next few videos.

  • @niclash
    @niclash 22 วันที่ผ่านมา

    So the code for the STM32F411 wasn't identical?

    • @stm32world
      @stm32world 22 วันที่ผ่านมา

      There was one declaration different - which was so far fetched I didn't even bother to check.

    • @stm32world
      @stm32world 22 วันที่ผ่านมา

      And I know it's embarrassing - hence the video title ;)

  • @stm32world
    @stm32world 22 วันที่ผ่านมา

    Sorry about the audio in this one - don't know what happened.

  • @LuthfanTaufiqArrafi
    @LuthfanTaufiqArrafi 23 วันที่ผ่านมา

    I can't add serial output using st link v2 (chinese). In the video, you didn't add swo and I don't think it's necessary. Is swo still needed to bring up serial even if it is not added in the ioc file? btw, ur videos help me so much, thx uu

    • @stm32world
      @stm32world 23 วันที่ผ่านมา

      The clone ST-Link devices does not have serial or swo (swo _can_ be added with a bit of tweaking). So, if you want to use that you have to use a separate usb-serial adaptor. You don't need both swo and serial. Both can be used to print debug statements and the swo can do tons of other stuff - like monitoring variables "live". I made my own st-link which can do it all ( stm32world.com/wiki/DIY_STM32_Programmer_(ST-Link/V2-1) )

  • @J3derNurEinKreuz
    @J3derNurEinKreuz 24 วันที่ผ่านมา

    That's a really nice trick, thanks for sharing. In a real world application I would disable interrupts before messaging with the stack. Saw the missing assignment to now right after you copied it and waited asking myself, when will be notice :-)

    • @stm32world
      @stm32world 24 วันที่ผ่านมา

      If you read the evaluation part of the wiki article (here: stm32world.com/wiki/STM32_Jump_to_System_Memory_Bootloader#Evaluation) yes - it could potentially go wrong and I guess disabling interrupts would improve that.

    • @stm32world
      @stm32world 22 วันที่ผ่านมา

      And yeah - took me a while to notice the missing assignment - long enough that I had to pause the recording while I figured it out ;) Wait until you see the solution to the Crazy Mystery video I posted some days back.

  • @IsaacFraser-y4x
    @IsaacFraser-y4x 24 วันที่ผ่านมา

    great vid, ta

    • @stm32world
      @stm32world 24 วันที่ผ่านมา

      Thanks, glad you liked it.

  • @niclash
    @niclash 24 วันที่ผ่านมา

    Pretty awesome.

    • @stm32world
      @stm32world 24 วันที่ผ่านมา

      I expected to be shot down for messing with the bloody stack ;) But thanx.

    • @stm32world
      @stm32world 24 วันที่ผ่านมา

      Let's put it this way - normally the stack is better left to the compiler ;(

  • @stm32world
    @stm32world 24 วันที่ผ่านมา

    The next I2C video is still a work in progress. I got a bit bored with I2C so decided to squeeze in a few other videos. It will go up soon so have patience.

  • @LarsBgildThomsen
    @LarsBgildThomsen 26 วันที่ผ่านมา

    Got into this video planning a short video on the topic of bit-banding (as opposed to bit banging).

  • @LarsBgildThomsen
    @LarsBgildThomsen 26 วันที่ผ่านมา

    I can't wait to see if anyone have a suggestion to this one!

  • @PatrickHoodDaniel
    @PatrickHoodDaniel 27 วันที่ผ่านมา

    Came here to say thanks for coming to the livestream. Just subscribed to your channel. I will be watching your videos.

    • @stm32world
      @stm32world 27 วันที่ผ่านมา

      That is very cool! I am at least 12-14 hours ahead of you timezone wise, so I had to leave the live stream before you were done - sorry about that.

    • @stm32world
      @stm32world 27 วันที่ผ่านมา

      I do have a few comments on your live stream but I'll post that on your channel. Any comments on my videos is greatly appreciated. I am still in an early learning phase when it comes to videos.

  • @xOWSLA
    @xOWSLA หลายเดือนก่อน

    YOU ROCK! Thanks for the nieche content!

    • @stm32world
      @stm32world หลายเดือนก่อน

      Thanx. I actually didn't think this particular video would be well received - might make more like this.

  • @wwadley
    @wwadley หลายเดือนก่อน

    My vote is short and sweet: 10 minutes or less. Thank you for these videos. You are making the material very accessible.

    • @stm32world
      @stm32world หลายเดือนก่อน

      Your comment is much appreciated ;) From the limited experience I got so far, 10 minutes or less is hard though. There's simply not enough time to explain. But I will try to make them as short as possible.

  • @car_dot110
    @car_dot110 หลายเดือนก่อน

    What IDE are you using? is it Eclipse?

    • @stm32world
      @stm32world หลายเดือนก่อน

      Check the first video in the series, which covers installation and setup as well as hardware needed. It's ST's STM32CubeIDE - which is Eclipse based. The entire series is described here: stm32world.com/wiki/STM32_Getting_Started_Tutorial_Video_Series_(by_STM32World)

  • @ngouanewhoumand1999
    @ngouanewhoumand1999 หลายเดือนก่อน

    Thanks you very much

    • @stm32world
      @stm32world หลายเดือนก่อน

      You are most welcome. Will dig deeper in the following 2-3 videos although I might get bored and squeeze something else in.

  • @stm32world
    @stm32world หลายเดือนก่อน

    As mentioned in this video I considered if this was too basic to be worth a video. However, reasoning that this IS supposed to be a "start from scratch" tutorial series, I decided to post it anyway. Let me know if you want more or less of this.

  • @MR-v1s
    @MR-v1s หลายเดือนก่อน

    Hi Thank you for the tutorial I will try your example as I'm using at32f403a board from weact . it has higher clock speed and larger flash memory . it would be helpful to see tutorials about artery Chips . thanks again

    • @stm32world
      @stm32world หลายเดือนก่อน

      That is interesting. Does STM32CubeIDE and HAL work with those. I have done some work with non-st mcu's - mostly risc-v ones but this particular series of videos is focused on STM32CubeIDE and HAL.

  • @SamIndy2011
    @SamIndy2011 หลายเดือนก่อน

    Great explanation. Your voice is clear so i can follow easily(i'm not a native English) Pls keep making more video's about stm32.

    • @stm32world
      @stm32world หลายเดือนก่อน

      I will continue to make these videos when I have the time. Please continue commenting and ask questions down below.

  • @wwadley
    @wwadley หลายเดือนก่อน

    Using the timer in such a way is quite interesting. I do miss the ability to detect speed of the rotation, though. For me, the state machine plus a timer measuring the time between A and B has been my method. Thank you for an excellent demonstration!

    • @stm32world
      @stm32world หลายเดือนก่อน

      If you watch the video to the end, I enable the input capture interrupt and the callback is executed. Would be quite trivial to establish the speed either by looking at the uwTick OR resetting a faster running timer in that callback. It might even be possible to cascade two timers.

    • @stm32world
      @stm32world หลายเดือนก่อน

      If you run say TIM2 at 1 MHz (prescaler of 83 in this case) you can detect the space between the interrupts on TIM3. Quite simple.

  • @niclash
    @niclash หลายเดือนก่อน

    The reason you didn't see any variables @14:58 is because you managed to pause outside the scope (inside HAL_GetTick()) of those variables that you expected to see. A singlestep or two would have been enough to get back to main() and the variables would have shown.

    • @stm32world
      @stm32world หลายเดือนก่อน

      Yeah that makes sense.

  • @bobby9568
    @bobby9568 หลายเดือนก่อน

    very cool videos

    • @stm32world
      @stm32world หลายเดือนก่อน

      Glad you like them. Good to get some response ;)

  • @niclash
    @niclash หลายเดือนก่อน

    Another small mistake I just noticed; @4:07 PA2 should go to PA1 (Tx -> Rx)

    • @stm32world
      @stm32world หลายเดือนก่อน

      Right - I missed that. Not going to redo the video because of that detail ;) Let it be a learning experience for the viewers.

  • @capistor1
    @capistor1 หลายเดือนก่อน

    Awesome. very helpful. I'm still looking to figuring out my problem with DACs, would you mind sharing your email so that i can share the details with you?

    • @capistor1
      @capistor1 หลายเดือนก่อน

      I've emailed you on stm32world domain.. hope that reaches you.

    • @stm32world
      @stm32world หลายเดือนก่อน

      The Facebook group is probably the best place to ask. Quite active.

    • @capistor1
      @capistor1 หลายเดือนก่อน

      @@stm32world got it. will do.

  • @niclash
    @niclash หลายเดือนก่อน

    I think it is a matter of Registers being used rather than Memory location for loop_cnt. So instead of a "inc" there is a load, inc, store operation.

    • @stm32world
      @stm32world หลายเดือนก่อน

      Yeah - I am quite sure this is the most likely explanation - looking at the assembler code.

  • @tebunia
    @tebunia หลายเดือนก่อน

    I have a hypothesis. When the variable is inside the function and function's memory area is closer to the variable, it only need single instruction to access that variable while in case of global variable, it needs to use 2 more extra instructions, specially when the function code needs to access memory outside of its stack.

    • @stm32world
      @stm32world หลายเดือนก่อน

      It is probably something along that line - except, local variables are allocated on the stack which is towards the top of the memory. This is definitely something I need to figure out - it annoys me I don't understand it and it is definitely worth knowing. I appreciate you taking the time to respond.

    • @capistor1
      @capistor1 หลายเดือนก่อน

      @@stm32world maybe there is something going on with the compiler trying to optimise the stuff but ruins a thing or two... wonder if you try compile a hex with different settings and then see if it is the same?

  • @robincarr111
    @robincarr111 หลายเดือนก่อน

    just a thought. I have seen this type of behaivor before in C# when variables define outside a thread are accessedin thread. There has to be (OLD TERM) the thread in an a box, and accessing outside of the box requires more code to reference the out of box variables, once accessed they have to be reboxed before the program can continue. To test the move all back in the box except for one variable. the time should change just to unbox rebox one variable

    • @stm32world
      @stm32world หลายเดือนก่อน

      Your (NEW TERMS) have me somewhat confused to be honest but I am not overly familiar with C#.

  • @capistor1
    @capistor1 หลายเดือนก่อน

    Awesome stuff!

    • @stm32world
      @stm32world หลายเดือนก่อน

      Glad you enjoyed it

  • @niclash
    @niclash หลายเดือนก่อน

    Small nitpick; @5:51 "A much much better approach..." well, that depends on what you are using serial communications for. For instance, in more stateful protocols (often binary), then it can be a lot easier to do the interrupt-driven approach. And if the bitrate is really low, then the "wait to idle" might be unnecessary long (one full byte out of say (2-10 bytes), if the IRQ routine knows that an "end-of-packet" marker was just sent. "In many cases..." would have been a better wording. ALSO; Kudos on improving sound quality!!!

    • @stm32world
      @stm32world หลายเดือนก่อน

      Well - just to be clear - I do love the nitpicks - that is the ONLY way I can improve this. And yes - I can easily imagine situations where interrupt - or even polling would work fine but I _think_ the vast majority of cases uarts are used it is to receive strings of sorts. So - audio quality if ok-ish now?

    • @niclash
      @niclash หลายเดือนก่อน

      @@stm32world Audio is a magnitude better than previously.

    • @stm32world
      @stm32world หลายเดือนก่อน

      Compression enabled and level boosted

    • @bubaks2
      @bubaks2 หลายเดือนก่อน

      Curious , what software do you use for editing the video/audio?

    • @stm32world
      @stm32world หลายเดือนก่อน

      @@bubaks2 I mentioned in the first video that I _really_ want to do these videos unscripted. I record them with OBS studio and two external cams. I use a noise cancelling Logitech headset for the audio (the noise cancellation is essential as I am sitting about 1 1/2 m from a fan). The audio compression was done inside OBS studio while recording. IF I edit anything I do that in an application called kdenlive, but many of the videos are one shot unedited.

  • @kgopi1336
    @kgopi1336 หลายเดือนก่อน

    How we run a bldc motor with pwm siganle please explain sir the sin look up table how we calculate sir

    • @stm32world
      @stm32world หลายเดือนก่อน

      Running a bldc motor is probably a bit too advanced for half an hour tutorial videos. ST themselves have some pretty detailed application notes covering that topic. I am not sure I understand what you mean by sin look up table? This video does not use a look up table but rather a quick algorithm to calculate individual values.

  • @capistor1
    @capistor1 หลายเดือนก่อน

    This couldn't have been uploaded at a better time. Been having some issues with DAC. I was hoping to trigger the DAC1 that will output triangle wave and look for the completed flag and then increment the DAC2 by value of 1. I was hoping to do this continuously in the background without interfering with processor.. most i have managed to do till now is normal mode and circular mode examples by changing the frequency of triggering but i can't yet do that combination without involving processor too much. Any advice would be appreciated

    • @stm32world
      @stm32world หลายเดือนก่อน

      Well, the DAC of the STM32F4xx MCU I was using in this example can actually do triangle wave without any calculation at all - you just need to feed the frequencies. Let me know if you can make that work - if not I could do a short video on it.

    • @capistor1
      @capistor1 หลายเดือนก่อน

      ​@@stm32world actually that sounds awesome.. i'll try that today.. i'm more worried about triggering the 2nd dac after the completion of the triangule wave.. i'm hoping that i can stop the wave generation somehow with the complete callback and then switching to generation of it again once the 2nd dac is incremented? i'm not sure, i'll give it a go... also i'll record a video of what i'm trying to do. i'm sure you'll love it..

    • @capistor1
      @capistor1 หลายเดือนก่อน

      ​@@stm32world I tried but am unable to work with dma interrupts specifically i'm not sure how to look for interrupt when dac is finished outputting a triangle wave. Also i'm trying to start the triangle wave through built in settings but i'ts not working.. i would appreciate it if you could create a video on how how to enable and look out for transfercomplete interrupts and do some work in the callback.

    • @stm32world
      @stm32world หลายเดือนก่อน

      @@capistor1 I am not sure I understand what it is you want to achieve. If you look at my DAC example I calculate a sine wave. Nothing would prevent you from doing a triangle wave instead - in fact the math is simpler. Then you can trigger whatever you want in that callback once the wave is completed. I can have a look at the triangle generation later, there's quite a lot about it in the reference manual. But right now I am preparing some I2C videos and I need to get them out of the way first ;)

    • @stm32world
      @stm32world หลายเดือนก่อน

      @@capistor1 you might want to have a look at AN3126 here: www.st.com/resource/en/application_note/an3126-audio-and-waveform-generation-using-the-dac-in-stm32-products-stmicroelectronics.pdf

  • @manuelgarciaclavel1865
    @manuelgarciaclavel1865 หลายเดือนก่อน

    Thank you! Very useful, even for a newcomer!

    • @stm32world
      @stm32world หลายเดือนก่อน

      Well, they (the videos) are meant to be useful for newcomers but will get more advanced as we move along ;) I appreciate the comment.

  • @niclash
    @niclash 2 หลายเดือนก่อน

    Instead of double defining things like SAMPLE_FREQ, you can create "User Constants" in CubeMX, assign a value there and then use that constant in both generated initialization code as well as any custom code. Those "User Constants" show up (IIRC) as #defines in main.h

    • @stm32world
      @stm32world 2 หลายเดือนก่อน

      I did that in the last video #14. In this case however, it is a bit more complicated. I guess I _could_ calculate the value from the prescaler and counter values of the timer. But put that down as pure laziness ;)

  • @alexcristian2593
    @alexcristian2593 2 หลายเดือนก่อน

    Thx. I wander if callbacks could be inlined the same way. HAL_ADC_ConvCpltCallback()

    • @stm32world
      @stm32world 2 หลายเดือนก่อน

      Well, IF you ask yourself a question like that, I reckon I have done a pretty good job ;) THAT's the primary purpose of these videos. Now, go ahead and try that and please let me and everybody else know ;) It's a good question.

    • @stm32world
      @stm32world 2 หลายเดือนก่อน

      I just quickly tried with the dac and it made no difference. Need to dig into this a bit further.

  • @niclash
    @niclash 2 หลายเดือนก่อน

    Shouldn't aggressive compiler optimization setting also do this?

    • @stm32world
      @stm32world 2 หลายเดือนก่อน

      That would almost be another video. Try it yourself - the Debug optimization is the fastests - always. -O1 -O2 and even the one that should be the fastests are all slower. I have NOT figured out why and I guess the only way is to analyze the resulting assembler code.

  • @Gaiaochos
    @Gaiaochos 2 หลายเดือนก่อน

    Hi!

    • @stm32world
      @stm32world 2 หลายเดือนก่อน

      Hi

  • @LarsBgildThomsen
    @LarsBgildThomsen 2 หลายเดือนก่อน

    Somewhat interesting discovery.

    • @stm32world
      @stm32world 2 หลายเดือนก่อน

      Yeah

  • @LarsBgildThomsen
    @LarsBgildThomsen 2 หลายเดือนก่อน

    Would be wonderful to see more comments on these videos.

    • @stm32world
      @stm32world 2 หลายเดือนก่อน

      Yeah

  • @LarsBgildThomsen
    @LarsBgildThomsen 2 หลายเดือนก่อน

    Would be wonderful to see more comments on these videos.

  • @LarsBgildThomsen
    @LarsBgildThomsen 2 หลายเดือนก่อน

    Would be wonderful to see more comments on these videos.

  • @LarsBgildThomsen
    @LarsBgildThomsen 2 หลายเดือนก่อน

    Would be wonderful to see more comments on these videos.

  • @LarsBgildThomsen
    @LarsBgildThomsen 2 หลายเดือนก่อน

    Would be wonderful to see more comments on these videos.