WIP
Anzahl | Beschreibung | Wert | DigikeyNr |
---|
1 | STM32F303CC | LQFP48 | 497-13318-ND |
1 | NCP1117 | SOT-223 | NCP1117LPST33T3GOSCT-ND |
1 | Quarz | 8 MHz | 887-1448-1-ND |
1 | USB-Mini B Buchse | ED2992CT-ND | |
1 | Ferritebead | 0603 | ACML-0603-2000-TCT-ND |
2 | Taster | SMD | 450-1129-ND |
4 | SMD Kondensator 0603 | 100nF | |
2 | SMD Kondensator 0805 | 10uF | 311-1460-1-ND |
2 | SMD Kondensator 0603 | 16pF | 445-5051-1-ND |
2 | SMD Widerstand 0603 | 22Ohm | 311-22.0HRCT-ND |
2 | SMD Widerstand 0603 | 10KOhm | |
1 | SMD Widerstand 0603 | 1.5KOhm | 311-1.50KHRCT-ND |
Der Chip verfügt über einen integrierten Bootloader. Der Code kann wahlweise über UART oder USB hochgeladen werden.
Um den Chip im Bootloadermodus zu starten muss man auf den Resetknopf drücken während man den Bootknopf hält. Danach kann der Bootknopf losgelassen werden.
STMikro stellt eine GUI basierte Software zur Verfügung mit der man Programmcode in den Mikrocontroller hochladen kann. Diese Software gibt es hier.
Dfu-util unterstützt STM32 Mikrocontroller ab Version 0.5. Der folgende Befehl lädt den Inhalt der Datei filename.bin in den Flash des Mikrocontrollers.
dfu-util -s 0x08000000 --alt 0 -D filename.bin
Es ist auch möglich den Code über JTAG oder SWD hochzuladen. Dazu benötigt man jedoch einen JTAG oder SWD Programmieradapter eine kleine Auswahl kompatibler Adapter findet sich hier
#include "stm32f30x_conf.h" #include <stm32f30x.h> void delay(uint32_t delay) { while (delay-- > 0) { asm("nop"); } } int main(void){ GPIO_InitTypeDef GPIO_InitStructure; /* Enable GPIO A Clock */ RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE); /* Enable PA3 for output */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_Level_1; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL ; GPIO_Init(GPIOA, &GPIO_InitStructure); for (;;){ /* LED on */ GPIOA->BSRR = (1<<3); delay(10000000); /* LED off */ GPIOA->BRR = (1<<3); delay(10000000); } return 0; }