{"id":3030,"date":"2011-07-01T13:45:21","date_gmt":"2011-07-01T17:45:21","guid":{"rendered":"http:\/\/embedded-lab.com\/blog\/?page_id=3030"},"modified":"2017-01-21T16:09:35","modified_gmt":"2017-01-21T21:09:35","slug":"stm32-tutorials","status":"publish","type":"page","link":"https:\/\/embedded-lab.com\/blog\/stm32-tutorials\/","title":{"rendered":"STM32 tutorials"},"content":{"rendered":"<p><!--Engineering360 728x90 Ad Tag--><\/p>\n<div id=\"leaderboard1\"><script type=\"text\/javascript\">\/\/ <![CDATA[\ngoogletag.cmd.push(function() { googletag.pubads().display('\/4250\/Embedded-Lab', [728, 90], 'leaderboard1'); });\n\/\/ ]]><\/script><\/div>\n<p>These introductory and comprehensive STM32 tutorials are contributed by <strong>Shawon Shahryiar<\/strong>, a technologist, hardware maker, educator and EEE graduate from Ahsanullah University of Science and Technology, Dhaka to allow quick learning of ARM processor programming and interfacing.<\/p>\n<div id=\"Anir_Container\">\n<div class=\"Anir_TopicBlock\">\n<div class=\"Anir_TopicHeading\"><a href=\"http:\/\/embedded-lab.com\/blog\/?p=8764\">STM32 \u2013 Prior to Start<\/a><\/div>\n<div class=\"Anir_TopicImage\"><a href=\"http:\/\/embedded-lab.com\/blog\/?p=8764\"><img decoding=\"async\" src=\"http:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2014\/06\/setup.png\" alt=\"\" \/><\/a><\/div>\n<div class=\"Anir_TopicContent\">STM32 ARM-based micros from STMicroelectronics pack high density resources than any other conventional microcontroller. They are also high speed devices, operating typically at 72MHz and beyond. The aim of this document is to address some common FAQs regarding STM32 prior to start developing applications with them.<\/div>\n<div class=\"Anir_TopicReadMore\"><a href=\"http:\/\/embedded-lab.com\/blog\/?p=8764\">Read more&#8230; <\/a><\/div>\n<\/div>\n<div class=\"Anir_TopicBlock\">\n<div class=\"Anir_TopicHeading\"><a href=\"http:\/\/embedded-lab.com\/blog\/?p=8837\">STM32 GPIO port familiarization<\/a><\/div>\n<div class=\"Anir_TopicImage\"><a href=\"http:\/\/embedded-lab.com\/blog\/?p=8837\"><img decoding=\"async\" src=\"http:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2014\/06\/Demo.png\" alt=\"\" \/><\/a><\/div>\n<div class=\"Anir_TopicContent\">The I\/O ports in STM32 are usually named as GPIOA, GPIOB, etc. and are 16 bit wide. The port pins have several modes of operation, which makes them both robust and complex at first. In this tutorial, we will discuss how to configure and setup these ports for I\/O operation and illustrate with a basic LED blinking example.<\/div>\n<div class=\"Anir_TopicReadMore\"><a href=\"http:\/\/embedded-lab.com\/blog\/?p=8837\">Read more&#8230;<\/a><\/div>\n<\/div>\n<div class=\"Anir_TopicBlock\">\n<div class=\"Anir_TopicHeading\"><a href=\"http:\/\/embedded-lab.com\/blog\/?p=8869\">Porting ST Standard Peripheral Library (SPL) with MikroC PRO for ARM<\/a><\/div>\n<div class=\"Anir_TopicImage\"><a href=\"http:\/\/embedded-lab.com\/blog\/?p=8869\"><img decoding=\"async\" src=\"http:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2014\/07\/stdint-modification.png\" alt=\"\" \/><\/a><\/div>\n<div class=\"Anir_TopicContent\">This tutorial talks about ST SPL, which is a collection of hardware libraries that provide an easy approach to any STM32 ARM programmer. It has support for every peripheral a STM32 micro has like CAN, USB, ADC, Timers, etc. In short it\u2019s a hardware abstraction layer fully covering the STM32.<\/div>\n<div class=\"Anir_TopicReadMore\"><a href=\"http:\/\/embedded-lab.com\/blog\/?p=8869\">Read more&#8230;<\/a><\/div>\n<\/div>\n<div class=\"Anir_TopicBlock\">\n<div class=\"Anir_TopicHeading\"><a href=\"http:\/\/embedded-lab.com\/blog\/?p=8887\">STM32 serial communication<\/a><\/div>\n<div class=\"Anir_TopicImage\"><a href=\"http:\/\/embedded-lab.com\/blog\/?p=8887\"><img decoding=\"async\" src=\"http:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2014\/07\/USART-Register-Map.png\" alt=\"\" \/><\/a><\/div>\n<div class=\"Anir_TopicContent\">STM32 provides hardware USART ports for serial communication. As we all know serial communication is a very important tool for debugging, connecting with external hardware like RFID, GPS, GSM modems, etc. and for performing other communication-related tasks. The number of serial ports available in a STM32 micro is dependent on device family type and the device itself.<\/div>\n<div class=\"Anir_TopicReadMore\"><a href=\"http:\/\/embedded-lab.com\/blog\/?p=8887\">Read more&#8230;<\/a><\/div>\n<\/div>\n<div class=\"Anir_TopicBlock\">\n<div class=\"Anir_TopicHeading\"><a href=\"http:\/\/embedded-lab.com\/blog\/?p=9053\">STM32 programming tips and tricks<\/a><\/div>\n<div class=\"Anir_TopicImage\"><a href=\"http:\/\/embedded-lab.com\/blog\/?p=9053\"><img decoding=\"async\" src=\"http:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2014\/08\/ST-LINKV2_3.png\" alt=\"\" \/><\/a><\/div>\n<div class=\"Anir_TopicContent\">ST-Link 1 (AKA ST-Link) and ST-Link v2 are both basically the same programmer\/debugger hardware with some minor exceptions. ST-Link 2 has 5V tolerance for JTAG interface, it has a bicolour status LED and it also has a separate programming interface for STM8 micros unlike ST-Link 1. There is also an ISOL version of ST-Link2 that galvanically isolates it from its target using optoelectronics.<\/div>\n<div class=\"Anir_TopicReadMore\"><a href=\"http:\/\/embedded-lab.com\/blog\/?p=9053\">Read more&#8230;<\/a><\/div>\n<\/div>\n<div class=\"Anir_TopicBlock\">\n<div class=\"Anir_TopicHeading\"><a href=\"http:\/\/embedded-lab.com\/blog\/?p=9149\">STM32 External Interrupt<\/a><\/div>\n<div class=\"Anir_TopicImage\"><a href=\"http:\/\/embedded-lab.com\/blog\/?p=9149\"><img decoding=\"async\" src=\"http:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2014\/09\/EXTI_to-NVIC.png\" alt=\"\" \/><\/a><\/div>\n<div class=\"Anir_TopicContent\">STM32F1xx series are ARM Cortex M3 based MCUs. The Cortex M3 based MCUs have a sophisticated and yet easy to use interrupt system called the Nested Vectored Interrupt Controller (NVIC). It ensures low latency and high performance. There are several features of the NVIC and these are handled by the compiler. Our job is simply to enjoy the lightning fast interrupt responses owing to the NVIC.<\/div>\n<div class=\"Anir_TopicReadMore\"><a href=\"http:\/\/embedded-lab.com\/blog\/?p=9149\">Read more&#8230;<\/a><\/div>\n<\/div>\n<table>\n<tbody>\n<tr>\n<td align=\"center\"><!--Engineering360 300x250 Ad Tag--><\/p>\n<div id=\"tile1\"><script type=\"text\/javascript\">\/\/ <![CDATA[\ngoogletag.cmd.push(function() { googletag.pubads().display('\/4250\/Embedded-Lab', [300, 250], 'tile1'); });\n\/\/ ]]><\/script><\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<div class=\"Anir_TopicBlock\">\n<div class=\"Anir_TopicHeading\"><a href=\"http:\/\/embedded-lab.com\/blog\/?p=9662\">STM32 Internals<\/a><\/div>\n<div class=\"Anir_TopicImage\"><a href=\"http:\/\/embedded-lab.com\/blog\/?p=9662\"><img decoding=\"async\" src=\"http:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2014\/11\/Clock-Hardware.png\" alt=\"\" \/><\/a><\/div>\n<div class=\"Anir_TopicContent\">Most of us know about watchdog timers from previous experiences with common 8 bit MCUs like AVR and PIC. However when it comes to STM32 the idea of watchdog circuitry is elaborated. The options available for clock are also enhanced in the STM32 micros. In this post, we will see some of these supporting internal hardware.<\/div>\n<div class=\"Anir_TopicReadMore\"><a href=\"http:\/\/embedded-lab.com\/blog\/?p=9662\">Read more&#8230;<\/a><\/div>\n<\/div>\n<p><!--nextpage--><\/p>\n<table>\n<tbody>\n<tr>\n<td align=\"center\"><!--Engineering360 300x250 Ad Tag--><\/p>\n<div id=\"tile1\"><script type=\"text\/javascript\">\/\/ <![CDATA[\ngoogletag.cmd.push(function() { googletag.pubads().display('\/4250\/Embedded-Lab', [300, 250], 'tile1'); });\n\/\/ ]]><\/script><\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<div class=\"Anir_TopicBlock\">\n<div class=\"Anir_TopicHeading\"><a href=\"http:\/\/embedded-lab.com\/blog\/?p=10038\">Integrating STM32F4xx Standard Peripheral Library with MikroC Pro for ARM<\/a><\/div>\n<div class=\"Anir_TopicImage\"><a href=\"http:\/\/embedded-lab.com\/blog\/?p=10038\"><img decoding=\"async\" src=\"http:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2015\/02\/STM32F4-Discovery-Board.jpg\" alt=\"\" \/><\/a><\/div>\n<div class=\"Anir_TopicContent\">STM32F4xx series micros are far more advanced than anything else similar in the market. Apart from being fast 32-bit MCUs, STM32F4s have rich hardware peripheral support with DSP engine bonus. In terms of capabilities versus price tag, STM32F4s are all-square-winners. In recent times there\u2019s a surge in the STM32 user community. STM32 Discovery boards are proliferating like never before. In several occasions recently, I received tangible amounts of queries from readers regarding integration of STM32F4xx Standard Peripheral Library (SPL) with MikroC Pro for ARM.<\/div>\n<div class=\"Anir_TopicReadMore\"><a href=\"http:\/\/embedded-lab.com\/blog\/?p=10038\">Read more&#8230;<\/a><\/div>\n<\/div>\n<div class=\"Anir_TopicBlock\">\n<div class=\"Anir_TopicHeading\"><a href=\"http:\/\/embedded-lab.com\/blog\/?p=10116\">STM32 Analog-to-Digital Conversion<\/a><\/div>\n<div class=\"Anir_TopicImage\"><a href=\"http:\/\/embedded-lab.com\/blog\/?p=10116\"><img decoding=\"async\" src=\"http:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2015\/03\/Connection-Diagram.png\" alt=\"\" \/><\/a><\/div>\n<div class=\"Anir_TopicContent\">In traditional 8-bit MCUs aforementioned, the ADC block is somewhat incomplete and users have to work out tricky methods to solve certain problems. The ADC block of STM32 micros is one of the most advanced and sophisticated element to deal with in the entire STM32 arena. There are way too many options for this block in a STM32 micro. In this issue, we will explore this block.<\/div>\n<div class=\"Anir_TopicReadMore\"><a href=\"http:\/\/embedded-lab.com\/blog\/?p=10116\">Read more&#8230;<\/a><\/div>\n<\/div>\n<div class=\"Anir_TopicBlock\">\n<div class=\"Anir_TopicHeading\"><a href=\"http:\/\/embedded-lab.com\/blog\/?p=10445\">STM32 Digital-to-Analog Conversion<\/a><\/div>\n<div class=\"Anir_TopicImage\"><a href=\"http:\/\/embedded-lab.com\/blog\/?p=10445\"><img decoding=\"async\" src=\"http:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2015\/06\/Block-Diagram-580x468.jpg\" alt=\"\" \/><\/a><\/div>\n<div class=\"Anir_TopicContent\">Typically in most 8-bit micros, this block is unavailable and its need is somewhat loosely met with Pulse Width Modulation (PWM) block. This is partly because of their relatively less hardware resources and operating speeds. All STM32 micros also have PWM blocks but large capacity STM32s have DAC blocks too. The STM32 DAC block is not very complex and has similarity with the ADC block in terms of operating principle. The simplified block diagram below shows the major components of the STM32 DAC block.<\/div>\n<div class=\"Anir_TopicReadMore\"><a href=\"http:\/\/embedded-lab.com\/blog\/?p=10445\">Read more&#8230;<\/a><\/div>\n<\/div>\n<div class=\"Anir_TopicBlock\">\n<div class=\"Anir_TopicHeading\"><a href=\"http:\/\/embedded-lab.com\/blog\/?p=10773\">STM32 Timers<\/a><\/div>\n<div class=\"Anir_TopicImage\"><a href=\"http:\/\/embedded-lab.com\/blog\/?p=10773\"><img decoding=\"async\" src=\"http:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2015\/11\/20151030_123205.jpg\" alt=\"\" \/><\/a><\/div>\n<div class=\"Anir_TopicContent\">All modern micros are embedded with timer-counter modules and generally they are used for generating time bases, counting pulses, measuring time periods of waveforms, generating pulse width modulation (PWM) signals, triggering external devices and timing special events. STM32 micros have several timers designed for such applications. However unlike most 8-bit micros which possess two\/three timers with limited functionalities, the timers of STM32s are very elaborate and complex.<\/div>\n<div class=\"Anir_TopicReadMore\"><a href=\"http:\/\/embedded-lab.com\/blog\/?p=10773\">Read more&#8230;<\/a><\/div>\n<\/div>\n<div class=\"Anir_TopicBlock\">\n<div class=\"Anir_TopicHeading\"><a href=\"http:\/\/embedded-lab.com\/blog\/stm32s-internal-rtc\/\">STM32 Internal RTC<\/a><\/div>\n<div class=\"Anir_TopicImage\"><a href=\"http:\/\/embedded-lab.com\/blog\/stm32s-internal-rtc\/\"><img decoding=\"async\" src=\"http:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2016\/03\/Block_Diagram_Simplified.bmp\" alt=\"\" \/><\/a><\/div>\n<div class=\"Anir_TopicContent\">STM32s are in the list of those modern era microcontrollers that contains built-in RTC modules that require no additional hardware support. This tutorial covers basic features of STM32\u2019s internal RTC and how to use it for time-keeping applications.<\/div>\n<div class=\"Anir_TopicReadMore\"><a href=\"http:\/\/embedded-lab.com\/blog\/stm32s-internal-rtc\/\">Read more&#8230;<\/a><\/div>\n<\/div>\n<p><!--Engineering360 728x90 Ad Tag--><\/p>\n<div id=\"leaderboard1\"><script type=\"text\/javascript\">\/\/ <![CDATA[\ngoogletag.cmd.push(function() { googletag.pubads().display('\/4250\/Embedded-Lab', [728, 90], 'leaderboard1'); });\n\/\/ ]]><\/script><\/div>\n<p><script type=\"text\/javascript\">\/\/ <![CDATA[\ngoogle_ad_client = \"ca-pub-3251335376149574\"; google_ad_slot = \"2947480614\"; google_ad_width = 728; google_ad_height = 90;\n\/\/ ]]><\/script><br \/>\n<!-- STM32_Tutorials_728x90 --><br \/>\n<script src=\"\/\/pagead2.googlesyndication.com\/pagead\/show_ads.js\" type=\"text\/javascript\">\/\/ <![CDATA[\n\n\/\/ ]]><\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>These introductory and comprehensive STM32 tutorials are contributed by Shawon Shahryiar, a technologist, hardware maker, educator and EEE graduate from Ahsanullah University of Science and Technology, Dhaka to allow quick learning of ARM processor programming and interfacing. STM32 \u2013 Prior to Start STM32 ARM-based micros from STMicroelectronics pack high density resources than any other conventional microcontroller. They are also high speed devices, operating typically at 72MHz and beyond. The aim of this document is to address some common FAQs regarding STM32 prior to start developing applications with them. Read more&#8230; STM32 GPIO port familiarization The I\/O ports in STM32 are<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"open","template":"","meta":{"footnotes":""},"class_list":["post-3030","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/embedded-lab.com\/blog\/wp-json\/wp\/v2\/pages\/3030","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/embedded-lab.com\/blog\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/embedded-lab.com\/blog\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/embedded-lab.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/embedded-lab.com\/blog\/wp-json\/wp\/v2\/comments?post=3030"}],"version-history":[{"count":40,"href":"https:\/\/embedded-lab.com\/blog\/wp-json\/wp\/v2\/pages\/3030\/revisions"}],"predecessor-version":[{"id":13041,"href":"https:\/\/embedded-lab.com\/blog\/wp-json\/wp\/v2\/pages\/3030\/revisions\/13041"}],"wp:attachment":[{"href":"https:\/\/embedded-lab.com\/blog\/wp-json\/wp\/v2\/media?parent=3030"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}