{"id":4139,"date":"2024-09-18T11:38:05","date_gmt":"2024-09-18T09:38:05","guid":{"rendered":"https:\/\/msalamon.pl\/?p=4139"},"modified":"2025-12-27T15:27:27","modified_gmt":"2025-12-27T14:27:27","slug":"my-new-course-stm32-on-registers","status":"publish","type":"post","link":"https:\/\/msalamon.pl\/en\/my-new-course-stm32-on-registers\/","title":{"rendered":"My NEW course: STM32 on Registers"},"content":{"rendered":"\n<h1 class=\"wp-block-heading\">My NEW course: STM32 on Registers<\/h1>\n\n\n\n<p>Straight to the point: the long-awaited course on programming STM32 on registers is finally coming! Oh, how often many of my readers and course participants themselves have asked about it \ud83d\ude05 After months of work, I\u2019m ready to announce its launch.<\/p>\n\n\n\n<p>When? The first lessons will appear in October 2024 \ud83e\udd73<\/p>\n\n\n\n<p>So if you program STM32 using HAL and want to go further (or rather: deeper), this course will be for you! You\u2019re probably wondering how it differs from my previous materials? Get ready for a unique journey through the secrets of STM32 microcontrollers!<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What is the STM32 on registers course?<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">An extension of the existing YouTube materials<\/h3>\n\n\n\n<p>You may know my YouTube video series where we discussed STM32 from the C0 family, programming them at the register level. This series, although valuable, was only an introduction to the topic. Now it\u2019s time for something bigger! In the new course, we\u2019ll focus on a much deeper understanding of peripherals and their interconnections.<\/p>\n\n\n\n<p>If you don\u2019t know these videos yet, I invite you to the playlist below \ud83d\udc47<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Jak utworzy\u0107 projekt na STM32 pod pisanie na rejestrach? | STM32 na Rejestrach #1\" width=\"750\" height=\"422\" src=\"https:\/\/www.youtube.com\/embed\/ShCWoicHkKM?list=PLMr8JGWm4y7_l6qIVBSePaSQ0vuLWMfGp\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Why registers instead of HAL?<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Differences between HAL and registers<\/h3>\n\n\n\n<p>You\u2019re probably wondering why it\u2019s worth abandoning HAL, which speeds up application deployment, in favor of working directly with the microcontroller registers. The answer is simple \u2013 <strong>optimization<\/strong>.<\/p>\n\n\n\n<p>HAL, although it has many advantages, is often not efficient enough where every clock cycle matters. An example could be the desire to maximize the battery life of devices.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Benefits of register-level programming<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>A thorough understanding of how the microcontroller works<\/strong> \u2013 working with registers forces a full analysis of the documentation, which translates into a better understanding of how STM32 works.<\/li>\n\n\n\n<li><strong>Value on the job market<\/strong> \u2013 knowledge of register-level programming is a valuable skill that will set you apart on the job market. Many companies still rely on direct programming without using HAL.<\/li>\n\n\n\n<li><strong>Appreciating HAL<\/strong> \u2013 when you learn low-level programming, you\u2019ll quickly notice how much work HAL saves. This will make you more aware of your programming choices.<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">Main course topics<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Peripheral interconnections and DMA<\/h3>\n\n\n\n<p>The most important part of the course will be learning how to effectively use connections between peripherals, especially using <strong>DMA<\/strong>. Thanks to DMA, we can significantly relieve the CPU by handing simpler tasks (like data transfer) over to automatic mechanisms. This way we get rid of a large part of the CPU\u2019s workload, and it can do something much more suited to it.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Practical uses of registers<\/h3>\n\n\n\n<p>Although HAL is fast and convenient, working with registers gives full control over how devices operate. You\u2019ll learn how to squeeze maximum performance out of STM32, especially where real-time operation matters. We\u2019ll get rid of the excessive overhead that HAL introduces.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Is the STM32 on registers course for you?<\/h2>\n\n\n\n<p>If you\u2019re interested in programming microcontrollers at a higher level, this course is for you! You don\u2019t have to give up HAL, but if you want to understand how STM32 works from the ground up, optimize code, and build more efficient applications, it\u2019s worth learning how to work with registers.<\/p>\n\n\n\n<p>In my opinion, there\u2019s no such thing as only HAL or only registers. For years I\u2019ve been repeating that the most important thing is adapting to the project and requirements. Where you can \u2013 use HAL. Where you need performance \u2013 CMSIS. Mix freely.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What\u2019s next?<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">How to join the course?<\/h3>\n\n\n\n<p>On the <a href=\"https:\/\/stm32narejestrach.pl\" target=\"_blank\" rel=\"noopener\">stm32narejestrach.pl<\/a> website you\u2019ll find a form that will let you join the waiting list. The course will launch in October 2024, but if you sign up now, you\u2019ll get access to a special presale offer that will never happen again. The course content is delivered in Polish.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Course price and dates<\/h3>\n\n\n\n<p>The exact course price will be announced soon. The curriculum is still being refined, but joining the waiting list is the best way not to miss the most important information and to get access to the course on the best terms. The course content is delivered in Polish.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Number of interested people vs. course launch<\/h3>\n\n\n\n<p>I\u2019m making the course launch conditional on a sufficient number of people being interested and ready to join the course. I don\u2019t want to do something just for the sake of doing it. It has to be mutually beneficial, meaning both for me and for you. Sign up for the waiting list so I can see that it\u2019s worth getting started. The course content is delivered in Polish.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Summary<\/h2>\n\n\n\n<p>The new STM32 on Registers course is a unique opportunity to learn advanced STM32 microcontroller programming. Thanks to combining theory with practice and a detailed discussion of the topics, participants will not only deepen their knowledge, but also gain skills that will set them apart on the job market. I\u2019ll see you in October! The course content is delivered in Polish.<\/p>\n\n\n<div class=\"kk-star-ratings kksr-auto kksr-align-left kksr-valign-bottom\"\n    data-payload='{&quot;align&quot;:&quot;left&quot;,&quot;id&quot;:&quot;4139&quot;,&quot;slug&quot;:&quot;default&quot;,&quot;valign&quot;:&quot;bottom&quot;,&quot;ignore&quot;:&quot;&quot;,&quot;reference&quot;:&quot;auto&quot;,&quot;class&quot;:&quot;&quot;,&quot;count&quot;:&quot;0&quot;,&quot;legendonly&quot;:&quot;&quot;,&quot;readonly&quot;:&quot;&quot;,&quot;score&quot;:&quot;0&quot;,&quot;starsonly&quot;:&quot;&quot;,&quot;best&quot;:&quot;5&quot;,&quot;gap&quot;:&quot;0&quot;,&quot;greet&quot;:&quot;&quot;,&quot;legend&quot;:&quot;0\\\/5 - (0 votes)&quot;,&quot;size&quot;:&quot;24&quot;,&quot;title&quot;:&quot;My NEW course: STM32 on Registers&quot;,&quot;width&quot;:&quot;0&quot;,&quot;_legend&quot;:&quot;{score}\\\/{best} - ({count} {votes})&quot;,&quot;font_factor&quot;:&quot;1.25&quot;}'>\n            \n<div class=\"kksr-stars\">\n    \n<div class=\"kksr-stars-inactive\">\n            <div class=\"kksr-star\" data-star=\"1\" style=\"padding-right: 0px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"2\" style=\"padding-right: 0px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"3\" style=\"padding-right: 0px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"4\" style=\"padding-right: 0px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"5\" style=\"padding-right: 0px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n    <\/div>\n    \n<div class=\"kksr-stars-active\" style=\"width: 0px;\">\n            <div class=\"kksr-star\" style=\"padding-right: 0px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 0px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 0px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 0px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 0px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n    <\/div>\n<\/div>\n                \n\n<div class=\"kksr-legend\" style=\"font-size: 19.2px;\">\n            <span class=\"kksr-muted\"><\/span>\n    <\/div>\n    <\/div>\n","protected":false},"excerpt":{"rendered":"<p>My NEW course: STM32 on Registers Straight to the point: the long-awaited course on programming STM32 on registers is finally coming! Oh, how often many of my readers and course participants themselves have asked about it \ud83d\ude05 After months of work, I\u2019m ready to announce its launch. When? The first [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":3921,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_links_to":"","_links_to_target":""},"categories":[160],"tags":[178,176,174],"class_list":["post-4139","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-stm32","tag-kursstm32","tag-programming","tag-stm32"],"_links":{"self":[{"href":"https:\/\/msalamon.pl\/en\/wp-json\/wp\/v2\/posts\/4139","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/msalamon.pl\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/msalamon.pl\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/msalamon.pl\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/msalamon.pl\/en\/wp-json\/wp\/v2\/comments?post=4139"}],"version-history":[{"count":3,"href":"https:\/\/msalamon.pl\/en\/wp-json\/wp\/v2\/posts\/4139\/revisions"}],"predecessor-version":[{"id":4142,"href":"https:\/\/msalamon.pl\/en\/wp-json\/wp\/v2\/posts\/4139\/revisions\/4142"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/msalamon.pl\/en\/wp-json\/wp\/v2\/media\/3921"}],"wp:attachment":[{"href":"https:\/\/msalamon.pl\/en\/wp-json\/wp\/v2\/media?parent=4139"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/msalamon.pl\/en\/wp-json\/wp\/v2\/categories?post=4139"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/msalamon.pl\/en\/wp-json\/wp\/v2\/tags?post=4139"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}