Menu
Sepet

STM32 Programlamaya Giriş

PCB rehberleri · Yazılım geliştirme

STM32 Programlamaya Giriş

Okuma süresi: yaklaşık 3 dkElektromall teknik ekibi

Kısa cevap STM32 nasıl programlanır?

STM32'ler en kolay ST-Link programlayıcı ile SWD üzerinden programlanır: SWDIO, SWCLK, GND ve 3,3 V bağlanır. STM32CubeIDE'de işlemciyi seçip proje oluşturduktan sonra kod derlenir ve Run/Debug ile yüklenir. ST-Link yoksa BOOT0 pini yükseğe alınarak dahili UART bootloader ile de yüklenebilir.

Arduino ile başlayan birçok geliştirici bir noktada daha hızlı, daha çok çevre birimine sahip ve seri üretimde daha ekonomik bir mikrodenetleyiciye ihtiyaç duyar. STMicroelectronics'in STM32 ailesi bu geçişin en yaygın adresidir. Bu rehberde STM32F030 gibi giriş seviyesi bir çiple başlamak için gerekenleri anlatıyoruz: minimum devre, ST-Link ile SWD bağlantısı, STM32CubeIDE'de ilk proje, BOOT0 pini ve kendi kartınızı tasarlarken dikkat edilecek noktalar.

STM32F030C8T6'yı tanıyalım

ÖzellikDeğer
ÇekirdekARM Cortex-M0, 48 MHz
Bellek64 KB Flash, 8 KB SRAM
Besleme2,4 – 3,6 V (tipik 3,3 V)
KılıfLQFP-48 (0,5 mm hatve)
Çevre birimleri12 bit ADC, USART, SPI, I²C, zamanlayıcılar, DMA

F030 serisi düşük maliyetli ürünler için tasarlanmıştır; USB veya CAN gerekiyorsa F042/F072 ya da F103 serisine bakılır. Programlama yöntemi hepsinde aynıdır.

Minimum devre

  • Besleme: Her VDD pinine 100 nF, kartta bir adet 4,7 – 10 µF; VDDA pinine ayrıca 1 µF + 10 nF. 5 V'tan 3,3 V için AMS1117-3.3 gibi bir LDO yeterlidir.
  • NRST: 100 nF kondansatörle GND'ye (dahili pull-up vardır).
  • BOOT0: 10 kΩ ile GND'ye. BOOT0 düşükken çip flash'taki programı çalıştırır; yüksekken dahili seri bootloader'ı başlatır.
  • Saat: Dahili 8 MHz RC osilatör ve PLL ile 48 MHz'e çıkılabilir; hassas zamanlama veya UART hızları için 8 MHz harici kristal (ve iki adet 10 – 20 pF kondansatör) eklenebilir.
  • SWD başlığı: 3,3 V, SWDIO (PA13), SWCLK (PA14), GND ve isteğe bağlı NRST.

LQFP-48 kılıf 0,5 mm hatvelidir; elle lehimlenebilir ama flux ve biraz pratik ister (bkz. SMD lehimleme). Seri üretimde dizgi hizmetimizle kartlarınızı hazır dizili alabilirsiniz.

STM32CubeIDE'de ilk proje

  1. STM32CubeIDE'yi st.com'dan ücretsiz indirip kurun.
  2. File → New → STM32 Project → işlemci seçiminde STM32F030C8Tx'i arayın.
  3. Açılan grafik ekranda (CubeMX) PA5 pinine tıklayıp GPIO_Output seçin; System Core → SYS → Debug: Serial Wire seçili olsun.
  4. Kod üretildikten sonra main.c dosyasında while (1) döngüsünün içine şunu ekleyin:
/* USER CODE BEGIN 3 */
HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_5);
HAL_Delay(500);
/* USER CODE END 3 */

Run → Debug ile kod ST-Link üzerinden yüklenir ve hata ayıklayıcı başlar. Kodunuzu her zaman USER CODE BEGIN / END blokları arasına yazın; CubeMX yeniden kod ürettiğinde bu bloklar korunur.

Bu yazıda kullanılan ürünler

Sıkça sorulan sorular

Arduino IDE ile STM32 programlanabilir mi?

Evet, STM32duino (Arduino Core STM32) paketi birçok STM32 serisini destekler. Hızlı prototipler için uygundur; çevre birimlerinin tüm yeteneklerinden yararlanmak için CubeIDE ve HAL/LL kütüphaneleri daha esnektir.

"No STM32 target found" hatası neden olur?

SWDIO/SWCLK bağlantısı, hedefin beslemesi veya ortak GND eksiktir; ya da çalışan programınız SWD pinlerini başka bir işe atamıştır. Bu durumda "Connect under reset" seçeneğiyle NRST bağlıyken bağlanmayı deneyin.

STM32 pinleri 5 V toleranslı mı?

Veri sayfasında "FT" olarak işaretlenen pinler 5 V toleranslıdır; diğerleri değildir ve analog işlevli pinler hiçbir zaman 5 V'a dayanmaz. Kullanmadan önce pin tablosunu kontrol edin.

Direnç, kondansatör ve diğer komponentler için ürünlerimize göz atın.

Mikrodenetleyiciler