Showing results for 
Search instead for 
Did you mean: 

Getting started with the F3-Discovery board -- 30 days in

Associate II
Posted on January 29, 2015 at 18:42

So after 30 days in the ARM Cortex world, 30 days of searching, downloading, reading, and trying stuff out, this is a summary of what for me have become go-to resources.  I hope someone finds it useful. Please feel free to add what I've missed.

Example code

From the community at large: this forum and the stm32 forum are full of usefull code snippets and indispensable advice. I know I would not have working USART DMA code if not for Clive's posts.

From the pros at Nelson Mandela Metropolitan University:

All the sample programs you could possibly need to get started. Multiple examples for LCD, UART, VCP, ADC, PWM, servos, sensors, etc. These are pretty complete; for example, the USART code includes printf redirection.  I hope ST is sending them money. Just saying.



This is not a complete list of useful documentation, but it does, I think, represent something like a core.

For the F3-Discovery board

UM1570 User manual STM32F3DISCOVERY

This one is pretty much essential because it lists the pins that are ''taken'' on-board, as well as those that are unused and available for each peripheral. I haven't found a graphical representation of this data, but you can make your own from Table 6:

STM32F3 Hands-On Workshop MDK-ARM

Setting up MDK-ARM for the F3Discovery board; this is the one doc that worked for me:

For the STM32F303 processor

Technical Data Sheet - STM32F303xB STM32F303xC

Overview of the pieces that make up the stm32f303. A good read:

Insider's Guide to the STM32 - Hitex

Another good read:

UM1581 User manual Standard Peripheral Library V1.1.0


Documents all the function calls for each peripheral:

And finally, the bible:

RM0316 Reference manual

This one could use a once-over by a technical writer, but we should focus on its essential utility.  If someone tells you that you have to set the ADD bits of the CR2 register, what the? This is where you find it: