Bluepill (STM32F103) + NeoPixel version of the Simon game
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.
Ondřej Hruška 85590593ce Simon Says implementation il y a 8 ans
.idea Simon Says implementation il y a 8 ans
Drivers Initial import il y a 8 ans
Inc Simon Says implementation il y a 8 ans
Src Simon Says implementation il y a 8 ans
User Simon Says implementation il y a 8 ans
build Initial import il y a 8 ans
.cproject cleanup il y a 8 ans
.gitignore Initial import il y a 8 ans
.mxproject Simon Says implementation il y a 8 ans
.project cleanup il y a 8 ans
CMakeLists.txt renamed project etc il y a 8 ans
README.md readme il y a 8 ans
STM32F103C8Tx_FLASH.ld Initial import il y a 8 ans
f103-bluepill.ioc Simon Says implementation il y a 8 ans
f103-bluepill.xml cleanup il y a 8 ans
f103.cmake renamed project etc il y a 8 ans
flash.sh Initial import il y a 8 ans

README.md

STM32F103 CLion CubeMX boilerplate

Basics

  • This is a CMake / CLion project, using arm-none-eabi-gcc and arm-none-eabi-newlib.
  • It's built on Linux. Whether it works on Windows or MacOS is left as an exercise to the reader 😛
  • Update the init files using STM32CubeMX to fit your project needs. Open bluepill.ioc in CubeMX, then export to the same folder.
  • Since we're using CubeMX, this project is based on HAL. It's not so bad, if you don't look at the source too much.

Getting Started - Usage

  • The default setup is USART1, 115200 baud, at PA9 (Tx), PA10 (Rx); PC13 as output (built-in LED).
  • The program branches from main.c into User/user_main.c where the actual application code starts.
  • Initialization of the application code (libs) is done in User/init.c. Exception handlers and such are handled in User/handlers.c.
  • Use the included Debounce module for button inputs, Timebase for periodic and future tasks.
  • Functions from User/utils/debug.h print messages to USART1, and work like printf(). Regular printf() works as well.
  • Use malloc_s() and calloc_s() if you want error message on malloc fail instead of a hard fault / memory corruption.
  • Flash using ./flash.sh. Hold the reset button on the board, and release it right after issuing the flash command.