{"id":5228,"date":"2021-02-27T06:37:49","date_gmt":"2021-02-27T06:37:49","guid":{"rendered":"http:\/\/fastbitlab.com\/?p=5228"},"modified":"2022-11-24T12:41:41","modified_gmt":"2022-11-24T07:11:41","slug":"stm32-uart-lecture-10-uart-receiver","status":"publish","type":"post","link":"https:\/\/fastbitlab.com\/blog\/stm32-uart-lecture-10-uart-receiver\/","title":{"rendered":"STM32 UART Lecture 10 &#8211; UART Receiver"},"content":{"rendered":"<div class=\"boldgrid-section\" style=\"background-image: linear-gradient(to left, #eeeeee, #eeeeee);\" data-bg-color-1=\"#EEEEEE\" data-bg-color-2=\"#EEEEEE\" data-bg-direction=\"to left\">\n<div class=\"container\">\n<div class=\"row\" style=\"padding-top: 25px; padding-bottom: 0px; background-image: linear-gradient(to left, #eeeeee, #eeeeee);\" data-bg-color-1=\"#EEEEEE\" data-bg-color-2=\"#EEEEEE\" data-bg-direction=\"to left\">\n<div class=\"col-md-1 col-sm-12 col-xs-12 col-lg-1\">\n<p>&nbsp;<\/p>\n<\/div>\n<div class=\"col-md-10 col-sm-12 col-xs-12 col-lg-10\">\n<h1 class=\"\" style=\"text-align: center; font-size: 35px; border-width: 0px; line-height: 49px;\"><span style=\"color: #000080;\">UART&nbsp;Receiver<\/span><\/h1>\n<div class=\"row bg-editor-hr-wrap\" style=\"border-width: 0px; margin-top: -25px;\">\n<div class=\"col-lg-12 col-md-12 col-xs-12 col-sm-12\">\n<div>\n<p>&nbsp;<\/p>\n<div class=\"bg-hr bg-hr-10 color2-color\" style=\"border-style: solid; border-width: 0px 0px 3px;\"><\/div>\n<p>&nbsp;<\/p>\n<\/div>\n<\/div>\n<\/div>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"font-weight: 400; color: #000000;\">During a UART reception, the data shifts in least-significant bit through their RX pin to the receive data register via the shift register, as shown in Figure 1. The heart of the receiver is the receive shift register, where the serial sequence is converted to a parallel word.<\/span><\/p>\n<figure id=\"attachment_5231\" aria-describedby=\"caption-attachment-5231\" style=\"width: 744px\" class=\"wp-caption aligncenter\"><img fetchpriority=\"high\" decoding=\"async\" class=\"wp-image-5231\" src=\"http:\/\/fastbitlab.com\/wp-content\/uploads\/2021\/02\/Figure-1-13.png\" alt=\"UART&nbsp;Receiver\" width=\"744\" height=\"346\" srcset=\"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-1-13.png 1485w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-1-13-300x140.png 300w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-1-13-768x357.png 768w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-1-13-1024x476.png 1024w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-1-13-600x279.png 600w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-1-13-120x56.png 120w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-1-13-500x233.png 500w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-1-13-200x93.png 200w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-1-13-400x186.png 400w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-1-13-800x372.png 800w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-1-13-1200x558.png 1200w\" sizes=\"(max-width: 744px) 100vw, 744px\" \/><figcaption id=\"caption-attachment-5231\" class=\"wp-caption-text\"><span style=\"color: #000000;\">Figure 1. Data shifting through the RX pin.<\/span><\/figcaption><\/figure>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"font-weight: 400; color: #000000;\">After sampling the RX pin for the STOP bit, the received data bits in the shift register are transferred to the receive data register or RDR.<\/span><\/p>\n<p class=\"\">&nbsp;<\/p>\n<p class=\"\" style=\"font-size: 25px; border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; line-height: 35px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"text-decoration: underline; color: #000080;\"><b>Steps for UART data reception:<\/b><\/span><\/p>\n<p class=\"\" style=\"padding-left: 30px; margin-left: -15px; border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"font-weight: 400; color: #000000;\">1. Program the M bit in the USART_CR1 to define the word length. Both transmitter and receiver must agree upon this word length.<\/span><\/p>\n<p class=\"\" style=\"padding-left: 30px; margin-left: -15px; border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000000;\">2.&nbsp;<span style=\"font-weight: 400;\">Program the number of STOP bits in the USART_CR2 register.<\/span><\/span><\/p>\n<p class=\"\" style=\"padding-left: 30px; margin-left: -15px; border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000000;\">3.&nbsp;<span style=\"font-weight: 400;\">Select the desired baud rate using the USART_BRR register. The baud rate of your transmitter and receiver must be the same.<\/span><\/span><\/p>\n<p class=\"\" style=\"padding-left: 30px; margin-left: -15px; border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000000;\">4.&nbsp;<span style=\"font-weight: 400;\">Enable the USART by writing the UE bit in USART_CR1 register to 1.<\/span><\/span><\/p>\n<p class=\"\" style=\"padding-left: 30px; margin-left: -15px; border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000000;\">5.&nbsp;<span style=\"font-weight: 400;\">Set the RE bit in the USART_CR1 register, which enables the receiver block of the USART peripheral. Once the receiver block is enabled, it starts searching for the START bit.<\/span><\/span><\/p>\n<p class=\"\" style=\"padding-left: 30px; margin-left: -15px; border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000000;\">6.&nbsp;<span style=\"font-weight: 400;\">When the character is received, wait until the RXNE bit is set. If the RXNE bit is set, it indicates that the shift register&#8217;s content is transferred to the read data register. In other words, the data has been received and can be read by the software. Instead of polling on the RXNE flag, you can also get an interrupt whenever the RXNE flag is set. For that, you have to enable the RXNEIE control bit in the control register.<\/span><\/span><\/p>\n<p class=\"\" style=\"padding-left: 30px; margin-left: -15px; border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000000;\">7.&nbsp;<span style=\"font-weight: 400;\">Clearing the RXNE bit is performed by the software read to the USART data register. The RXNE bit must be cleared by reading the data register before the end of the reception of the next character to avoid an overrun error.&nbsp;<\/span><\/span><\/p>\n<p class=\"\" style=\"padding-left: 30px; margin-left: -15px; border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"font-weight: 400; color: #000000;\">The timing diagram in Figure 2 shows how typically the reception takes place. When you enable the receiver block of the USART by enabling RE bit in the control register, the receiver engine starts sampling the RX pin to detect the START bit. When it detects the START bit, the reception begins, and when it detects the STOP bit, the reception of one frame completes.<\/span><\/p>\n<p class=\"\">&nbsp;<\/p>\n<figure id=\"attachment_5238\" aria-describedby=\"caption-attachment-5238\" style=\"width: 744px\" class=\"wp-caption aligncenter\"><img decoding=\"async\" class=\"wp-image-5238\" src=\"http:\/\/fastbitlab.com\/wp-content\/uploads\/2021\/02\/Figure-2-9.png\" alt=\"UART&nbsp;Receiver\" width=\"744\" height=\"400\" srcset=\"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-2-9.png 1919w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-2-9-300x161.png 300w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-2-9-768x413.png 768w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-2-9-1024x550.png 1024w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-2-9-600x322.png 600w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-2-9-120x64.png 120w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-2-9-500x269.png 500w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-2-9-200x107.png 200w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-2-9-400x215.png 400w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-2-9-800x430.png 800w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-2-9-1200x645.png 1200w\" sizes=\"(max-width: 744px) 100vw, 744px\" \/><figcaption id=\"caption-attachment-5238\" class=\"wp-caption-text\"><span style=\"color: #000000;\">Figure 2. Timing diagram for data reception.<\/span><\/figcaption><\/figure>\n<p class=\"\">&nbsp;<\/p>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"font-weight: 400; color: #000000;\">After that, the data in the shift register will be loaded to read the data register (Figure 3), and the RXNE flag will be set. When the RXNE flag is set, it is sure that data is ready to read from the data register.<\/span><\/p>\n<figure id=\"attachment_5242\" aria-describedby=\"caption-attachment-5242\" style=\"width: 744px\" class=\"wp-caption aligncenter\"><img decoding=\"async\" class=\"wp-image-5242\" src=\"http:\/\/fastbitlab.com\/wp-content\/uploads\/2021\/02\/Figure-3-8.png\" alt=\"UART&nbsp;Receiver\" width=\"744\" height=\"342\" srcset=\"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-3-8.png 1917w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-3-8-300x138.png 300w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-3-8-768x353.png 768w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-3-8-1024x471.png 1024w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-3-8-600x276.png 600w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-3-8-120x55.png 120w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-3-8-500x230.png 500w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-3-8-200x92.png 200w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-3-8-400x184.png 400w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-3-8-800x368.png 800w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-3-8-1200x551.png 1200w\" sizes=\"(max-width: 744px) 100vw, 744px\" \/><figcaption id=\"caption-attachment-5242\" class=\"wp-caption-text\"><span style=\"color: #000000;\">Figure 3. Loading data into the read data register from the shift register.<\/span><\/figcaption><\/figure>\n<p class=\"\">&nbsp;<\/p>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"font-weight: 400; color: #000000;\">The software can then read out the data register (Figure 4), which also clears out the RXNE flag that was set.<\/span><\/p>\n<figure id=\"attachment_5243\" aria-describedby=\"caption-attachment-5243\" style=\"width: 744px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-5243\" src=\"http:\/\/fastbitlab.com\/wp-content\/uploads\/2021\/02\/Figure-4-4.png\" alt=\"Reading data from the data register.\" width=\"744\" height=\"395\" srcset=\"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-4-4.png 1901w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-4-4-300x159.png 300w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-4-4-768x408.png 768w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-4-4-1024x544.png 1024w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-4-4-600x318.png 600w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-4-4-120x64.png 120w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-4-4-500x265.png 500w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-4-4-200x106.png 200w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-4-4-400x212.png 400w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-4-4-800x425.png 800w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-4-4-1200x637.png 1200w\" sizes=\"(max-width: 744px) 100vw, 744px\" \/><figcaption id=\"caption-attachment-5243\" class=\"wp-caption-text\"><span style=\"color: #000000;\">Figure 4. Reading data from the data register.<\/span><\/figcaption><\/figure>\n<p>&nbsp;<\/p>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"font-weight: 400; color: #000000;\">Like that, for every complete frame reception, the RXNE flag will be set, and firmware has to read it (Figure 5).<\/span><\/p>\n<figure id=\"attachment_5244\" aria-describedby=\"caption-attachment-5244\" style=\"width: 744px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-5244\" src=\"http:\/\/fastbitlab.com\/wp-content\/uploads\/2021\/02\/Figure-5-4.png\" alt=\"Figure 5. Timing diagram for data reception \" width=\"744\" height=\"400\" srcset=\"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-5-4.png 1903w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-5-4-300x161.png 300w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-5-4-768x413.png 768w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-5-4-1024x550.png 1024w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-5-4-600x323.png 600w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-5-4-120x65.png 120w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-5-4-500x269.png 500w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-5-4-200x108.png 200w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-5-4-400x215.png 400w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-5-4-800x430.png 800w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-5-4-1200x645.png 1200w\" sizes=\"(max-width: 744px) 100vw, 744px\" \/><figcaption id=\"caption-attachment-5244\" class=\"wp-caption-text\"><span style=\"color: #000000;\">Figure 5. Timing diagram for data reception (more than one frame). <\/span><\/figcaption><\/figure>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"font-weight: 400; color: #000000;\">When there is no more data, the line will be held high, which is the idle state of the line (Figure 5). The receiver block of the UART peripheral will keep sampling the RX line to detect the next START bit, even if there is no data on the RX line, which surely consumes power. Therefore, after you are done with RXing of data, it\u2019s always better to turn off the receiver block as per your need if you want to save some power.<\/span><\/p>\n<p class=\"\">&nbsp;<\/p>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 20px; line-height: 27px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000080;\"><b>FastBit Embedded Brain Academy Courses<\/b><\/span><\/p>\n<p class=\"\" style=\"border-width: 0px; font-size: 17px;\">Click here:&nbsp;<span style=\"color: #0000ff;\"><a style=\"color: #0000ff;\" href=\"http:\/\/fastbitlab.com\/course1\" target=\"_blank\" rel=\"noopener\">https:\/\/fastbitlab.com\/course1<\/a><\/span><\/p>\n<p class=\"\">&nbsp;<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>&nbsp; UART&nbsp;Receiver &nbsp; &nbsp; During a UART reception, the data shifts in least-significant bit through their RX pin to the receive data register via the shift register, as shown in Figure 1. The heart of the receiver is the receive shift register, where the serial sequence is converted to a parallel word. After sampling the [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":5231,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ocean_post_layout":"","ocean_both_sidebars_style":"","ocean_both_sidebars_content_width":0,"ocean_both_sidebars_sidebars_width":0,"ocean_sidebar":"0","ocean_second_sidebar":"0","ocean_disable_margins":"enable","ocean_add_body_class":"","ocean_shortcode_before_top_bar":"","ocean_shortcode_after_top_bar":"","ocean_shortcode_before_header":"","ocean_shortcode_after_header":"","ocean_has_shortcode":"","ocean_shortcode_after_title":"","ocean_shortcode_before_footer_widgets":"","ocean_shortcode_after_footer_widgets":"","ocean_shortcode_before_footer_bottom":"","ocean_shortcode_after_footer_bottom":"","ocean_display_top_bar":"default","ocean_display_header":"default","ocean_header_style":"","ocean_center_header_left_menu":"0","ocean_custom_header_template":"0","ocean_custom_logo":0,"ocean_custom_retina_logo":0,"ocean_custom_logo_max_width":0,"ocean_custom_logo_tablet_max_width":0,"ocean_custom_logo_mobile_max_width":0,"ocean_custom_logo_max_height":0,"ocean_custom_logo_tablet_max_height":0,"ocean_custom_logo_mobile_max_height":0,"ocean_header_custom_menu":"0","ocean_menu_typo_font_family":"0","ocean_menu_typo_font_subset":"","ocean_menu_typo_font_size":0,"ocean_menu_typo_font_size_tablet":0,"ocean_menu_typo_font_size_mobile":0,"ocean_menu_typo_font_size_unit":"px","ocean_menu_typo_font_weight":"","ocean_menu_typo_font_weight_tablet":"","ocean_menu_typo_font_weight_mobile":"","ocean_menu_typo_transform":"","ocean_menu_typo_transform_tablet":"","ocean_menu_typo_transform_mobile":"","ocean_menu_typo_line_height":0,"ocean_menu_typo_line_height_tablet":0,"ocean_menu_typo_line_height_mobile":0,"ocean_menu_typo_line_height_unit":"","ocean_menu_typo_spacing":0,"ocean_menu_typo_spacing_tablet":0,"ocean_menu_typo_spacing_mobile":0,"ocean_menu_typo_spacing_unit":"","ocean_menu_link_color":"","ocean_menu_link_color_hover":"","ocean_menu_link_color_active":"","ocean_menu_link_background":"","ocean_menu_link_hover_background":"","ocean_menu_link_active_background":"","ocean_menu_social_links_bg":"","ocean_menu_social_hover_links_bg":"","ocean_menu_social_links_color":"","ocean_menu_social_hover_links_color":"","ocean_disable_title":"default","ocean_disable_heading":"default","ocean_post_title":"","ocean_post_subheading":"","ocean_post_title_style":"","ocean_post_title_background_color":"","ocean_post_title_background":0,"ocean_post_title_bg_image_position":"","ocean_post_title_bg_image_attachment":"","ocean_post_title_bg_image_repeat":"","ocean_post_title_bg_image_size":"","ocean_post_title_height":0,"ocean_post_title_bg_overlay":0.5,"ocean_post_title_bg_overlay_color":"","ocean_disable_breadcrumbs":"default","ocean_breadcrumbs_color":"","ocean_breadcrumbs_separator_color":"","ocean_breadcrumbs_links_color":"","ocean_breadcrumbs_links_hover_color":"","ocean_display_footer_widgets":"default","ocean_display_footer_bottom":"default","ocean_custom_footer_template":"0","ocean_post_oembed":"","ocean_post_self_hosted_media":"","ocean_post_video_embed":"","ocean_link_format":"","ocean_link_format_target":"self","ocean_quote_format":"","ocean_quote_format_link":"post","ocean_gallery_link_images":"off","ocean_gallery_id":[],"footnotes":""},"categories":[8],"tags":[22],"class_list":["post-5228","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","tag-stm32-uart-lecture","entry","has-media"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>STM32 UART Lecture 10 - UART Receiver<\/title>\n<meta name=\"description\" content=\"UART\u00a0Receiver. During a UART reception, the data shifts in least-significant bit through their RX pin to the receive data register via the\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fastbitlab.com\/blog\/stm32-uart-lecture-10-uart-receiver\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"STM32 UART Lecture 10 - UART Receiver\" \/>\n<meta property=\"og:description\" content=\"UART\u00a0Receiver. During a UART reception, the data shifts in least-significant bit through their RX pin to the receive data register via the\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fastbitlab.com\/blog\/stm32-uart-lecture-10-uart-receiver\/\" \/>\n<meta property=\"og:site_name\" content=\"FastBit EBA\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/fastbiteba\/\" \/>\n<meta property=\"article:published_time\" content=\"2021-02-27T06:37:49+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-11-24T07:11:41+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-1-13.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1485\" \/>\n\t<meta property=\"og:image:height\" content=\"691\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"FastBitLab\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@fastbiteba\" \/>\n<meta name=\"twitter:site\" content=\"@fastbiteba\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"FastBitLab\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/stm32-uart-lecture-10-uart-receiver\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/stm32-uart-lecture-10-uart-receiver\\\/\"},\"author\":{\"name\":\"FastBitLab\",\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/#\\\/schema\\\/person\\\/e32b38e733a0d76ffa7e6bc998652e5d\"},\"headline\":\"STM32 UART Lecture 10 &#8211; UART Receiver\",\"datePublished\":\"2021-02-27T06:37:49+00:00\",\"dateModified\":\"2022-11-24T07:11:41+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/stm32-uart-lecture-10-uart-receiver\\\/\"},\"wordCount\":646,\"commentCount\":3,\"publisher\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/stm32-uart-lecture-10-uart-receiver\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/02\\\/Figure-1-13.png\",\"keywords\":[\"STM32 UART Lectures\"],\"articleSection\":[\"Blog\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/stm32-uart-lecture-10-uart-receiver\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/stm32-uart-lecture-10-uart-receiver\\\/\",\"url\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/stm32-uart-lecture-10-uart-receiver\\\/\",\"name\":\"STM32 UART Lecture 10 - UART Receiver\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/stm32-uart-lecture-10-uart-receiver\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/stm32-uart-lecture-10-uart-receiver\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/02\\\/Figure-1-13.png\",\"datePublished\":\"2021-02-27T06:37:49+00:00\",\"dateModified\":\"2022-11-24T07:11:41+00:00\",\"description\":\"UART\u00a0Receiver. During a UART reception, the data shifts in least-significant bit through their RX pin to the receive data register via the\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/stm32-uart-lecture-10-uart-receiver\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/stm32-uart-lecture-10-uart-receiver\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/stm32-uart-lecture-10-uart-receiver\\\/#primaryimage\",\"url\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/02\\\/Figure-1-13.png\",\"contentUrl\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/02\\\/Figure-1-13.png\",\"width\":1485,\"height\":691,\"caption\":\"Figure 1. Data shifting through the RX pin.\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/stm32-uart-lecture-10-uart-receiver\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"STM32 UART Lecture 10 &#8211; UART Receiver\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/\",\"name\":\"FastBit EBA\",\"description\":\"Your Online Academy of Embedded Systems\",\"publisher\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/#organization\",\"name\":\"FastBit EBA\",\"url\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/logo-EzNrEnyr.png\",\"contentUrl\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/logo-EzNrEnyr.png\",\"width\":640,\"height\":640,\"caption\":\"FastBit EBA\"},\"image\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/fastbiteba\\\/\",\"https:\\\/\\\/x.com\\\/fastbiteba\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/fastbit-embedded-brain-academy-b3167b124\\\/\",\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UCa1REBV9hyrzGp2mjJCagBg\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/#\\\/schema\\\/person\\\/e32b38e733a0d76ffa7e6bc998652e5d\",\"name\":\"FastBitLab\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/9230d0f9bdef28b63a01e7ca274ee7b2e8ed9abe932ee564af8809caaf52a0c8?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/9230d0f9bdef28b63a01e7ca274ee7b2e8ed9abe932ee564af8809caaf52a0c8?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/9230d0f9bdef28b63a01e7ca274ee7b2e8ed9abe932ee564af8809caaf52a0c8?s=96&d=mm&r=g\",\"caption\":\"FastBitLab\"},\"description\":\"The FastBit Embedded Brain Academy uses the power of internet to bring the online courses related to the field of embedded system programming, Real time operating system, Embedded Linux systems, etc at your finger tip with very low cost. Backed with strong experience of industry, we have produced lots of courses with the customer enrolment over 3000+ across 100+ countries.\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"STM32 UART Lecture 10 - UART Receiver","description":"UART\u00a0Receiver. During a UART reception, the data shifts in least-significant bit through their RX pin to the receive data register via the","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fastbitlab.com\/blog\/stm32-uart-lecture-10-uart-receiver\/","og_locale":"en_US","og_type":"article","og_title":"STM32 UART Lecture 10 - UART Receiver","og_description":"UART\u00a0Receiver. During a UART reception, the data shifts in least-significant bit through their RX pin to the receive data register via the","og_url":"https:\/\/fastbitlab.com\/blog\/stm32-uart-lecture-10-uart-receiver\/","og_site_name":"FastBit EBA","article_publisher":"https:\/\/www.facebook.com\/fastbiteba\/","article_published_time":"2021-02-27T06:37:49+00:00","article_modified_time":"2022-11-24T07:11:41+00:00","og_image":[{"width":1485,"height":691,"url":"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-1-13.png","type":"image\/png"}],"author":"FastBitLab","twitter_card":"summary_large_image","twitter_creator":"@fastbiteba","twitter_site":"@fastbiteba","twitter_misc":{"Written by":"FastBitLab","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fastbitlab.com\/blog\/stm32-uart-lecture-10-uart-receiver\/#article","isPartOf":{"@id":"https:\/\/fastbitlab.com\/blog\/stm32-uart-lecture-10-uart-receiver\/"},"author":{"name":"FastBitLab","@id":"https:\/\/fastbitlab.com\/blog\/#\/schema\/person\/e32b38e733a0d76ffa7e6bc998652e5d"},"headline":"STM32 UART Lecture 10 &#8211; UART Receiver","datePublished":"2021-02-27T06:37:49+00:00","dateModified":"2022-11-24T07:11:41+00:00","mainEntityOfPage":{"@id":"https:\/\/fastbitlab.com\/blog\/stm32-uart-lecture-10-uart-receiver\/"},"wordCount":646,"commentCount":3,"publisher":{"@id":"https:\/\/fastbitlab.com\/blog\/#organization"},"image":{"@id":"https:\/\/fastbitlab.com\/blog\/stm32-uart-lecture-10-uart-receiver\/#primaryimage"},"thumbnailUrl":"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-1-13.png","keywords":["STM32 UART Lectures"],"articleSection":["Blog"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fastbitlab.com\/blog\/stm32-uart-lecture-10-uart-receiver\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/fastbitlab.com\/blog\/stm32-uart-lecture-10-uart-receiver\/","url":"https:\/\/fastbitlab.com\/blog\/stm32-uart-lecture-10-uart-receiver\/","name":"STM32 UART Lecture 10 - UART Receiver","isPartOf":{"@id":"https:\/\/fastbitlab.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/fastbitlab.com\/blog\/stm32-uart-lecture-10-uart-receiver\/#primaryimage"},"image":{"@id":"https:\/\/fastbitlab.com\/blog\/stm32-uart-lecture-10-uart-receiver\/#primaryimage"},"thumbnailUrl":"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-1-13.png","datePublished":"2021-02-27T06:37:49+00:00","dateModified":"2022-11-24T07:11:41+00:00","description":"UART\u00a0Receiver. During a UART reception, the data shifts in least-significant bit through their RX pin to the receive data register via the","breadcrumb":{"@id":"https:\/\/fastbitlab.com\/blog\/stm32-uart-lecture-10-uart-receiver\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fastbitlab.com\/blog\/stm32-uart-lecture-10-uart-receiver\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/fastbitlab.com\/blog\/stm32-uart-lecture-10-uart-receiver\/#primaryimage","url":"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-1-13.png","contentUrl":"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-1-13.png","width":1485,"height":691,"caption":"Figure 1. Data shifting through the RX pin."},{"@type":"BreadcrumbList","@id":"https:\/\/fastbitlab.com\/blog\/stm32-uart-lecture-10-uart-receiver\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/fastbitlab.com\/blog\/"},{"@type":"ListItem","position":2,"name":"STM32 UART Lecture 10 &#8211; UART Receiver"}]},{"@type":"WebSite","@id":"https:\/\/fastbitlab.com\/blog\/#website","url":"https:\/\/fastbitlab.com\/blog\/","name":"FastBit EBA","description":"Your Online Academy of Embedded Systems","publisher":{"@id":"https:\/\/fastbitlab.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fastbitlab.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/fastbitlab.com\/blog\/#organization","name":"FastBit EBA","url":"https:\/\/fastbitlab.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/fastbitlab.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2026\/04\/logo-EzNrEnyr.png","contentUrl":"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2026\/04\/logo-EzNrEnyr.png","width":640,"height":640,"caption":"FastBit EBA"},"image":{"@id":"https:\/\/fastbitlab.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/fastbiteba\/","https:\/\/x.com\/fastbiteba","https:\/\/www.linkedin.com\/in\/fastbit-embedded-brain-academy-b3167b124\/","https:\/\/www.youtube.com\/channel\/UCa1REBV9hyrzGp2mjJCagBg"]},{"@type":"Person","@id":"https:\/\/fastbitlab.com\/blog\/#\/schema\/person\/e32b38e733a0d76ffa7e6bc998652e5d","name":"FastBitLab","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/9230d0f9bdef28b63a01e7ca274ee7b2e8ed9abe932ee564af8809caaf52a0c8?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/9230d0f9bdef28b63a01e7ca274ee7b2e8ed9abe932ee564af8809caaf52a0c8?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/9230d0f9bdef28b63a01e7ca274ee7b2e8ed9abe932ee564af8809caaf52a0c8?s=96&d=mm&r=g","caption":"FastBitLab"},"description":"The FastBit Embedded Brain Academy uses the power of internet to bring the online courses related to the field of embedded system programming, Real time operating system, Embedded Linux systems, etc at your finger tip with very low cost. Backed with strong experience of industry, we have produced lots of courses with the customer enrolment over 3000+ across 100+ countries."}]}},"_links":{"self":[{"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/posts\/5228","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/comments?post=5228"}],"version-history":[{"count":5,"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/posts\/5228\/revisions"}],"predecessor-version":[{"id":12652,"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/posts\/5228\/revisions\/12652"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/media\/5231"}],"wp:attachment":[{"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/media?parent=5228"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/categories?post=5228"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/tags?post=5228"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}