{"id":5251,"date":"2021-03-02T11:25:07","date_gmt":"2021-03-02T11:25:07","guid":{"rendered":"http:\/\/fastbitlab.com\/?p=5251"},"modified":"2023-09-04T14:21:41","modified_gmt":"2023-09-04T08:51:41","slug":"usart-driver-development-configurable-items","status":"publish","type":"post","link":"https:\/\/fastbitlab.com\/blog\/usart-driver-development-configurable-items\/","title":{"rendered":"STM32 USART Lecture 1 &#8211; USART driver development configurable items"},"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: 40px; 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=\"font-size: 30px; border-width: 0px; line-height: 50px; text-align: center;\"><span style=\"color: #000080;\">USART driver development configurable items<\/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;\">In this article, let\u2019s discuss USART driver development. Before developing the driver, you must know what are the USART peripherals that you have. <\/span><\/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;\">In Figure 1, you can see that the USART1 and USART6 are hanging on the APB2 bus, and USART2, USART3, UART4, and UART5 are hanging on the APB1 bus, which can be confirmed by going through the diagram in Figure 1.<\/span><\/p>\n<p class=\"\">&nbsp;<\/p>\n<figure id=\"attachment_5254\" aria-describedby=\"caption-attachment-5254\" style=\"width: 744px\" class=\"wp-caption aligncenter\"><img fetchpriority=\"high\" decoding=\"async\" class=\" wp-image-5254\" src=\"http:\/\/fastbitlab.com\/wp-content\/uploads\/2021\/02\/Figure-1-14.png\" alt=\"\" width=\"744\" height=\"355\" srcset=\"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-1-14.png 1719w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-1-14-300x143.png 300w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-1-14-768x367.png 768w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-1-14-1024x489.png 1024w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-1-14-600x287.png 600w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-1-14-120x57.png 120w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-1-14-500x239.png 500w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-1-14-200x96.png 200w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-1-14-400x191.png 400w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-1-14-800x382.png 800w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-1-14-1200x573.png 1200w\" sizes=\"(max-width: 744px) 100vw, 744px\" \/><figcaption id=\"caption-attachment-5254\" class=\"wp-caption-text\"><span style=\"color: #000000;\">Figure 1. USART block diagram.<\/span><\/figcaption><\/figure>\n<p class=\"\">&nbsp;<\/p>\n<p class=\"\" style=\"font-size: 23px; 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=\"color: #000000;\"><span style=\"text-decoration: underline; color: #000080;\"><b>Steps for USART driver development <\/b><\/span><span style=\"font-weight: 400; color: #000080;\">(Figure 2)<\/span><b>:<\/b><\/span><\/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;\">1. Develop USART driver.c and driver.h files.<\/span><\/p>\n<figure id=\"attachment_5255\" aria-describedby=\"caption-attachment-5255\" style=\"width: 744px\" class=\"wp-caption aligncenter\"><img decoding=\"async\" class=\"wp-image-5255\" src=\"http:\/\/fastbitlab.com\/wp-content\/uploads\/2021\/02\/Figure-2-10.png\" alt=\"\" width=\"744\" height=\"381\" srcset=\"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-2-10.png 1893w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-2-10-300x154.png 300w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-2-10-768x393.png 768w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-2-10-1024x524.png 1024w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-2-10-600x307.png 600w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-2-10-120x61.png 120w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-2-10-500x256.png 500w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-2-10-200x102.png 200w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-2-10-400x205.png 400w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-2-10-800x410.png 800w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-2-10-1200x614.png 1200w\" sizes=\"(max-width: 744px) 100vw, 744px\" \/><figcaption id=\"caption-attachment-5255\" class=\"wp-caption-text\"><span style=\"color: #000000;\">Figure 2. Steps for USART driver development.<\/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;\">2. Remember that you have to update the device-specific header file (Stm32f407xx.h) with the details regarding the USART peripheral.<\/span><\/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=\"color: #000000;\">3.&nbsp;<span style=\"font-weight: 400;\">After that, you can write some sample applications to test the driver.<\/span><\/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;\"><strong>Driver API requirements and user configurable items:<\/strong><\/span><\/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 user-configurable items (Figure 3) for the application are as follows:<\/span><\/p>\n<figure id=\"attachment_5256\" aria-describedby=\"caption-attachment-5256\" style=\"width: 744px\" class=\"wp-caption aligncenter\"><img decoding=\"async\" class=\"wp-image-5256\" src=\"http:\/\/fastbitlab.com\/wp-content\/uploads\/2021\/02\/Figure-3-9.png\" alt=\"USART driver development configurable items\" width=\"744\" height=\"357\" srcset=\"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-3-9.png 1803w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-3-9-300x144.png 300w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-3-9-768x368.png 768w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-3-9-1024x491.png 1024w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-3-9-600x288.png 600w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-3-9-120x58.png 120w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-3-9-500x240.png 500w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-3-9-200x96.png 200w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-3-9-400x192.png 400w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-3-9-800x384.png 800w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-3-9-1200x576.png 1200w\" sizes=\"(max-width: 744px) 100vw, 744px\" \/><figcaption id=\"caption-attachment-5256\" class=\"wp-caption-text\"><span style=\"color: #000000;\">Figure 3. User configurable items.<\/span><\/figcaption><\/figure>\n<p class=\"\">&nbsp;<\/p>\n<ol 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=\"\">\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\"><strong><span style=\"color: #000080;\">USART_Mode:<\/span><\/strong> In USART, it can be in transmit mode, receive mode or both in transmit and receive mode.<\/span><\/li>\n<li aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\"><strong><span style=\"color: #000080;\">USART_Baud:<\/span><\/strong> This configurable item is used to mention the baud rate.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\"><strong><span style=\"color: #000080;\">USART_NoOfStopBits:<\/span><\/strong> It is used to configure the number of STOP bits.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\"><strong><span style=\"color: #000080;\">USART_WordLength:<\/span><\/strong> You can configure the word length by using this configurable item. There are only two choices for word length, either 8 bits or 9 bits.<\/span><\/li>\n<li aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\"><strong><span style=\"color: #000080;\">USART_ParityControl:<\/span><\/strong> By using this configurable item, you can configure whether the parity bit must be included in the USART frame or not. The parity can be no parity, even parity or odd parity, which can be mentioned here.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\"><strong><span style=\"color: #000080;\">USART_HWFlowControl:<\/span><\/strong> The hardware flow control details can be mentioned in the hardware flow control user-configurable item.&nbsp;<\/span><\/li>\n<\/ol>\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 above are the configurable items given to the application to configure the USART peripheral.<\/span><\/p>\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 list of APIs that we are going to develop in this section are as follows (Figure 4):<\/span><\/p>\n<ol 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=\"\">\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">USART initialization\/ peripheral clock control.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">USART TX<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">USART RX<\/span><\/li>\n<li aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">USART interrupt configuration and USART interrupt handling APIs.<\/span><\/li>\n<li aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">Other USART management APIs.<\/span><\/li>\n<\/ol>\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;\">&nbsp;<span style=\"color: #000000;\">The procedure of developing APIs are exactly similar to the <span style=\"color: #ff6600;\"><a style=\"color: #ff6600;\" href=\"http:\/\/fastbitlab.com\/i2c-introduction-and-difference-with-spi\/\" target=\"_blank\" rel=\"noopener\">I2C<\/a><\/span> and <span style=\"color: #ff6600;\"><a style=\"color: #ff6600;\" href=\"http:\/\/fastbitlab.com\/introduction-spi-bus-2\/\" target=\"_blank\" rel=\"noopener\">SPI<\/a><\/span>.<\/span><\/span><\/p>\n<figure id=\"attachment_5259\" aria-describedby=\"caption-attachment-5259\" style=\"width: 744px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-5259\" src=\"http:\/\/fastbitlab.com\/wp-content\/uploads\/2021\/02\/Figure-4-5.png\" alt=\"USART driver development configurable items\" width=\"744\" height=\"346\" srcset=\"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-4-5.png 1803w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-4-5-300x140.png 300w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-4-5-768x357.png 768w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-4-5-1024x477.png 1024w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-4-5-600x279.png 600w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-4-5-120x56.png 120w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-4-5-500x233.png 500w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-4-5-200x93.png 200w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-4-5-400x186.png 400w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-4-5-800x372.png 800w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-4-5-1200x558.png 1200w\" sizes=\"(max-width: 744px) 100vw, 744px\" \/><figcaption id=\"caption-attachment-5259\" class=\"wp-caption-text\"><span style=\"color: #000000;\">Figure 4. Driver API requirements.<\/span><\/figcaption><\/figure>\n<p>&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>USART handle structure and configuration structure:<\/b><\/span><\/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 configuration structure and handle structure for USART communication are as shown in Figure 5. <\/span><\/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;\">You have to create one member element in the USART_Config_t structure for all the configuration items and then create the handle structure in the USART driver file.<\/span><\/p>\n<figure id=\"attachment_5260\" aria-describedby=\"caption-attachment-5260\" style=\"width: 744px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-5260\" src=\"http:\/\/fastbitlab.com\/wp-content\/uploads\/2021\/02\/Figure-5-5.png\" alt=\"USART driver development configurable items\" width=\"744\" height=\"463\" srcset=\"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-5-5.png 1508w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-5-5-300x187.png 300w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-5-5-768x478.png 768w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-5-5-1024x637.png 1024w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-5-5-600x373.png 600w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-5-5-320x200.png 320w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-5-5-120x75.png 120w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-5-5-500x311.png 500w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-5-5-200x124.png 200w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-5-5-400x249.png 400w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-5-5-800x498.png 800w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-5-5-1200x746.png 1200w\" sizes=\"(max-width: 744px) 100vw, 744px\" \/><figcaption id=\"caption-attachment-5260\" class=\"wp-caption-text\"><span style=\"color: #000000;\">Figure 5. USART configuration and handle structure.<\/span><\/figcaption><\/figure>\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>Exercises to be completed before coding the driver:<\/b><\/span><\/p>\n<ol 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=\"\">\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">Create a USART driver header file and source file in the driver directory.<\/span><\/li>\n<li aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">Include complete USART register definition structure and other macros such as peripheral base addresses, Device definition, clock enable, clock disable, etc. in MCU specific header file.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">Also, add USART register bit definition macros in MCU specific header file.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">Add USART configuration structure, and USART handle structure in USART header file.<\/span><\/li>\n<\/ol>\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=\"color: #000000;\">In the following article, let&#8217;s see<\/span> <span style=\"color: #ff6600;\"><a style=\"color: #ff6600;\" href=\"http:\/\/fastbitlab.com\/usart-driver-apis-prototypes\/\" target=\"_blank\" rel=\"noopener\">USART driver APIs prototypes<\/a><\/span>.<\/p>\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=\"color: #000080;\"><b>FastBit Embedded Brain Academy Courses<\/b><\/span><\/p>\n<p class=\"\" style=\"border-width: 0px; font-size: 17px; line-height: 25px;\">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; USART driver development configurable items &nbsp; &nbsp; In this article, let\u2019s discuss USART driver development. Before developing the driver, you must know what are the USART peripherals that you have. In Figure 1, you can see that the USART1 and USART6 are hanging on the APB2 bus, and USART2, USART3, UART4, and UART5 are [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":5254,"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":[24],"class_list":["post-5251","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","tag-stm32-usart-lectures","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 USART Driver Development: Configuration and API Requirements<\/title>\n<meta name=\"description\" content=\"USART driver development configurable items. Learn how to develop an USART driver for STM32 microcontrollers, including configuring USART\" \/>\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\/usart-driver-development-configurable-items\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"STM32 USART Driver Development: Configuration and API Requirements\" \/>\n<meta property=\"og:description\" content=\"USART driver development configurable items. Learn how to develop an USART driver for STM32 microcontrollers, including configuring USART\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fastbitlab.com\/blog\/usart-driver-development-configurable-items\/\" \/>\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-03-02T11:25:07+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-09-04T08:51:41+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-1-14.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1719\" \/>\n\t<meta property=\"og:image:height\" content=\"821\" \/>\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\\\/usart-driver-development-configurable-items\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/usart-driver-development-configurable-items\\\/\"},\"author\":{\"name\":\"FastBitLab\",\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/#\\\/schema\\\/person\\\/e32b38e733a0d76ffa7e6bc998652e5d\"},\"headline\":\"STM32 USART Lecture 1 &#8211; USART driver development configurable items\",\"datePublished\":\"2021-03-02T11:25:07+00:00\",\"dateModified\":\"2023-09-04T08:51:41+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/usart-driver-development-configurable-items\\\/\"},\"wordCount\":551,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/usart-driver-development-configurable-items\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/02\\\/Figure-1-14.png\",\"keywords\":[\"STM32 USART Lectures\"],\"articleSection\":[\"Blog\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/usart-driver-development-configurable-items\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/usart-driver-development-configurable-items\\\/\",\"url\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/usart-driver-development-configurable-items\\\/\",\"name\":\"STM32 USART Driver Development: Configuration and API Requirements\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/usart-driver-development-configurable-items\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/usart-driver-development-configurable-items\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/02\\\/Figure-1-14.png\",\"datePublished\":\"2021-03-02T11:25:07+00:00\",\"dateModified\":\"2023-09-04T08:51:41+00:00\",\"description\":\"USART driver development configurable items. Learn how to develop an USART driver for STM32 microcontrollers, including configuring USART\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/usart-driver-development-configurable-items\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/usart-driver-development-configurable-items\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/usart-driver-development-configurable-items\\\/#primaryimage\",\"url\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/02\\\/Figure-1-14.png\",\"contentUrl\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/02\\\/Figure-1-14.png\",\"width\":1719,\"height\":821,\"caption\":\"Figure 1. USART block diagram.\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/usart-driver-development-configurable-items\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"STM32 USART Lecture 1 &#8211; USART driver development configurable items\"}]},{\"@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 USART Driver Development: Configuration and API Requirements","description":"USART driver development configurable items. Learn how to develop an USART driver for STM32 microcontrollers, including configuring USART","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\/usart-driver-development-configurable-items\/","og_locale":"en_US","og_type":"article","og_title":"STM32 USART Driver Development: Configuration and API Requirements","og_description":"USART driver development configurable items. Learn how to develop an USART driver for STM32 microcontrollers, including configuring USART","og_url":"https:\/\/fastbitlab.com\/blog\/usart-driver-development-configurable-items\/","og_site_name":"FastBit EBA","article_publisher":"https:\/\/www.facebook.com\/fastbiteba\/","article_published_time":"2021-03-02T11:25:07+00:00","article_modified_time":"2023-09-04T08:51:41+00:00","og_image":[{"width":1719,"height":821,"url":"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-1-14.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\/usart-driver-development-configurable-items\/#article","isPartOf":{"@id":"https:\/\/fastbitlab.com\/blog\/usart-driver-development-configurable-items\/"},"author":{"name":"FastBitLab","@id":"https:\/\/fastbitlab.com\/blog\/#\/schema\/person\/e32b38e733a0d76ffa7e6bc998652e5d"},"headline":"STM32 USART Lecture 1 &#8211; USART driver development configurable items","datePublished":"2021-03-02T11:25:07+00:00","dateModified":"2023-09-04T08:51:41+00:00","mainEntityOfPage":{"@id":"https:\/\/fastbitlab.com\/blog\/usart-driver-development-configurable-items\/"},"wordCount":551,"commentCount":0,"publisher":{"@id":"https:\/\/fastbitlab.com\/blog\/#organization"},"image":{"@id":"https:\/\/fastbitlab.com\/blog\/usart-driver-development-configurable-items\/#primaryimage"},"thumbnailUrl":"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-1-14.png","keywords":["STM32 USART Lectures"],"articleSection":["Blog"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fastbitlab.com\/blog\/usart-driver-development-configurable-items\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/fastbitlab.com\/blog\/usart-driver-development-configurable-items\/","url":"https:\/\/fastbitlab.com\/blog\/usart-driver-development-configurable-items\/","name":"STM32 USART Driver Development: Configuration and API Requirements","isPartOf":{"@id":"https:\/\/fastbitlab.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/fastbitlab.com\/blog\/usart-driver-development-configurable-items\/#primaryimage"},"image":{"@id":"https:\/\/fastbitlab.com\/blog\/usart-driver-development-configurable-items\/#primaryimage"},"thumbnailUrl":"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-1-14.png","datePublished":"2021-03-02T11:25:07+00:00","dateModified":"2023-09-04T08:51:41+00:00","description":"USART driver development configurable items. Learn how to develop an USART driver for STM32 microcontrollers, including configuring USART","breadcrumb":{"@id":"https:\/\/fastbitlab.com\/blog\/usart-driver-development-configurable-items\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fastbitlab.com\/blog\/usart-driver-development-configurable-items\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/fastbitlab.com\/blog\/usart-driver-development-configurable-items\/#primaryimage","url":"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-1-14.png","contentUrl":"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/02\/Figure-1-14.png","width":1719,"height":821,"caption":"Figure 1. USART block diagram."},{"@type":"BreadcrumbList","@id":"https:\/\/fastbitlab.com\/blog\/usart-driver-development-configurable-items\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/fastbitlab.com\/blog\/"},{"@type":"ListItem","position":2,"name":"STM32 USART Lecture 1 &#8211; USART driver development configurable items"}]},{"@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\/5251","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=5251"}],"version-history":[{"count":5,"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/posts\/5251\/revisions"}],"predecessor-version":[{"id":15753,"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/posts\/5251\/revisions\/15753"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/media\/5254"}],"wp:attachment":[{"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/media?parent=5251"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/categories?post=5251"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/tags?post=5251"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}