Click the blue text to follow, reply with “Introduction Materials” to get a comprehensive tutorial from beginner to advanced on microcontrollers
Written by | Wu Ji (WeChat: 603311638)
The full text is about1265 words, reading will take about 5 minutes
From Keil C51 to Keil5 MDK, I have unknowingly used Keil for over a decade.
Although new development environments have emerged, Keil should be the most familiar for veteran engineers…
Keil has released many versions, and many people are most familiar with Keil C51 and Keil5 MDK.

When we develop and compile programs for STM32, we basically use the Keil5 software.
Keil5 and Keil5 MDK (Microcontroller Development Kit) are different versions of the same software.
Keil5 is an embedded development tool launched by Keil, including three versions: MDK, DS-MDK, and MDK-Lite, among which MDK is the most comprehensive version supporting the most devices and functions.
Keil5 provides a complete development environment, including an editor, compiler, debugger, etc.
Keil5 supports multiple processor architectures such as ARM, Cortex-M, Cortex-A, 8051, etc.
On the other hand, Keil5 MDK is a development tool specifically for ARM Cortex-M microcontrollers launched by Keil.
Keil5 MDK includes all the features of Keil5 while also supporting programming, debugging, and simulation for ARM Cortex-M series microcontrollers, along with corresponding software libraries and tools.
Keil5 MDK also provides some unique features, such as support for real-time operating systems, multi-core processors, and PowerDebugging.
Below is a summary of several differences between Keil5 and Keil5 MDK:
1. Supported Processor Architectures
Both Keil5 and Keil5 MDK support various processor architectures, such as ARM, Cortex-M, Cortex-A, 8051, etc.
However, Keil5 MDK primarily targets the development of ARM Cortex-M series microcontrollers, thus offering more comprehensive support for ARM Cortex-M microcontrollers.
Keil5 MDK also includes compilers, debuggers, and simulators for Cortex-M series microcontrollers, along with corresponding software libraries and tools, facilitating rapid development and debugging.
2. Supported Features and Libraries
Keil5 and Keil5 MDK also differ in the features and libraries they support.
Keil5 provides a general development environment, including an editor, compiler, debugger, etc., while supporting various processor architectures, but it has relatively fewer supported features and libraries.
In contrast, Keil5 MDK, aimed at ARM Cortex-M series microcontrollers, offers more features and libraries, such as real-time operating systems, multi-core processors, and PowerDebugging. These features and libraries can help users develop efficient and stable embedded applications faster.
3. Ease of Use
The difficulty of using Keil5 and Keil5 MDK also varies.
Keil5 provides a general development environment that, while supporting various processor architectures, is generally more difficult to use compared to Keil5 MDK.
On the other hand, Keil5 MDK, aimed at ARM Cortex-M series microcontrollers, is easier to use and can be quickly mastered.
Keil5 MDK also provides rich documentation and example programs, making it convenient for users to learn and reference.
Conclusion: It can be said that Keil5 is a general embedded development tool, while Keil5 MDK is a specialized development tool for ARM Cortex-M series microcontrollers.
Finally, it’s time for a surprise!!!Recently, some fans asked me for microcontroller materials, so I spent a month summarizing my 10 years of product development experience, and collected this most generous, hardcore, and practical “microcontroller beginner to advanced tutorial + toolkit + 22 popular projects”, sharing it with everyone.
In addition, I’ll tearfully share my secret stash of 22 popular open-source projects, including source code + schematics + PCB + documentation, to help you quickly advance to a master!
If you want the above “microcontroller beginner to advanced tutorial toolkit”, you can add Wu Ji on WeChat:
Below are more original works by Wu Ji on personal growth experiences, industry insights, and technical content.1. What is the growth path of an electronic engineer? A 10-year, 5000-word summary2. How to quickly understand others’ code and thinking3. How to manage too many global variables in microcontroller development projects?4. Why is C language development for microcontrollers mostly done using global variables?5. How to achieve modular programming in microcontrollers? The practicality is astonishing!
6. Detailed explanation of using callback functions in C language and their actual effects
7. A step-by-step guide to implementing queue code in C language, easy to understand and very detailed!
8. Detailed explanation of pointer usage in C language, easy to understand and very detailed!