![V Develop](/img/default-banner.jpg)
- 27
- 120 560
V Develop
เข้าร่วมเมื่อ 1 ส.ค. 2021
We Develop or VDevelop focuses electronic, embedded and software related project developments.
This channel provides tutorials for beginners and for advanced learners who try to succeed in the mentioned career paths.
We create videos about
✔️Microcontroller tutorials
✔️Embedded Simulation tools
✔️Coding IDE tips
✔️Troubleshooting Embedded Systems
and more
🔴Pls subscribe to our channel and enable notifications for quick updates!
💲Milestones
100 subs : 20-Nov-2022
500 subs :
1k subs :
5k subs :
10k subs :
50k subs :
This channel provides tutorials for beginners and for advanced learners who try to succeed in the mentioned career paths.
We create videos about
✔️Microcontroller tutorials
✔️Embedded Simulation tools
✔️Coding IDE tips
✔️Troubleshooting Embedded Systems
and more
🔴Pls subscribe to our channel and enable notifications for quick updates!
💲Milestones
100 subs : 20-Nov-2022
500 subs :
1k subs :
5k subs :
10k subs :
50k subs :
UART interrupt with user callbacks | STM32 Example | Episode 13
#arm #stm32 #programming
UART interrupts are by default handled by interrupt handlers defined by HAL libraries. But can we create our own handlers to serve these interrupts? Yes. Today's video is about that.
This is a simple introduction project. Possibilities of user callbacks are endless and they're quite popular in several programming platform. We will understand more about callbacks in the upcoming explanation video.
As usual, I'm demonstrating updating the code versions to git using sourcetree. If you would like to learn and understand git, you can also watch the tutorial videos in this channel.
------------------------------------------------
Teraterm Downloads Page
osdn.net/projects/ttssh2/releases/
Code Repo link : github.com/vdevelop/master-your-controller
------------------------------------------------
Contents of this Video
0:00 Intro
0:20 Project Creation and cleanup process
2:24 CubeMX configuration
2:58 Coding
5:09 Project Execution
------------------------------------------------
If you want to build a career in embedded systems and arm platform areas, I've started this video series (Master your controller) and it will teach you all the necessary peripherals associated with microcontrollers. You can consider subscribing to my channel if you like my videos.
------------------------------------------------
You can also watch following videos in this series:
1. Why ARM controllers are so popular?
th-cam.com/video/cD6FHVW0S8k/w-d-xo.html
2. How to blink an LED using STM32 Nucleo Board
th-cam.com/video/Ei0U9lig9E/w-d-xo.html
3. STM32 Push Button Example
th-cam.com/video/ClVKwYSMBao/w-d-xo.html
4. STM32 Clock and Timers Explained with Example (Part 1)
th-cam.com/video/p1ee7gVOl8/w-d-xo.html
5. STM32 Clock and Timers Explained with Example (Part 2)
th-cam.com/video/IUuKN573IRs/w-d-xo.html
6. STM32 Basic Timer Code Explained (Part 1)
th-cam.com/video/wttTxnNb3OU/w-d-xo.html
7. STM32 Basic Timer Code Explained (Part 2)
th-cam.com/video/1WOugAdXwEQ/w-d-xo.html
8. STM32 PWM Generation
th-cam.com/video/Gbwt3g2DVOo/w-d-xo.html
9. STM32 PWM Generation Code Explained
th-cam.com/video/2Qi-PnSp5sQ/w-d-xo.html
10. LED Dimming using PWM
th-cam.com/video/nH59uHj-RI8/w-d-xo.html
11. Code explanation of LED Dimming Project
th-cam.com/video/NV8GNKTPa8Y/w-d-xo.html
12. Setup a github repository
th-cam.com/video/XKLnnXNe_qs/w-d-xo.html
13. Connecting sourcetree to our github account
th-cam.com/video/IZO_7UdvD5o/w-d-xo.html
14. Configure STM32 Controller UART using Polling method
th-cam.com/video/Ce7ZjbE8TzA/w-d-xo.html
------------------------------------------------
Other Topics
1. Integrate Clang Format Styling with Visual Studio Code
th-cam.com/video/rd8-aVc3Krg/w-d-xo.html
2. Integrate Clang Format Styling with IAR Embedded Workbench
th-cam.com/video/oRYvP-5KBMI/w-d-xo.html
3. Enabling Internet in Beaglebone black board
th-cam.com/video/k8XaQnOh83o/w-d-xo.html
4. Generic Logic Analyzer Unboxing
th-cam.com/video/WRqMi32IWW0/w-d-xo.html
5. Evolution of C Programing Language
th-cam.com/video/e8I4Ah2wwFA/w-d-xo.html
UART interrupts are by default handled by interrupt handlers defined by HAL libraries. But can we create our own handlers to serve these interrupts? Yes. Today's video is about that.
This is a simple introduction project. Possibilities of user callbacks are endless and they're quite popular in several programming platform. We will understand more about callbacks in the upcoming explanation video.
As usual, I'm demonstrating updating the code versions to git using sourcetree. If you would like to learn and understand git, you can also watch the tutorial videos in this channel.
------------------------------------------------
Teraterm Downloads Page
osdn.net/projects/ttssh2/releases/
Code Repo link : github.com/vdevelop/master-your-controller
------------------------------------------------
Contents of this Video
0:00 Intro
0:20 Project Creation and cleanup process
2:24 CubeMX configuration
2:58 Coding
5:09 Project Execution
------------------------------------------------
If you want to build a career in embedded systems and arm platform areas, I've started this video series (Master your controller) and it will teach you all the necessary peripherals associated with microcontrollers. You can consider subscribing to my channel if you like my videos.
------------------------------------------------
You can also watch following videos in this series:
1. Why ARM controllers are so popular?
th-cam.com/video/cD6FHVW0S8k/w-d-xo.html
2. How to blink an LED using STM32 Nucleo Board
th-cam.com/video/Ei0U9lig9E/w-d-xo.html
3. STM32 Push Button Example
th-cam.com/video/ClVKwYSMBao/w-d-xo.html
4. STM32 Clock and Timers Explained with Example (Part 1)
th-cam.com/video/p1ee7gVOl8/w-d-xo.html
5. STM32 Clock and Timers Explained with Example (Part 2)
th-cam.com/video/IUuKN573IRs/w-d-xo.html
6. STM32 Basic Timer Code Explained (Part 1)
th-cam.com/video/wttTxnNb3OU/w-d-xo.html
7. STM32 Basic Timer Code Explained (Part 2)
th-cam.com/video/1WOugAdXwEQ/w-d-xo.html
8. STM32 PWM Generation
th-cam.com/video/Gbwt3g2DVOo/w-d-xo.html
9. STM32 PWM Generation Code Explained
th-cam.com/video/2Qi-PnSp5sQ/w-d-xo.html
10. LED Dimming using PWM
th-cam.com/video/nH59uHj-RI8/w-d-xo.html
11. Code explanation of LED Dimming Project
th-cam.com/video/NV8GNKTPa8Y/w-d-xo.html
12. Setup a github repository
th-cam.com/video/XKLnnXNe_qs/w-d-xo.html
13. Connecting sourcetree to our github account
th-cam.com/video/IZO_7UdvD5o/w-d-xo.html
14. Configure STM32 Controller UART using Polling method
th-cam.com/video/Ce7ZjbE8TzA/w-d-xo.html
------------------------------------------------
Other Topics
1. Integrate Clang Format Styling with Visual Studio Code
th-cam.com/video/rd8-aVc3Krg/w-d-xo.html
2. Integrate Clang Format Styling with IAR Embedded Workbench
th-cam.com/video/oRYvP-5KBMI/w-d-xo.html
3. Enabling Internet in Beaglebone black board
th-cam.com/video/k8XaQnOh83o/w-d-xo.html
4. Generic Logic Analyzer Unboxing
th-cam.com/video/WRqMi32IWW0/w-d-xo.html
5. Evolution of C Programing Language
th-cam.com/video/e8I4Ah2wwFA/w-d-xo.html
มุมมอง: 5 370
วีดีโอ
Resolving UART Polling issues with STM32 UART Interrupt | STM32 Example | Episode 12
มุมมอง 2Kปีที่แล้ว
#arm #stm32 #programming We are continuing understanding STM32 Micro controller through simple projects. In the last episode, we discussed about UART Polling feature. But, being the simplest method, UART Polling method has got some major issues. We will see those issues with some example in this video. And we are going to resolve those issues using the interrupt feature of the STM32 microcontro...
How to resolve git merge conflicts using Source tree and Visual Studio Code ?
มุมมอง 14Kปีที่แล้ว
In this video we are discussing on methods used to resolve merge conflicts. First we will discuss about the conventional method using source tree and finally we will see much easier method using popular code IDE Visual Studio Code. Hope you guys will enjoy this! #vdevelop #wedevelop If you want to build a career in embedded systems and arm platform areas, I've started this video series (Master ...
Let's send using UART Polling method | STM32 Project | Episode 11
มุมมอง 1.4K2 ปีที่แล้ว
#arm #stm32 #programming You might be thinking it's quite late to start talking about UART peripheral. But better late than never! We are going to create a simple uart application using polling method. Websites used in this video Teraterm Downloads Page osdn.net/projects/ttssh2/releases/ Code Repo link : github.com/vdevelop/master-your-controller If you want to build a career in embedded system...
How to connect sourcetree to our Github account? | Episode 10 | Part 2
มุมมอง 1.2K2 ปีที่แล้ว
#git #github #programming Using gitbash and remembering all those commands is not everyone's cup of tea. Let's get to know with sourcetree which is a free GUI tool to do all the git operations. This is a continuation of the following video: How to upload our projects into git? th-cam.com/video/XKLnnXNe_qs/w-d-xo.html Websites used in this video Sourcetree Downloads Page www.sourcetreeapp.com/ C...
Let's upload our projects to Git | STM32 Project | Git | Episode 10 | Part 1
มุมมอง 5K2 ปีที่แล้ว
#git #github #programming It is always a better idea to store all of our code into a cloud storage. Today we are going to upload all of the projects we did so far into a popular cloud storage called Github using git. I'm explaining all the steps sequentially for easier understanding. git ignore content: raw.githubusercontent.com/vdevelop/master-your-controller/master/.gitignore Websites used in...
How does PWM control the LED brightness? | STM32 G474 Nucleo | Episode 9
มุมมอง 2.7K2 ปีที่แล้ว
#arm #nucleo #programming In the last video, we have done a project on LED dimmer. Today let's understand how is that happening. We are going to see factors affecting led brightness, role of duty cycle in controlling led brightness, controlling duty cycle using stm32 code etc. The amazing fact is that you don't need an additional LED or any other circuit to do this project. Just your Nucleo boa...
Evolution of C Programming Language in 2 Minutes
มุมมอง 1.9K2 ปีที่แล้ว
Let's walk through the evolution of C Programming Language #vdevelop #wedevelop
LED Dimming using PWM | STM32 G474 Nucleo | Episode 8
มุมมอง 3.4K2 ปีที่แล้ว
#arm #nucleo #programming In last video, we have understood clearly about generating a PWM signal at timer output channels. Today we can do a LED dimming program using the same PWM feature of the stm32 controller. We will be increasing and decreasing (controlling) brightness of the LED on the Nucleo board. The amazing fact is you don't need an additional LED or any other circuit to do this proj...
Understanding PWM Generation | STM32 G474 Nucleo | Episode 7
มุมมอง 1.4K2 ปีที่แล้ว
#arm #pwm #programming We can go through the PWM code developed in the last episode. We will discuss deeply about the PWM functions and functionality to achieve our objective. Code Repo link : github.com/vdevelop/master-your-controller If you want to build a career in embedded systems and arm platform areas, I've started this video series (Master your controller) and it will teach you all the n...
PWM Generation | STM32G474 Nucleo | Episode 6
มุมมอง 1.9K2 ปีที่แล้ว
PWM Generation | STM32G474 Nucleo | Episode 6
GPIO Handling Explained | STM32G474 | Episode 5 | Part 2
มุมมอง 8352 ปีที่แล้ว
GPIO Handling Explained | STM32G474 | Episode 5 | Part 2
Basic Timer Code Explained | STM32G474 | Episode 5 | Part 1
มุมมอง 2.1K2 ปีที่แล้ว
Basic Timer Code Explained | STM32G474 | Episode 5 | Part 1
Clock and Timers Explained with Example | STM32G474 | Timer Interrupts | Episode 4 | Part 2
มุมมอง 7K2 ปีที่แล้ว
Clock and Timers Explained with Example | STM32G474 | Timer Interrupts | Episode 4 | Part 2
Clock and Timers Explained with Example | STM32G474 | Timer Interrupts | Episode 4 | Part 1
มุมมอง 2.8K2 ปีที่แล้ว
Clock and Timers Explained with Example | STM32G474 | Timer Interrupts | Episode 4 | Part 1
Push Button Example | STM32 Cube IDE | GPIO Input | STM32G474 | Episode 3
มุมมอง 4.9K2 ปีที่แล้ว
Push Button Example | STM32 Cube IDE | GPIO Input | STM32G474 | Episode 3
How to blink an LED using STM32 Nucleo Board | ARM Microcontroller | STM32G474 | Episode 2
มุมมอง 5K2 ปีที่แล้ว
How to blink an LED using STM32 Nucleo Board | ARM Microcontroller | STM32G474 | Episode 2
Why ARM Microcontrollers are so popular? | Start to learn microcontroller programming | Episode 1
มุมมอง 2.1K2 ปีที่แล้ว
Why ARM Microcontrollers are so popular? | Start to learn microcontroller programming | Episode 1
Integrate Clang Format Styling with Visual Studio Code | Code formatting
มุมมอง 28K2 ปีที่แล้ว
Integrate Clang Format Styling with Visual Studio Code | Code formatting
Integrate Clang Format Styling with IAR Embedded Workbench | Code formatting
มุมมอง 7772 ปีที่แล้ว
Integrate Clang Format Styling with IAR Embedded Workbench | Code formatting
Enabling Internet in Beaglebone black board | Internet issue solved | Internet over USB
มุมมอง 5K3 ปีที่แล้ว
Enabling Internet in Beaglebone black board | Internet issue solved | Internet over USB
this is incredible, i used the fuction IRQ will generate the callback, but is not correct really? thanks for your contribution!!
Hi, I followed your instructions but still not managed to do it in the last steps. I tried "ping 64.233.169.104" but for some reasons it just kept stuck there. Many packets are transmitted but zero received. And when I try "ping www.google.com", there's an error saying that "Temporary failure in name resolution". What can I do to fix this, thank you.
Hello, I use a Nucleo F103RB, and I have an issue with the debugging/execution phase. Details of clock and choice of prescaler, Counter Period: At the SYSCLK I have 64 MHz, so I have 64 MHz at the HCLK and finally still 64MHz at the APB1 Timer clock, which is used by TIM4. I chose TIM4 in the Pinout & Configuration panel. I check the box for "Internal Clock", because it gives me access to the Parameter Settings, like you in the video for TIM6. There, I put Prescaler at 499. This way, CNT_CLK = 64MHz/(499+1) = 128 000 Hz. Therefore, because ARR= 0.5 * 128 000 = 64 000 < 65535 (maximum at 16bit), I put 499 as prescaler and 64 000 as the Counter Period and I activate auto-reload. Despite all that, and following (I assume correctly) your instructions, putting &htim4 instead of &htim6, et cetera, it does not work! :( I could use the debugger maybe, as you suggested in another comment, but I'm not sure what to check for. One detail about my timers: I don't have a simple "Activated" like you in my Cube IDE. Instead it talks to me about Slave Mode, Trigger Mode, Channel1, 2, 3, 4, et cetera... Please tell me what you think
thx bro
You are welcome
Can you give me your number please
After all the procedure...when I am writting git push -u origin master ...lastly it is showing fatal: the remote end hung up unexpectedly everything upto date...But there are no files showing in my Github account...pls help me🙏🙏🙏
Did you execute git remote add origin....? For more details pls follow this thread stackoverflow.com/questions/15240815/git-fatal-the-remote-end-hung-up-unexpectedly
@@vdevelopab ho gaya ...sayad zyada files ek saath push kar raha tha
Existing repository me kaise push karna hai?
Can you please provide the link to download this excel file?
thanks bro this is exactly what i needed
You're welcome and glad to hear that😊
Hi, Very well explained but how you find the ARR value = time based /Time Periode = 0.01176usec can you please expalin it a little bit ?
It's simple mathematics. Basically we are calculating the number of counts required to generate a 0.5sec time base. Thus it's a simple division of time base with a width of one count period (which is the timer period).
@@vdevelop thanks a lot , one more question can you please make a tutorial on high Resolution timer ?
Man, Your channel is underrated. Your content is Just Awesome. Keep up the good work.
Thanks a lot. Made my day😍
Woww! works like a charm!
Glad to hear that😍
what if i want to use 2 pushbuttons ?
You can go with same approach in configuring the push button as GPIO input. And In this video , I used the polling method to process the button states. You can also try the same for two buttons. Or if you have some other functionalities that is time constraint you can use the help of external interrupts to capture the button press.
I want to know your age.please. are you in 20's or 30's?
its exceptional series. Why dont you make such more videos.
Thank you for your lovely words. I'm in the process of making a new series of videos. Please stay tuned.
thanks it helped alot!! :DDDDDDD
No worries😍
How can I make it stop blinking?. Lets say I want it to blink just 10 times
You can declare a variable (count) inside the loop and If count < 10 <Write blinking code here>
thanks for the help setting up cpp code formatting in vscode using clang format tool.
Really glad to hear that ❤️
would you like to make all this video in our indian (BHARAT HINDI) language. for better understanding Please convert the playlist of stm32 cubeID tutorial in to in Hindi language. By the way, your video is very clear and understandable but in hindi it will be more understandable. reason I am absolutely new for stm32 device. hi this is vinod from Bharat.
sorry but i couldn´t understand nothing of what you are saying
Sorry for that. Could you please let me know the area you're not able to understand, so that I can take a note of that in the coming videos?
Thanks for your contribution. How to set a 500ms delay with this method?
HAL library has built-in delay function HAL_delay(). You can use that to create 500ms delay. If you really want to create a function using timer peripheral, you have to wait until timer is overflow. This tutorial might help you. blog.embeddedexpert.io/?p=1361 If you want to understand more about configuring timer, you can watch this video in this channel. th-cam.com/video/IUuKN573IRs/w-d-xo.html
thanks! super helpful
Thanks 🙌
Very useful video bro, thanks for sharing with us, I searched lot for formatting macros, but could not find solution I use much preprocessor directives and the mess up
Did you get solution to format preprocessor
Did you try this? This is for c++ with clang. I hope it may work for you. stackoverflow.com/questions/24476165/indenting-preprocessor-directives-with-clang-format
I tried it, its not working@@vdevelop
Perfect video.....for learning stm32 projects.👍👍👍 Keep uploading ✌️✌️
Made my day😍
Hi If i want to create my own .clang format file to apply own rule for formatting Then how I supposed to do and what settings needs to be done?
You can watch this video where i'm describing about how to create clang format file. th-cam.com/video/oRYvP-5KBMI/w-d-xo.htmlsi=JsrPGiuiAHOHLmpq
Now do one on how to read an analog voltage. No good videos on that.
Sure
Hi im using the stm32f411re, somehow using the exact code and configuration what happens to me is reverse when i push the button it turns off the led , but when i release the button if turns on
Did you try changing the Gpio mode? Push mode/Pull mode
Merci
de rien
First of all thanks for sharing these videos. Instead of using a constant, I want to use an external analog input to dynamically change the duty-cycle. How works the GPIO/ADC configuration?
In the while loop, get the value from the adc channel and update the duty cycle with this value. Note: Duty cycle is 16bit value. According to the resolution you're getting from ADC, you can make the scaling calculation.
Dear sir Please generate a code Vd Vq two values are given, you can generate abc to Alfa bits and Clark to part transformation SVPWM 6 pulse converter. please do the work and also detail the defile how to set frequency.
Hello i want the led to turn on when i press once and it should not turn off untill i press the push button again
This can be implemented in several ways. One logic is as follows. isPressed = 0 While(1) { If Hal_gpio_pin_state = 1 // use hal gpio pin read function { isPressed = 1 // user has pressed button } else if isPressed { // this block executes only if button is pressed Toggle_gpio_led_pin //use HAL gpio toggle function isPressed = 0 } } Note: please use actual functions and follow syntax for real implementation.
Brother make video timer ekternal interup..thanks
I think you did a great job on this video. What other projects are you going to do with your Nucleo446 board? What made you pick that board? I have a few boards I picked one with a lot of timers and one with multiple uarts. I have a stm32f103re it’s like the blue pill but it’s a real board. I made a dtmf decoder for ham radio. I like to build that project to learn on a new microcontroller. Take care
Thanks a lot ❤️.. I've used the G474 series. This is a little bit advanced board. I selected this board to do some power applications. Stm32f103 is really a great board to start. All the very best! I'll be posting new contents soon. Stay tuned and thanks for your support!
Good day, If possible kindly post one video for HRTIM based buck converter. Thank you
Hi, This is video is worth watching. Could you please help me out how to stop the timer interrupt. The Led is continuously blinking. I want to stop the blinking after few mins.
Thanks. One of the simple way of doing this feature is as follows. 1. Implement a static counter variable in the main.c 2. Increment this variable in the period_elapsed callback function 3. monitor value of this variable, and execute toggling action according to this value Recommended way Create a millisecond counter(global static) at the timer interrupt handler (I've not explained this in the video) and apply toggle action according to this value. 2.
I have done everything same but the led in not blinking I have Nucleo F446RE I have the clock frequency to 170 and rest everything is same as per video I didn't what the error is and how to debug it Hoping for positive response !
Hi Sairaj, sorry for the delay in response. Can you please check if the program goes inside HAL_TIM_PeriodElapsedCallback (@main.c)? You can debug through the pgm by putting a breakpoint inside that function.
@@vdevelop how to debug can you share your video of debugging
How did you get suggestions for writing commands like Timestamp= 3:50
You mean auto fill suggestions?
Very interesting. 😎 Thank you. Rockchip Electronics RK3588 8nm process, quad-core Cortex-A76 + quad-core Cortex-A55 is very popular.
Thanks😍
This is a wonderful PWM video. I am trying to setup the [Orange Pi 5 8GB Rockchip RK3588S 8-Core 64 Bit Single Board Computer] PWM pins to run a Pan/Tilt servo example. Do you have any suggestions on setting up the OPi.GPIO PWM code or a video? I keep getting error messages. Thank you.
I'm really sorry for the late response. I haven't worked on a SBC for pwm generation. Just went through this article. Maybe helping you. neonaut.neocities.org/blog/2018/orange-pi-pulse-width-modulation
@@vdevelop Thank you.
Thanks for you explanation. Just one remark for newbees like me. Your callback function is not at the correct position. User code should allways be between a USER CODE BEGIN and a corresponding USER CODE END, otherwise you'll loose your code the next time you make changes in CubeMX. In this situation, I would suggest: /* USER CODE BEGIN 4 */ void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) { HAL_GPIO_TogglePin(LED_RED_GPIO_Port, LED_RED_Pin); } /* USER CODE END 4 */
Exactly, you're correct. I've mentioned this in the latest video i've posted.
Awesome explanation thanks a lot 😊
Glad to hear that!
Please continue the stm32 series
Sure. It will come soon!
But mine is still not getting connected
Sorry to hear that. If possible please try the steps once again. Or if you are ready to lose the data you can do a reset and fresh OS installation and try these steps. Unfortunately I don't have a bbb with me right now so that I would've troubleshooted your issue.
@@vdevelop Now I'm using a tplink dongle.
PLEASE MAKE MORE VIDEOS LIKE THIS
Love it ❤
Thanks ❤️
Well done thank you
You're welcome.. Thanks for the appreciation ❤️
Hey bro need code without generating code bro ..?
Pls make it clear. Are you asking baremetal program?
@@vdevelop no bro when we are opening project its asking Targeted Project Type option a. STM32CUBE option b.Empty here iam giving empty we want to manual code do u have that code bro .?
Hi, I would be really thankfull for baremetal program :)
how is it showing 99% c language , all my stm32 projects show that the major language is assembly
Can you please specify the time in the video which has your query?
Can you also put a video on implementing this on controlling dc motors?
Yes. I'll try to post that👍
@@vdevelop Can you tell me why have you enabled the auto-reload preload ? Cant PWM pulse be generated by simply inserting PSC/ ARR values?
Have you implemented the same concept in controlling a motor?
Sorry, I've not done that.
How to the read the status of push button using freertos?
There is a limitation to explain that deeply here. The following article will give you an insight on that. open4tech.com/freertos-led-blinking-and-button-polling/