- Go to RSLK for examples for Introduction to robots
- Volume 1: Examples for Introduction to the MSP432 Microcontroller
- Volume 2: Examples for Real-Time Interfacing to the MSP432 Microcontroller
- Volume 3: Examples for Real-Time Operating Systems are associated with the edX MOOC.
- Download all MSP432 projects for Volumes 1 and 2
Keil uVision Lab for the TI MSP432 Board
This hands-on lab demonstrates various examples with the TI MSP432 Family processors and Keil µVision IDE. The Blinky, RTX-Blinky, LoPower and DSP Sine examples are included in the APNT_276.ZIP file below. All examples are compliant to Cortex Microcontroller Software Interface Standard (CMSIS v4.5.0). Serial Wire Viewer trace, memory reads and writes and the RTX Kernel Awareness Viewer using the uVision debugging tools are shown. Go to ARM Application Note 276
Volume 1 Programs
Printf_UART_MSP432 |
Program 2.1 |
Virtual COM port through debugger USB. |
InputOutput_MSP432 InputOutput_MSP432asm |
Program 4.1 |
Functional abstraction of the switches and LED on the LaunchPad. Switches include internal pull-up resistors. |
Switch_MSP432 Switch_MSP432asm |
Program 4.2 |
Interface of a positive logic switch on P1.5. Switches include an external pull-down resistor. |
SSR_MSP432 SSR_MSP432asm |
Program 4.3 Example 4.2 |
Interface of a positive logic output on P2.2. Uses abstraction to make the software easy to use. |
Squarewaves_MSP432 Squarewaves_MSP432asm |
Program 4.4 Example 4.1 |
Generate two out of phase square waves on P2.2 and P2.1. Uses abstraction to make the software easy to use. |
GPIO_MSP432 GPIO_MSP432asm |
Program 4.5 Example 4.3 |
Generate 5,6,10,9 on Port 4. Uses abstraction to make the software easy to use. |
ClockSystem_MSP432 ClockSystem_MSP432asm |
Program 4.6 |
Functions to allow execution at 32kHz or 48 MHz. Trade-off between execution speed and electrical power. |
SysTick_MSP432 SysTick_MSP432asm |
Program 4.7 |
Use the SysTick module to wait designated time. Uses busy wait synchronization. |
Scanf_UART_MSP432 |
Program 4.9 |
Virtual COM port through debugger USB. BUG: scanf on CCS looses the first character. |
ProfileSqrt_MSP432 |
Program 4.12 |
Measurement of dynamic efficiency. Uses SysTick and an output pin to profile execution speed. |
ProfileFact_MSP432 |
Program 5.20 |
Measurement of dynamic efficiency. Uses SysTick to profile execution speed. |
PointerTrafficLight_MSP432 PointerTrafficLight_MSP432asm |
Program 6.8 Example 6.4 |
Traffic light system with two sensors and six lights. Moore Finite State Machine with pointers. |
MealyEngineControl_MSP432_MSP432 MealyEngineControl_MSP432asm |
Program 6.9 |
Electronic engine controller with one input and two outputs. Mealy Finite State Machine with pointers. |
HeapFixedBlock_MSP432 HeapFixedBlock_MSP432asm |
Programs 6.10 6.11, 6.12, 6.13 |
Functions to allocate and release memory blocks. Fixed size blocks using linked lists. |
LLFifo_MSP432 LLFifo_MSP432asm |
Programs 6.15 6.16, 6.17 |
First in first out queue. Uses linked lists and HeapFixedBlock. |
LinearInterpolation_4C123 LinearInterpolation_4C123asm |
Program 6.22 |
Fixed-point sin function. Uses a table and linear interpolation. |
UART_MSP432 UART_MSP432asm |
Program 8.1 |
Device driver functions that implement serial I/O. Uses busy-wait synchronization. |
Nokia5110_MSP432 |
Section 8.4 |
Device driver functions that interface a Nokia 5110 LCD. Uses SPI and busy-wait synchronization. |
EdgeInterrupt_MSP432 |
Program 9.4 |
Edge triggered interrupt on P1.1 switch. Real-time processing using interrupt synchronization. |
TwoButtonVector_MSP432 |
Program 9.5 Example 9.1 |
Edge triggered interrupt on P5.3 and P6.3 switches. Real-time processing using interrupt synchronization. |
TwoButtonPoll_MSP432 |
Program 9.6 Example 9.1 |
Edge triggered interrupt on P6.2 and P6.3 switches. Real-time processing using interrupt synchronization. |
PeriodicSysTickInts_MSP432 |
Program 9.7 Section 9.6 |
Periodic interrupt using SysTick. Real-time processing using interrupt synchronization. |
PeriodicTimerA0Ints_MSP432 |
Program 9.8 Section 9.7 |
Periodic interrupt using TimerA. Real-time processing using interrupt synchronization. |
Profile_MSP432 |
Program 9.13 Section 9.9 |
Profile multi-threaded system. Using both SysTick and TimerA interrupts. |
ADCSWTrigger_MSP432 |
Program 10.2 Program 10.3 |
14-bit ADC sampling of P4.7. Using software start and busy-wait. |
ADC_Resolution_MSP432 |
Section 10.4.2 Figure 10.13 |
Repeated measurement to assess ADC resolution. Using 512-point averaging filter. |
FIFO_MSP432 |
Program 11.5 Section 11.3 |
First in first out queue. Using both pointers and indexed addressing. |
UARTInts_MSP432 |
Program 11.6 |
Device driver functions that implement serial I/O. Uses interrupt synchronization and two FIFO queues. |
Volume 2 Programs
PortMapping_MSP432 |
Program 2.1 |
Port mapping is used to map the Timer0A CCR0 function to P2.7. |
InputOutput_MSP432 |
Program 2.7 Program 2.8 |
A set of functions using P1.4,P1.1 as inputs and P2.2-0 as outputs. A friendly set of functions using P1.4,P1.1 as inputs and P2.2-4 as outputs. |
SSR_MSP432 |
Program 2.9 |
A set of functions using P2.3 as an output. |
Switch_MSP432 |
Program 2.10 |
A set of functions that interface an input switch to P1.5. |
ClockSystem_MSP432 |
Program 2.11 |
A set of functions that set the clock system to the DCO,LFEXT or HFEXT bus clock. |
Systick_MSP432 |
Program 2.12 |
Timer functions that implement a time delay. |
GPIO_MSP432 |
Program 2.13 |
C software for the stepper motor system. |
TableLineTracker_MSP432 |
Program 3.1 |
Table implementation of a Moore FSM. |
PointerLineTracker_MSP432 |
Program 3.2 |
Pointer implementation of a Moore FSM. |
FIFO_MSP432 |
Program 3.7 Program 3.8 Program 3.9 Program 3.10 |
Two-pointer implementation of a FIFO. Implementation of a two-index FIFO. The size must be a power of two. Two-pointer macro implementation of a FIFO. Macro implementation of a two-index FIFO. The size must be a power of two. |
HeapFixedBlock_MSP432 |
Program 3.11 |
Fixed-size memory manager implementing a heap. |
ProfileSqrt_MSP432 |
Program 3.16 Program 3.17 Program 3.18 Program 3.19 Program 3.20 |
Profiling of a sqrt function. |
LCD_MSP432 |
Program 4.2 Program 4.3 |
LCD driver based on the HD44780 controller. |
Stepper_MSP432 |
Program 4.4 Program 4.5 Program 4.6 |
Stepper motor driver, double circular linked list . |
UART_MSP432 |
Program 4.10 |
Device driver functions that implement serial I/O. |
MatrixKeypad_MSP432 |
Program 4.11 Program 4.12 |
Scanning software for a matrix keyboard. |
EdgeInterrupt_MSP432 |
Program 5.6 |
Edge-triggered interrupts that count falling edges of P1.1 and P1.4. |
TwoButtonVector_MSP432 |
Program 5.7 |
Edge-triggered interrupts with vectored interrupts. |
TwoButtonPoll_MSP432 |
Program 5.8 |
Edge-triggered interrupts with polled interrupts. |
UARTint_MSP432 |
Program 5.9 |
Interrupt-driven device driver for the UART uses two software FIFOs to buffer data. |
PeriodicSysTickInts_MSP432 |
Program 5.10 |
Implementation of a periodic interrupt using SysTick. |
MatrixKeypadPeriodic_MSP432 |
Program 5.11 |
Periodic polling interface of a scanned keyboard. |
InputCapture_MSP432 |
Program 6.1 |
Counting interrupt using input capture. |
PeriodMeasure_MSP432 |
Program 6.2 |
16-bit period measurement on P7.3. |
PeriodicTimerA0Ints_MSP432 PeriodicTimerA1Ints_MSP432 |
Program 6.7 |
Implementation of a periodic interrupt using TimerA0 and TimerA1. |
TimerA0PWM_MSP432 |
Program 6.8 |
Software to generate a PWM output using Timer A0. |
FreqMeasure_MSP432 |
Program 6.10 |
Software to measure frequency with a resolution of 100 Hz. |
MAX5353_MSP432 |
Program 7.2 |
Functions to initialize and to send data to the DAC using the SSI. |
MAX1246_MSP432 |
Program 7.3 |
Functions to initialize and to receive data from the ADC using the SSI. |
74HC595_MSP432 74HC165_MSP432 |
Program 7.4 |
Software to control an output parallel port expanded using the SSI. Software to control an input parallel port expanded using the SSI. |
I2C_MSP432 |
Program 7.5 Program 7.6 Program 7.7 |
Functions to use I2C. |
PWMSine_MSP432 |
Program 8.7 |
Software for PWM DAC creating a 1 kHz sine wave. |
ADCSWTrigger_MSP432 ADCTA0Trigger_MSP432 ADC_Resolution_MSP432 ADCSWTriggerTwoChan_MSP432 |
Program 8.8 |
Software to sample from the ADC. |
LowPower_MSP432 |
Program 9.1 Program 9.2 |
Software to put the processor into deep sleep (LPM3.5). |
ESP8266_MSP432 |
Program 11.1 |
Software for fecthing weather data from the internet using an ESP8266 wifi module. |