Serial UART with STM32 Microcontroller-Transmit and Receive Data
Ғылым және технология
Learn how to use Serial UART with STM32 Microcontroller. We’ll transmit and receive data between STM32 Nucleo board and computers serial port. The Serial UART or USART protocol is used to interface external devices with microcontroller.
[SUPPORT]
►► Try the world's most trusted PCB design software, Altium Designer with 365, for free and 25% off your purchase: www.altium.com/yt/binaryupdates
►► Free search engine for the best quality components from Octopart: octopart.com/
►► Learn about Altium 365, the electronics product design platform that unites PCB design, MCAD, data management, and teamwork: www.altium.com/altium-365
[RESOURCES]
►► Need Help? To Learn Embedded Systems: courses.binaryupdates.com
►► ADC STM32 Tutorial: • How to use ADC in STM3...
[TIMESTAMPS]
00:00 Introduction
00:15 Altium Free Trial
00:38 Create STM32 Project
01:09 Uart and Usart explanation
01:52 Configure uart in stm32
03:32 Generate code
05:07 Transmit UART Program
07:45 Configure PuTTY
10:40 Receive UART Program
15:28 Control LED UART code
18:20 Control LED from PuTTY
18:30 Outro
Пікірлер: 64
Very clear thanks man couldn't figure out receives
why i cant type anything in puTTy or RealTerm .....I am using stm32f0discovery board and TTL .can anyone help me?
dear sir, can we use the way like 8:45 to display a value like "value of DHT11" on serial terminal use UART ? i am trying to do this but i not sure about the type of data
from where u added LED ON in function in Rx cplt call back code on main program sir
This video was really helpful to help me with this homework but I am stuck. Would you be able to help me with the homework problem? The data will consist of ASCII characters (the contents of text files). The IOT board will convert each character received into its two-character hex-ASCII value, and echo those back to the PC. Both Rx and Tx data on the IOT board are to be buffered with ring buffers in order to maximize throughput, and XON/XOFF flow control signals to the PC will be used by the IOT board to modulate the rate of received data.
Interrupt call back function should be small right ..
really good presentation, thanks for that.
@BINARYUPDATES
Жыл бұрын
Hi Burak, Glad you enjoyed it! I'll be making more videos on STM32 Microcontroller programming in a days to come. Thanks and have a good day. Best wishes!
The second and third part of your code is not working in my pc. what is the solution ?
LED ON OFF through UART I have same type copy in our code but not working LED ON but extra character comes and when type LED OFF and then enter not off pls help me
Would be great if you may also explain handling of UART with LL drivers. What flag and functions need to be set/called for data transmission?
@BINARYUPDATES
7 ай бұрын
Hi Engineercorleone, once I complete STM32 HAL tutorial series. I'll start making bare-metal microcontroller programming to show LL driver development for STM32 MCU. Thanks for the suggestions. Best wishes!
Good Job thenks
Bom video amigo: onde esta no codigo (linha) o led-off ?
How To use the web cam in laptop to uart with stm32 nucleo h563zi for the predicted class by garbage segregation in trained model I have the trained model in .tflite,how to implement?
helpful video, tysm
what is a weak function , do to teach how to write the code from scratch without autogeneration
Good explained
@BINARYUPDATES
9 ай бұрын
Thank you so much! I'm happy you find this STM32 UART video useful. Good luck and best wishes!
Great video. Thank you for sharing.
@BINARYUPDATES
6 ай бұрын
Hi Dennis, thanks you so much. Best wishes!
Well explained
@BINARYUPDATES
Жыл бұрын
Thank you Mohamed, I hope you enjoyed UART with STM32 Microcontroller. Good luck and best wishes!
very helpful. Thank you.
@BINARYUPDATES
Жыл бұрын
Hey Faisal, thank you for your words. I'm glad to know you found this Serial UART communication with STM32 Microcontroller lesson useful. I wish you good luck and best wishes!
@faisal32ful
Жыл бұрын
Thank you@@BINARYUPDATES
Very good 🌍 bem bacana
I am interested in the huart being assigned to instance and the index loop. Did you not want to explain that because its not relevant basically? Please explain?
@BINARYUPDATES
Жыл бұрын
Hi, huart is UART handle which is a part of HAL API from STMicroelectronics. Since, i used STM32 HAL approach instead of bare-metal, for this UART lesson. I decided to show use of UART over explaining built in API and its parameters. But I'll surely consider making videos on this topics in future. Otherwise, this lesson will be very long just to show send and receive data. I hope you understand. Thanks!
Very very good
@BINARYUPDATES
Жыл бұрын
Hi Sudheer, thank you!
It helps me a lot, thank you, sir! And may I ask you some questions? 1. Currently I am studying to program the STM32F405R6T6, so does it have the same code as stm32f446re? 2. Beside the serial UART, I want to add 2 CAN protocols to the stm32, and I want to program to transmit the data from UART to stm32 to CAN1 to CAN2 and the opposite way, and I'm struggling for how to transmit the data from stm32 to CAN1, may you provide me some clues? Thank you!
@BINARYUPDATES
7 ай бұрын
Hi Dienau, thank you! The program for STM32F405R6T6 will be same as STM32F446RE as its been covered in video. They both inherit the same family of STM32. I'll try to cover CAN Protocol video lesson as early as possible. As its been very busy because of my projects. I hope will find time. Good luck for your project and best wishes!
So at 14:40 are we supposed to press enter after typing a string? In my setup it sometimes shows and sometimes it doesn't, then again stops responding even after pressing RESET button on the board. And how do I add when I am using a variable like rx_data instead of a plain string?
@RakeshWasnik-EmbeddedSystems
11 ай бұрын
I noticed that in my PuTTY (I am using Windows and Nucleo F767ZI) When I am sending data from the Board to the Laptop using infinite loop, its properly working, but when I type in PuTTY, I am not sure when is it receives and when it transmits back the same data (rx_data) but I have to press > button (right arrow key). Then the data appears on the PuTTY terminal. I don't know what's wrong, maybe I should try using some other serial terminal.
@BINARYUPDATES
11 ай бұрын
Hi Rakesh, as likely you've pointed out. Its an issue caused by Serial Terminal Software. Especially when you write from microcontroller to your laptop over UART communication. If you want to know more then check the configuration of putty. I mean once you open PuTTY on left pane find TERMINAL > KEYBOARD check parameters and play with them. I suggest use other Serial terminal program like Tera Term or something similar. Please note its not an issue with your STM32 Microcontroller program. I hope you enjoyed this video lesson. I'll be adding more lesson along with advance STM32 projects in future. Have a good day. Best wishes!
Nice video... But why did you define your message string as uint_8 instead of char? And why it still worked?
@BINARYUPDATES
10 ай бұрын
Thank you Mr. DP! Good question. The point is uint8_t is an 8-bit integer and char is also of size 1 byte, since1 byte is 8-bit in size. And STM32Cube HAL API handle 8-bit integer pretty neatly so I used integer instead char type. But, I'll be making videos in future to show exact correlation of sending char and string using Serial UART. Thank you for your input and video idea. Have a beautiful day, Best wishes!
well explained! I have a question, where Can I found this informations ? (like book or some documentation)
@BINARYUPDATES
11 ай бұрын
Hi Labegm, Thank you and happy to know you found this Serial UART tutorial useful. Usually, I refer STM32 HAL Documentation while writing code for STM32F4 Microcontroller. If I remember correctly, the user manual is UM1725 - Rev 8. Just search online and you'll find it. Good luck and best wishes!
I got 2 square with question mark in front of the tx buffer printout in the console. what is the problem?
@BINARYUPDATES
11 ай бұрын
Please check if your uart Baud Rate Setting is correct in PuTTY Serial terminal software. Usually, this caused by baud rate mismatched between microcontroller program and serial terminal software. I hope this may help you. Good luck and best wishes!
Thanks for the video! Could you update the video description with the code or a link to github?
@BINARYUPDATES
9 ай бұрын
Hi Codewarrior, I'll soon add links to the code once iI complete this STM32 Microcontroller Programming series. Due to lack of time I couldn't manage right now. I hope you understand. Thanking you!
Hello, I just started STM32 Development and am getting the error, Target not responding while uploading the code. Could you please help me with a possible solution?
@BINARYUPDATES
10 ай бұрын
HI Nikhil, to resolve this error. You must upgrade the firmware running on your STM32 microcontroller. To do this, open STM32Cube IDE --> go to Help on too menu bar --> Select ST-Link Upgrade --> Select your STM32 Nucleo board and then --> Click on Upgrade button. And you're done! This is how you can upgrade firmware on STM32 Board. Good luck and best wishes!
Which type of USB cable is required to connect STM 32 F446RE with my laptop??
@BINARYUPDATES
25 күн бұрын
Mini USB cable will work STM32F446RE nucleo board
9:58 is the transfer_cplt variable ever used in this video?
@BINARYUPDATES
8 ай бұрын
Hi, this variable "transfer_cplt" is used at line number 233 and under void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart). It's flag that keep track of serial data transfer over UART when STM32 send data to computer using serial UART. I hope this may help you. Thanks and best wishes!
if(rx_data[0] !=13) { rx_buffer[rx_indx++]=rx_data[0]; } what is the meaning of 13 use in if statement ? for detect "Enter"
@computertuts623
7 ай бұрын
Any article on ASCII will tell you it's the ASCII code for carriage return, such as: 13 015 0D 00001101 CR Carriage Return
where to download the driver please give me the source to download it. In the ST website i didn't find the driver 😐😐
@BINARYUPDATES
11 ай бұрын
Hi SaiKumar, you should update ST Link drivers right from STM32CubeIDE Software. I suggest you to find tab HELP and then choose ST-LINK Upgrade. This opens up dialog box there it automatically select latest drivers and just hit UPGRADE button. And you're done. I hope this will find useful to upgrade firmware for STM32 Microcontroller board. Good luck and best wishes!
I have one doubt here Use are using int data type to store string
@BINARYUPDATES
11 ай бұрын
Hi Bhupender, In this example I've covered to sending string over UART. And used integer variable. You can also consider using char for storing characters. As in the end, string is made up of characters. The code makes easy with int as it shown. its all depends on use case. Wish you good time!
How to set baud rate for Rx function
@BINARYUPDATES
11 ай бұрын
Hi Karthik, I suggest setting up the baud rate while configuring UART peripheral in STM32CubeIDE. This can be a process while creating new STM32 project. And also when we configure peripherals. The baud rate for transmission and receiving would be same. I hope this may be useful. Good luck and best wishes!
My STlink does not has COM. how could I fix that.
@macitizm
9 ай бұрын
i have same problem. if you solve that please commend me
@BINARYUPDATES
9 ай бұрын
Please make sure ST-Link drivers are installed properly while installing STM32Cube IDE. Otherwise you can manually install or upgrade drivers from IDE. Just go to Help in top menu bar and then select "STLink Upgrade". And then select right version and upgrade. I hope this may resolve issue.Otherwise just reinstall IDE. Good luck and best wishes!
I am unable to see any messaged in putty
@BINARYUPDATES
Жыл бұрын
Hi, please check your PuTTY configuration especially Baud Rate settings. Wish you good luck and best wishes!
@shahafyehuda472
7 ай бұрын
me neither, did you figure this out?