( ๐ In development ) CuprumCore is an open-source hardware and software ecosystem for developing electronic devices based on STM32 microcontrollers, providing a range of proprietary boards and a software core that combines ease of coding with high performance.
Documentation: https://github.com/SirSalch/CuprumCore/wiki
#include <CuprumCore.hpp>
int main(void) {
/* Setup */
Pin led(&PB2, OUTPUT); // Configuring the PB2 pin of the microcontroller as an output
/* loop */
while(1) {
led.set(HIGH); // Enable led
delay(300); // waiting 300 milliseconds
led.set(LOW); // Disable led
delay(300); // waiting 300 milliseconds
}
return 0;
}Program weight - FLASH:1026 bytes, RAM:40 bytes
#include <CuprumCore.hpp>
int main(void) {
/* Setup */
Pwm out(&Pwm::CH1, 1000); // Create the first PWM channel with a prescaler of 1000
out.generate(500); // Generate a PWM with a signal filling of 50%
/* Loop */
while(1) {
}
return 0;
}Program weight - FLASH:1262 bytes, RAM:104 bytes
#include <CuprumCore.hpp>
int main(void) {
/* Setup */
I2c::init(&I2C1, 100/*kHz*/);
/* Loop */
while(1) {
I2c::send(&I2C1, 0x27 /*Adress*/, 0x02 /*Data*/);
delay(100);
}
return 0;
}Program weight - FLASH:1388 bytes, RAM:120 bytes
Plan for the board "CuprumEmber", based on STM32F412RET6
P.S. It will be expanded.

The toolkit for working with St-Link
sudo apt install stlink-toolsThe compiler for ARM microcontrollers
sudo apt install gcc-arm-none-eabiCloning the repository to your computer
git clone https://github.com/SirSalch/CuprumCore.gitGo to the directory of the builder script
cd <Your path to the repository>/'Board CuprumEmber (STM32F412RET6)'/EmberCore/cuprum_core/buildAllow the script to run without superuser rights
sudo chmod +x Build.shRun the compilation and upload the firmware to the microcontroller
./Build.shGNU General public license v3.0


