Serial UART with STM32 Microcontroller-Transmit and Receive Data

แชร์
ฝัง
  • เผยแพร่เมื่อ 4 มิ.ย. 2024
  • 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
  • วิทยาศาสตร์และเทคโนโลยี

ความคิดเห็น • 58

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

    really good presentation, thanks for that.

    • @BINARYUPDATES
      @BINARYUPDATES  10 หลายเดือนก่อน +1

      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!

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

    Great video. Thank you for sharing.

    • @BINARYUPDATES
      @BINARYUPDATES  4 หลายเดือนก่อน +1

      Hi Dennis, thanks you so much. Best wishes!

  • @ernozblr1318
    @ernozblr1318 6 หลายเดือนก่อน +1

    Good Job thenks

  • @Engineercorleone
    @Engineercorleone 6 หลายเดือนก่อน +2

    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
      @BINARYUPDATES  5 หลายเดือนก่อน +2

      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!

  • @p.kaikieu4796
    @p.kaikieu4796 2 หลายเดือนก่อน

    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

  • @user-fm9vj8wy6z
    @user-fm9vj8wy6z 8 หลายเดือนก่อน +1

    Good explained

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

      Thank you so much! I'm happy you find this STM32 UART video useful. Good luck and best wishes!

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

    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.

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

    Well explained

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

      Thank you Mohamed, I hope you enjoyed UART with STM32 Microcontroller. Good luck and best wishes!

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

    very helpful. Thank you.

    • @BINARYUPDATES
      @BINARYUPDATES  11 หลายเดือนก่อน +1

      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
      @faisal32ful 11 หลายเดือนก่อน

      Thank you@@BINARYUPDATES

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

    Which type of USB cable is required to connect STM 32 F446RE with my laptop??

  • @sudheerkumar5966
    @sudheerkumar5966 ปีที่แล้ว +1

    Very very good

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

    Bom video amigo: onde esta no codigo (linha) o led-off ?

  • @aperture.soccer
    @aperture.soccer 3 หลายเดือนก่อน +2

    Very good 🌍 bem bacana

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

    Interrupt call back function should be small right ..

  • @dienau6313
    @dienau6313 6 หลายเดือนก่อน +1

    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
      @BINARYUPDATES  6 หลายเดือนก่อน +1

      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!

  • @user-xm7sl8ij4p
    @user-xm7sl8ij4p 6 หลายเดือนก่อน

    The second and third part of your code is not working in my pc. what is the solution ?

  • @user-bf9hj2qt8z
    @user-bf9hj2qt8z 2 หลายเดือนก่อน +1

    why i cant type anything in puTTy or RealTerm .....I am using stm32f0discovery board and TTL .can anyone help me?

  • @MrDp9000
    @MrDp9000 9 หลายเดือนก่อน +1

    Nice video...
    But why did you define your message string as uint_8 instead of char? And why it still worked?

    • @BINARYUPDATES
      @BINARYUPDATES  9 หลายเดือนก่อน +1

      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!

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

    well explained!
    I have a question, where Can I found this informations ? (like book or some documentation)

    • @BINARYUPDATES
      @BINARYUPDATES  10 หลายเดือนก่อน +2

      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!

  • @demographicreplacement539
    @demographicreplacement539 ปีที่แล้ว +1

    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
      @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!

  • @RakeshWasnik-EmbeddedSystems
    @RakeshWasnik-EmbeddedSystems 9 หลายเดือนก่อน

    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
      @RakeshWasnik-EmbeddedSystems 9 หลายเดือนก่อน +1

      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
      @BINARYUPDATES  9 หลายเดือนก่อน +2

      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!

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

    what is a weak function , do to teach how to write the code from scratch without autogeneration

  • @codewarrior7072
    @codewarrior7072 7 หลายเดือนก่อน +1

    Thanks for the video! Could you update the video description with the code or a link to github?

    • @BINARYUPDATES
      @BINARYUPDATES  7 หลายเดือนก่อน +1

      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!

  • @kailimedia
    @kailimedia 9 หลายเดือนก่อน +1

    I got 2 square with question mark in front of the tx buffer printout in the console. what is the problem?

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

      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!

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

    9:58 is the transfer_cplt variable ever used in this video?

    • @BINARYUPDATES
      @BINARYUPDATES  7 หลายเดือนก่อน +1

      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!

  • @nikhilshejwal-ll8fw
    @nikhilshejwal-ll8fw 9 หลายเดือนก่อน +1

    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
      @BINARYUPDATES  9 หลายเดือนก่อน

      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!

  • @bhupendersingh2604
    @bhupendersingh2604 10 หลายเดือนก่อน +1

    I have one doubt here
    Use are using int data type to store string

    • @BINARYUPDATES
      @BINARYUPDATES  10 หลายเดือนก่อน +1

      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!

  • @SaiKumar-hv3qd
    @SaiKumar-hv3qd 10 หลายเดือนก่อน +1

    where to download the driver
    please give me the source to download it. In the ST website i didn't find the driver 😐😐

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

      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!

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

    How to set baud rate for Rx function

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

      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!

  • @davinlim5326
    @davinlim5326 8 หลายเดือนก่อน +1

    My STlink does not has COM. how could I fix that.

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

      i have same problem. if you solve that please commend me

    • @BINARYUPDATES
      @BINARYUPDATES  7 หลายเดือนก่อน +1

      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!

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

    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
      @computertuts623 6 หลายเดือนก่อน

      Any article on ASCII will tell you it's the ASCII code for carriage return, such as: 13
      015 0D 00001101 CR Carriage Return

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

    I am unable to see any messaged in putty

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

      Hi, please check your PuTTY configuration especially Baud Rate settings. Wish you good luck and best wishes!

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

      me neither, did you figure this out?