Consultancy and Total Solutions Training Provider for Embedded Systems, Electronics and Electrical Engineering, Programming, Computing, Operations, ISO9000, ISO14000 and Management.

Bridging the Gap

Training Courses

Programming and Interfacing ARM Cortex-M Microcontrollers

Course id: 0044


ARM cores are at the heart of most mid-to-high end electronics devices, such as smartphones, tablets and routers. ARM's customers, such as Infineon, AMD, Atmel, Energy Micro, NXP, Broadcom etc., shipped a reported 7.9 billion ARM processors, representing 95% of processors used in smartphones, 90% in hard disk drives, 40% in digital televisions/set-top boxes and 20% in mobile computers, in 2011. Its ubiquitousity is primarily due to its efficient (code density and power wise) processing core coupled with easy migration paths.

This course provides an introduction to the STM32F103ZE ARM Cortex-M3 processor and instruction sets. It emphasises on bare-metal programming (i.e. no operating system support) and interfacing with the peripheral. Participants would be introduced to the CMSIS standard and the ST Microelectronics Standard Peripheral Library.

What you will learn

This course concentrates on the theoretical and practical knowledge to allow participants to achieve the following learning outcomes. Upon completing the course, participants would be able to:
  • Know the ARM Cortex-M core architecture
  • Familiarise and use the suitable development tools
  • Understand and use the CMSIS standard and ST Microelectronic's Standard Peripheral Library for code portability and reusability
  • Configure and use the interrupt system
  • Configure and use the on-board peripherals

Who should attend

This course is particularly suited for engineers who would like to know the ARM architecture and/or required to program them in OS-less environments.


Participants are required to know how to program in C, and have a general understanding of processor architecture.

Course methodology

This course is presented in a workshop style with example-led lectures interlaced with demonstrations and hands-on practical for maximum understanding.

Course duration

4 days.

Course structure

  • Introduction
    • ARM Cortex Overview
    • Overview of the development tools
    • Hands-on practical 1: Getting Started
  • GPIO
    • Configuring and using the GPIOs
    • Alternate GPIO functions
    • Hands-on practical 2: General Purpose Inputs/Outputs
  • Cortex Microcontroller Software Interface Standard
    • Overview of CMSIS
    • CMSIS-CORE: Processors and peripheral register interface
    • Hands-on practical 3: Introduction to CMSIS
    • CMSIS-DSP: DSP library for fixed and floating-point computation implementation
    • Hands-on practical 4: Using CMSIS-DSP
  • Nested Vectored Interrupt Controller (NVIC)
    • Architecture of the NVIC
    • Configuration of the NVIC
    • Hands-on practical 5: Interrupt handling
  • Microcontroller Peripherals
    • Overview of the Timers
    • Configuring and using timers
    • Hands-on practical 6: Flashing LED
    • Overview of RS232 communication
    • Configuring and using the UART
    • Hands-on practical 7: Hello World
    • Overview of the Analogue-to-Digital Converter
    • Configuring and using the ADC
    • Hands-on practical 8: AD Conversion
    • Overview of SPI
    • Configuring and using SPI
    • Hands-on practical 9: Using SPI
    • Overview of I2C
    • Configuring and using I2C
    • Hands-on practical 10: Accessing I2C EEPROMs
    • Overview of the Digital-to-Analogue Converter
    • Configuring and using the DAC
    • Hands-on practical 11: DA Conversion


Dr Royan Ong

Course Schedule





News on ProvenPac

  ProvenPac Sdn. Bhd.
  C-4-3 Gembira Park,
  Jalan Riang, 58200
  Kuala Lumpur, Malaysia

  Tel: +603 03 5889 5889

No public course
currently scheduled.


Please inform me when
this course is scheduled.


Please contact me to
arrange in-house training.