{"id":2179,"date":"2019-07-02T11:00:34","date_gmt":"2019-07-02T11:00:34","guid":{"rendered":"http:\/\/fastbitlab.com\/?p=2179"},"modified":"2022-12-20T17:22:55","modified_gmt":"2022-12-20T11:52:55","slug":"gpio-programming-structure","status":"publish","type":"post","link":"https:\/\/fastbitlab.com\/blog\/gpio-programming-structure\/","title":{"rendered":"STM32 GPIO Lecture 8 : GPIO Programming Structure"},"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: 10px; padding-bottom: 50px;\">\n<div class=\"col-md-10 col-sm-12 col-xs-12 col-lg-10\">\n<h2 class=\"\">&nbsp;<\/h2>\n<h1 style=\"text-align: center;\"><strong><span style=\"color: #000080;\">GPIO Programming Structure<\/span><\/strong><\/h1>\n<div class=\"row bg-editor-hr-wrap\">\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\" style=\"border-style: solid; border-width: 0px 0px 3px; width: 72%; color: #104aa2; margin-top: -25px;\"><\/div>\n<p>&nbsp;<\/p>\n<\/div>\n<\/div>\n<\/div>\n<p class=\"\">&nbsp;<\/p>\n<figure id=\"attachment_2173\" aria-describedby=\"caption-attachment-2173\" style=\"width: 559px\" class=\"wp-caption aligncenter\"><img fetchpriority=\"high\" decoding=\"async\" class=\"wp-image-2173\" src=\"http:\/\/fastbitlab.com\/wp-content\/uploads\/2019\/07\/Screenshot-114.png\" alt=\"GPIO Programming Structure\" width=\"559\" height=\"272\" srcset=\"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2019\/07\/Screenshot-114.png 1433w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2019\/07\/Screenshot-114-300x146.png 300w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2019\/07\/Screenshot-114-768x374.png 768w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2019\/07\/Screenshot-114-1024x499.png 1024w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2019\/07\/Screenshot-114-600x292.png 600w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2019\/07\/Screenshot-114-120x58.png 120w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2019\/07\/Screenshot-114-500x244.png 500w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2019\/07\/Screenshot-114-200x97.png 200w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2019\/07\/Screenshot-114-400x195.png 400w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2019\/07\/Screenshot-114-800x390.png 800w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2019\/07\/Screenshot-114-1200x585.png 1200w\" sizes=\"(max-width: 559px) 100vw, 559px\" \/><figcaption id=\"caption-attachment-2173\" class=\"wp-caption-text\"><span style=\"color: #000000;\">Figure 1. GPIO registers<\/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;\"><span style=\"text-decoration: underline; color: #ff6600;\"><a style=\"color: #ff6600; text-decoration: underline;\" href=\"http:\/\/fastbitlab.com\/stm32-gpio-lecture-1-gpio-pin-ports\/\" target=\"_blank\" rel=\"noopener\">GPIO port<\/a><\/span> <span style=\"color: #000000;\">is governed by many registers, as shown in Figure 1. These registers may vary depending on the vendors who design microcontroller.<\/span><\/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 minimum set of registers that you find in any microcontroller is direction register, which is also called mode register. By using this register, you can set direction or mode as input, output, analog, etc..<\/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;\">Input data register which is used to read from a GPIO port and<\/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;\">Output data register which is used to write to a GPIO port.<\/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 the STM32F4xx series of microcontrollers, each GPIO port governed by many configuration registers. They are:<\/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><span style=\"font-weight: 400; color: #000000;\">GPIO Port Mode register (GPIOx_MODER).<\/span><\/li>\n<li><span style=\"font-weight: 400; color: #000000;\">GPIO Output Type register (GPIOx_OTYPER)<\/span><\/li>\n<li><span style=\"font-weight: 400; color: #000000;\">GPIO Output Speed register (GPIOx_OSPEEDR)&nbsp;<\/span><\/li>\n<li><span style=\"font-weight: 400; color: #000000;\">GPIO Pull Up \/Pull Down&nbsp; register (GPIOx_PUPDR)<\/span><\/li>\n<li><span style=\"font-weight: 400; color: #000000;\">GPIO Input Data register (GPIOx_IDR)<\/span><\/li>\n<li><span style=\"font-weight: 400; color: #000000;\">GPIO Output Data register (GPIOx_ODR)<\/span><\/li>\n<li><span style=\"font-weight: 400; color: #000000;\">GPIO Bit Set \/ Reset register (GPIOx_BSRR)<\/span><\/li>\n<li><span style=\"font-weight: 400; color: #000000;\">GPIO Lock register (GPIOx_LCKR)<\/span><\/li>\n<li><span style=\"font-weight: 400; color: #000000;\">GPIO Alternate Function register (GPIOx_AFRHand GPIOx_AFRL)<\/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=\"font-weight: 400; color: #000000;\">All these GPIO registers are connected over a system bus to the processor as shown in Figure 2.<\/span><\/p>\n<p class=\"\">&nbsp;<\/p>\n<figure id=\"attachment_2597\" aria-describedby=\"caption-attachment-2597\" style=\"width: 1239px\" class=\"wp-caption aligncenter\"><img decoding=\"async\" class=\"wp-image-2597 size-full\" src=\"http:\/\/fastbitlab.com\/wp-content\/uploads\/2019\/07\/stm32f40x_block_diagram.png\" alt=\"Block diagram of STM32F7xx discovery\" width=\"1239\" height=\"1559\" srcset=\"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2019\/07\/stm32f40x_block_diagram.png 1239w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2019\/07\/stm32f40x_block_diagram-238x300.png 238w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2019\/07\/stm32f40x_block_diagram-768x966.png 768w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2019\/07\/stm32f40x_block_diagram-814x1024.png 814w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2019\/07\/stm32f40x_block_diagram-600x755.png 600w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2019\/07\/stm32f40x_block_diagram-120x151.png 120w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2019\/07\/stm32f40x_block_diagram-500x629.png 500w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2019\/07\/stm32f40x_block_diagram-200x252.png 200w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2019\/07\/stm32f40x_block_diagram-400x503.png 400w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2019\/07\/stm32f40x_block_diagram-800x1007.png 800w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2019\/07\/stm32f40x_block_diagram-1200x1510.png 1200w\" sizes=\"(max-width: 1239px) 100vw, 1239px\" \/><figcaption id=\"caption-attachment-2597\" class=\"wp-caption-text\"><span style=\"color: #000000;\">Figure 2. Block diagram of STM32F7xx discovery<\/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;\">In Figure 2. Shows that all GPIO ports connected to the processor over the AHB1 bus. AHB1 is a primary system bus that can operate at a maximum of 168 MHz clock speed.<\/span><\/p>\n<p class=\"\" style=\"border-width: 0px; font-size: 17px; line-height: 30px; font-family: 'Roboto Slab'; font-weight: 400;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000000;\">In the following article, let&#8217;s explore<\/span> <span style=\"color: #ff6600;\"><a style=\"color: #ff6600;\" href=\"http:\/\/fastbitlab.com\/exploring-gpio-port-pins\/\" target=\"_blank\" rel=\"noopener\">GPIO PORT and PINs of STM32F4xx discovery board<\/a>.<\/span><\/p>\n<p class=\"\">&nbsp;<\/p>\n<p class=\"\" style=\"border-width: 0px; font-family: 'PT Serif'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"PT Serif\" 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;\"><span style=\"color: #000000;\">Click here:<\/span>&nbsp;<span style=\"color: #0000ff;\"><a style=\"color: #0000ff; text-decoration: underline;\" href=\"http:\/\/fastbitlab.com\/course1\" target=\"_blank\" rel=\"noopener\">https:\/\/fastbitlab.com\/course1<\/a><\/span><\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>&nbsp; GPIO Programming Structure &nbsp; &nbsp; &nbsp; &nbsp; GPIO port is governed by many registers, as shown in Figure 1. These registers may vary depending on the vendors who design microcontroller. The minimum set of registers that you find in any microcontroller is direction register, which is also called mode register. By using this register, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":2173,"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":[20],"class_list":["post-2179","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","tag-stm32-gpio","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 GPIO Lecture 8 : GPIO Programming Structure<\/title>\n<meta name=\"description\" content=\"STM32 GPIO Lecture: GPIO Programming Structure. In the STM32F4xx series of microcontrollers, each GPIO port governed by many configuration\" \/>\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\/gpio-programming-structure\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"STM32 GPIO Lecture 8 : GPIO Programming Structure\" \/>\n<meta property=\"og:description\" content=\"STM32 GPIO Lecture: GPIO Programming Structure. In the STM32F4xx series of microcontrollers, each GPIO port governed by many configuration\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fastbitlab.com\/blog\/gpio-programming-structure\/\" \/>\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=\"2019-07-02T11:00:34+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-12-20T11:52:55+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2019\/07\/Screenshot-114.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1433\" \/>\n\t<meta property=\"og:image:height\" content=\"698\" \/>\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=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/gpio-programming-structure\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/gpio-programming-structure\\\/\"},\"author\":{\"name\":\"FastBitLab\",\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/#\\\/schema\\\/person\\\/e32b38e733a0d76ffa7e6bc998652e5d\"},\"headline\":\"STM32 GPIO Lecture 8 : GPIO Programming Structure\",\"datePublished\":\"2019-07-02T11:00:34+00:00\",\"dateModified\":\"2022-12-20T11:52:55+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/gpio-programming-structure\\\/\"},\"wordCount\":280,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/gpio-programming-structure\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/wp-content\\\/uploads\\\/2019\\\/07\\\/Screenshot-114.png\",\"keywords\":[\"STM32 GPIO Lectures\"],\"articleSection\":[\"Blog\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/gpio-programming-structure\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/gpio-programming-structure\\\/\",\"url\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/gpio-programming-structure\\\/\",\"name\":\"STM32 GPIO Lecture 8 : GPIO Programming Structure\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/gpio-programming-structure\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/gpio-programming-structure\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/wp-content\\\/uploads\\\/2019\\\/07\\\/Screenshot-114.png\",\"datePublished\":\"2019-07-02T11:00:34+00:00\",\"dateModified\":\"2022-12-20T11:52:55+00:00\",\"description\":\"STM32 GPIO Lecture: GPIO Programming Structure. In the STM32F4xx series of microcontrollers, each GPIO port governed by many configuration\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/gpio-programming-structure\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/gpio-programming-structure\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/gpio-programming-structure\\\/#primaryimage\",\"url\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/wp-content\\\/uploads\\\/2019\\\/07\\\/Screenshot-114.png\",\"contentUrl\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/wp-content\\\/uploads\\\/2019\\\/07\\\/Screenshot-114.png\",\"width\":1433,\"height\":698},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/gpio-programming-structure\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"STM32 GPIO Lecture 8 : GPIO Programming Structure\"}]},{\"@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 GPIO Lecture 8 : GPIO Programming Structure","description":"STM32 GPIO Lecture: GPIO Programming Structure. In the STM32F4xx series of microcontrollers, each GPIO port governed by many configuration","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\/gpio-programming-structure\/","og_locale":"en_US","og_type":"article","og_title":"STM32 GPIO Lecture 8 : GPIO Programming Structure","og_description":"STM32 GPIO Lecture: GPIO Programming Structure. In the STM32F4xx series of microcontrollers, each GPIO port governed by many configuration","og_url":"https:\/\/fastbitlab.com\/blog\/gpio-programming-structure\/","og_site_name":"FastBit EBA","article_publisher":"https:\/\/www.facebook.com\/fastbiteba\/","article_published_time":"2019-07-02T11:00:34+00:00","article_modified_time":"2022-12-20T11:52:55+00:00","og_image":[{"width":1433,"height":698,"url":"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2019\/07\/Screenshot-114.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":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fastbitlab.com\/blog\/gpio-programming-structure\/#article","isPartOf":{"@id":"https:\/\/fastbitlab.com\/blog\/gpio-programming-structure\/"},"author":{"name":"FastBitLab","@id":"https:\/\/fastbitlab.com\/blog\/#\/schema\/person\/e32b38e733a0d76ffa7e6bc998652e5d"},"headline":"STM32 GPIO Lecture 8 : GPIO Programming Structure","datePublished":"2019-07-02T11:00:34+00:00","dateModified":"2022-12-20T11:52:55+00:00","mainEntityOfPage":{"@id":"https:\/\/fastbitlab.com\/blog\/gpio-programming-structure\/"},"wordCount":280,"commentCount":0,"publisher":{"@id":"https:\/\/fastbitlab.com\/blog\/#organization"},"image":{"@id":"https:\/\/fastbitlab.com\/blog\/gpio-programming-structure\/#primaryimage"},"thumbnailUrl":"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2019\/07\/Screenshot-114.png","keywords":["STM32 GPIO Lectures"],"articleSection":["Blog"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fastbitlab.com\/blog\/gpio-programming-structure\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/fastbitlab.com\/blog\/gpio-programming-structure\/","url":"https:\/\/fastbitlab.com\/blog\/gpio-programming-structure\/","name":"STM32 GPIO Lecture 8 : GPIO Programming Structure","isPartOf":{"@id":"https:\/\/fastbitlab.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/fastbitlab.com\/blog\/gpio-programming-structure\/#primaryimage"},"image":{"@id":"https:\/\/fastbitlab.com\/blog\/gpio-programming-structure\/#primaryimage"},"thumbnailUrl":"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2019\/07\/Screenshot-114.png","datePublished":"2019-07-02T11:00:34+00:00","dateModified":"2022-12-20T11:52:55+00:00","description":"STM32 GPIO Lecture: GPIO Programming Structure. In the STM32F4xx series of microcontrollers, each GPIO port governed by many configuration","breadcrumb":{"@id":"https:\/\/fastbitlab.com\/blog\/gpio-programming-structure\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fastbitlab.com\/blog\/gpio-programming-structure\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/fastbitlab.com\/blog\/gpio-programming-structure\/#primaryimage","url":"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2019\/07\/Screenshot-114.png","contentUrl":"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2019\/07\/Screenshot-114.png","width":1433,"height":698},{"@type":"BreadcrumbList","@id":"https:\/\/fastbitlab.com\/blog\/gpio-programming-structure\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/fastbitlab.com\/blog\/"},{"@type":"ListItem","position":2,"name":"STM32 GPIO Lecture 8 : GPIO Programming Structure"}]},{"@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\/2179","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=2179"}],"version-history":[{"count":5,"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/posts\/2179\/revisions"}],"predecessor-version":[{"id":12488,"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/posts\/2179\/revisions\/12488"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/media\/2173"}],"wp:attachment":[{"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/media?parent=2179"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/categories?post=2179"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/tags?post=2179"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}