ST-LOGO

Mikrokontroler STM32WL3x

STM32WL3x-Mikrokontroler-PRODUK

Petunjuk Penggunaan Produk

  • Paket STM32CubeWL3 mencakup API lapisan rendah (LL) dan lapisan abstraksi perangkat keras (HAL) yang mencakup perangkat keras mikrokontroler.
  • Ia juga menyediakan komponen middleware seperti SigfoxTM, FatFS, dan kernel FreeRTOS.
  • Paketnya sudah dilengkapi dengan exampfile dan aplikasi untuk implementasi yang mudah.
  • Arsitektur STM32CubeWL3 dibangun berdasarkan tiga level: Aplikasi, HAL, dan LL.
  • API HAL dan LL mencakup berbagai persyaratan aplikasi.
  • HAL menawarkan penggunaan periferal dasaramples, dan LL menyediakan rutinitas tingkat rendah.
  • Level ini mencakup Board Support Package (BSP) dan sublapisan HAL.
  • BSP menawarkan API untuk komponen perangkat keras pada papan, sementara HAL menyediakan penggunaan periferal dasarampsedikit.
  • Driver BSP menghubungkan driver komponen ke papan tertentu, membuatnya mudah untuk diporting ke perangkat keras lainnya.
  • STM32CubeWL3 HAL dan LL bersifat komplementer, mencakup berbagai persyaratan aplikasi.
  • Pengguna dapat memanfaatkan API ini untuk berinteraksi dengan perangkat keras mikrokontroler secara efisien.

Perkenalan

STM32Cube adalah inisiatif asli STMicroelectronics untuk meningkatkan produktivitas desainer secara signifikan dengan mengurangi upaya pengembangan, waktu, dan biaya. STM32Cube mencakup seluruh portofolio STM32. STM32Cube meliputi:

STM32Cube termasuk:

  • Seperangkat alat pengembangan perangkat lunak yang mudah digunakan untuk mencakup pengembangan proyek dari konsepsi hingga realisasi, di antaranya adalah:
    • STM32CubeMX, alat konfigurasi perangkat lunak grafis yang memungkinkan pembuatan kode inisialisasi C secara otomatis menggunakan wizard grafis
    • STM32CubeIDE, alat pengembangan lengkap dengan konfigurasi periferal, pembuatan kode, kompilasi kode, dan fitur debug
    • STM32CubeCLT, perangkat pengembangan baris perintah lengkap dengan kompilasi kode, pemrograman papan, dan fitur debug
    • STM32CubeProgrammer (STM32CubeProg), alat pemrograman yang tersedia dalam versi grafis dan baris perintah
    • STM32CubeMonitor (STM32CubeMonitor, STM32CubeMonPwr, STM32CubeMonRF, STM32CubeMonUCPD), alat pemantauan canggih untuk menyempurnakan perilaku dan kinerja aplikasi STM32 secara real time
  • Paket MCU dan MPU STM32Cube, platform perangkat lunak tertanam komprehensif yang khusus untuk setiap seri mikrokontroler dan mikroprosesor (seperti STM32CubeWL3 untuk lini produk STM32WL3x), yang meliputi:
    • Lapisan abstraksi perangkat keras STM32Cube (HAL), memastikan portabilitas yang dimaksimalkan di seluruh portofolio STM32
    • API lapisan rendah STM32Cube, memastikan kinerja dan jejak terbaik dengan kontrol pengguna tingkat tinggi atas perangkat keras
    • Seperangkat komponen middleware yang konsisten seperti kernel FreeRTOS™, FatFS, dan Sigfox™
    • Semua utilitas perangkat lunak yang disematkan dengan set lengkap perangkat tambahan dan aplikasi aplikatifampsedikit
  • Paket Ekspansi STM32Cube, yang berisi komponen perangkat lunak tertanam yang melengkapi fungsionalitas Paket MCU dan MPU STM32Cube dengan:
    • Ekstensi middleware dan lapisan aplikatif
    • Exampfile yang berjalan pada beberapa papan pengembangan STMicroelectronics tertentu
  • Panduan pengguna ini menjelaskan cara memulai dengan Paket MCU STM32CubeWL3.

Bagian 2 menjelaskan fitur utama STM32CubeWL3 dan Bagian 3 memberikan gambaran umumview arsitekturnya dan struktur Paket MCU.

Informasi umum

  • STM32CubeWL3 menjalankan aplikasi demonstrasi sub-GHz, termasuk biner Sigfox™, pada mikrokontroler lini produk STM32WL3x yang berbasis prosesor Arm® Cortex®‑M0+.
  • Mikrokontroler STM32WL3x menanamkan peripheral radio RF sub-GHz canggih milik STMicroelectronics, yang dioptimalkan untuk konsumsi daya yang sangat rendah dan kinerja radio yang sangat baik, untuk masa pakai baterai yang tak tertandingi.

Catatan: Arm adalah merek dagang terdaftar dari Arm Limited (atau anak perusahaannya) di AS dan/atau di tempat lain.

STM32WL3x-Mikrokontroler-Gbr-1

Fitur utama STM32CubeWL3

  • Paket MCU STM32CubeWL3 berjalan pada mikrokontroler STM32 32-bit yang berbasis pada prosesor Arm® Cortex®‑M0+. Paket ini mengumpulkan, dalam satu paket, semua komponen perangkat lunak tertanam generik yang diperlukan untuk mengembangkan aplikasi untuk Lini produk STM32WL3x mikrokontroler.
  • Paket ini mencakup API lapisan rendah (LL) dan lapisan abstraksi perangkat keras (HAL) yang mencakup perangkat keras mikrokontroler, bersama dengan serangkaian ekstensiamples yang berjalan pada papan STMicroelectronics. API HAL dan LL tersedia dalam lisensi BSD sumber terbuka demi kenyamanan pengguna. Ini juga mencakup komponen middleware kernel Sigfox™, FatFS, dan FreeRTOS™.
  • Paket MCU STM32CubeWL3 juga menyediakan beberapa aplikasi dan demonstrasi yang mengimplementasikan semua komponen middleware-nya.
  • Tata letak komponen Paket MCU STM32CubeWL3 diilustrasikan pada Gambar 1.

STM32WL3x-Mikrokontroler-Gbr-2

Arsitektur STM32CubeWL3 selesaiview

  • Solusi Paket MCU STM32CubeWL3 dibangun berdasarkan tiga level independen yang berinteraksi dengan mudah seperti dijelaskan pada Gambar 2.

STM32WL3x-Mikrokontroler-Gbr-3

Tingkat 0
Level ini dibagi menjadi tiga sublapisan:

  • Paket dukungan papan (BSP).
  • Lapisan abstraksi perangkat keras (HAL):
    • driver periferal HAL
    • Driver lapisan rendah
  • Penggunaan periferal dasar, misampsedikit.

Paket dukungan papan (BSP)
Lapisan ini menawarkan serangkaian API yang berhubungan dengan komponen perangkat keras di papan perangkat keras (seperti LED, tombol, dan driver COM). Lapisan ini terdiri dari dua bagian:

Komponen:

  • Ini adalah driver yang relatif terhadap perangkat eksternal pada papan dan bukan terhadap STM32. Driver komponen menyediakan API khusus untuk komponen eksternal driver BSP dan dapat dipindahkan ke papan lain mana pun.
    • pengemudi BSP:
  • Ini memungkinkan menghubungkan driver komponen ke papan tertentu dan menyediakan serangkaian API yang ramah pengguna. Aturan penamaan API adalah BSP_FUNCT_Action().
  • Exampfile: BSP_LED_Init(), BSP_LED_Aktif()

BSP didasarkan pada arsitektur modular yang memungkinkan porting mudah pada perangkat keras apa pun hanya dengan menerapkan rutinitas tingkat rendah.

Lapisan abstraksi perangkat keras (HAL) dan lapisan rendah (LL)

STM32CubeWL3 HAL dan LL saling melengkapi dan mencakup berbagai persyaratan aplikasi:

  • Driver HAL menawarkan API yang sangat portabel dan berorientasi pada fungsi tingkat tinggi. Mereka menyembunyikan MCU dan kompleksitas periferal kepada pengguna akhir.
    Driver HAL menyediakan API berorientasi fitur multi-instance generik, yang menyederhanakan implementasi aplikasi pengguna dengan menyediakan proses siap pakai. Misalnyaample, untuk peripheral komunikasi (I2C, UART, dan lainnya), ia menyediakan API yang memungkinkan inisialisasi dan konfigurasi peripheral, pengelolaan transfer data berdasarkan polling, interupsi, atau proses DMA, dan penanganan kesalahan komunikasi yang mungkin timbul selama komunikasi. API driver HAL dibagi menjadi dua kategori:
    • API Generik, yang menyediakan fungsi umum dan generik untuk semua mikrokontroler seri STM32.
    • API Ekstensi, yang menyediakan fungsi spesifik dan disesuaikan untuk kelompok tertentu atau nomor komponen tertentu.
  • API lapisan rendah menyediakan API tingkat rendah di tingkat register, dengan pengoptimalan yang lebih baik tetapi portabilitasnya lebih sedikit.
    Mereka membutuhkan pengetahuan mendalam tentang MCU dan spesifikasi periferal.
    Driver LL dirancang untuk menawarkan lapisan yang cepat, ringan, dan berorientasi pada pakar yang lebih dekat dengan perangkat keras daripada HAL. Berbeda dengan HAL, API LL tidak disediakan untuk periferal yang aksesnya dioptimalkan bukan merupakan fitur utama, atau untuk periferal yang memerlukan konfigurasi perangkat lunak yang berat atau tumpukan tingkat atas yang kompleks.
    Fitur driver LL:
  • Seperangkat fungsi untuk menginisialisasi fitur utama periferal sesuai dengan parameter yang ditentukan dalam struktur data.
  • Seperangkat fungsi untuk mengisi struktur data inisialisasi dengan nilai reset yang sesuai dengan setiap bidang.
  • Fungsi untuk de-inisialisasi periferal (register periferal dikembalikan ke nilai default).
  • Satu set fungsi inline untuk akses register langsung dan atom.
  • Independensi penuh dari HAL dan kemampuan untuk digunakan dalam mode mandiri (tanpa driver HAL).
  • Cakupan penuh fitur periferal yang didukung.

Penggunaan periferal dasar, misampsedikit
Lapisan ini membungkus exampfile yang dibangun di atas periferal STM32 hanya menggunakan sumber daya HAL dan BSP.
Catatan: Demonstrasi examples juga tersedia untuk menunjukkan contoh yang lebih kompleksampskenario dengan periferal tertentu, seperti MRSUBG dan LPAWUR.

Tingkat 1
Level ini dibagi menjadi dua sublapisan:

  • Komponen perangkat tengah
  • Exampfile berdasarkan komponen middleware

Komponen perangkat tengah
Middleware adalah seperangkat pustaka yang mencakup kernel FreeRTOS™, FatFS, dan pustaka protokol Sigfox™.
Interaksi horizontal antar komponen lapisan ini dilakukan dengan memanggil API unggulan.
Interaksi vertikal dengan driver lapisan bawah dilakukan melalui callback spesifik dan makro statis yang diimplementasikan dalam antarmuka panggilan sistem perpustakaan.
Fitur utama dari setiap komponen middleware adalah sebagai berikut:

  • Kernel FreeRTOS™: mengimplementasikan sistem operasi waktu nyata (RTOS), yang dirancang untuk sistem tertanam.
  • Sigfox™: mengimplementasikan pustaka protokol Sigfox™ yang sesuai dengan jaringan protokol Sigfox™ dan menyertakan pustaka protokol uji RF untuk menguji terhadap alat RF Sigfox™.
  • FatFS: mengimplementasikan FAT generik file modul sistem.

Exampfile berdasarkan komponen middleware

  • Setiap komponen middleware dilengkapi dengan satu atau lebih examples, juga disebut aplikasi, menunjukkan cara menggunakannya.
  • Integrasi misample yang menggunakan beberapa komponen middleware juga disediakan.

Paket firmware STM32CubeWL3 selesaiview

Perangkat dan perangkat keras STM32WL3x yang didukung

  • STM32Kubus menawarkan lapisan abstraksi perangkat keras (HAL) yang sangat portabel yang dibangun di sekitar arsitektur generik. Hal ini memungkinkan prinsip lapisan build-upon, seperti menggunakan lapisan middleware untuk mengimplementasikan fungsinya tanpa mengetahui secara mendalam MCU apa yang digunakan. Hal ini meningkatkan penggunaan ulang kode pustaka dan memastikan portabilitas yang mudah ke perangkat lain.
  • Selain itu, dengan arsitektur berlapisnya, STM32CubeWL3 menawarkan dukungan penuh untuk semua lini produk STM32WL3x.
  • Pengguna hanya perlu menentukan makro yang tepat di stm32wl3x.h.
  • Tabel 1 menunjukkan makro yang harus didefinisikan tergantung pada perangkat lini produk STM32WL3x yang digunakan. Makro ini juga harus didefinisikan dalam praprosesor kompiler.

Tabel 1. Makro untuk lini produk STM32WL3x

Makro didefinisikan dalam STM32WL3X.h Perangkat lini produk STM32WL3x
stm32wl3x Mikrokontroler STM32WL30xx Mikrokontroler STM32WL31xx Mikrokontroler STM32WL33xx

Tabel 2. Papan untuk lini produk STM32WL3x

Papan Perangkat yang didukung papan STM32WL3x
NUKLEO-WL33CC1 STM32WL33CC
NUKLEO-WL33CC2 STM32WL33CC

Paket MCU STM32CubeWL3 dapat berjalan pada perangkat keras apa pun yang kompatibel. Pengguna memperbarui driver BSP untuk mem-porting ex yang disediakanamppada papan mereka, jika memiliki fitur perangkat keras yang sama (seperti LED atau tombol).

Paket firmware selesaiview

  • Solusi Paket MCU STM32CubeWL3 disediakan dalam satu paket zip tunggal, dengan struktur yang ditunjukkan pada Gambar 3.

STM32WL3x-Mikrokontroler-Gbr-4

Peringatan: Pengguna tidak boleh mengubah komponen files. Pengguna hanya dapat mengedit sumber \Projects. Untuk setiap papan, satu set contohamples dilengkapi dengan proyek yang telah dikonfigurasikan sebelumnya untuk toolchain EWARM, MDK-ARM, dan STM32CubeIDE.
Gambar 4 menunjukkan struktur proyek untuk papan NUCLEO-WL33CCx.

STM32WL3x-Mikrokontroler-Gbr-5

Sang mantanampFile-file tersebut diklasifikasikan berdasarkan level STM32CubeWL3 yang digunakan. File-file tersebut diberi nama sebagai berikut:

  • Tingkat 0 misamples disebut Examples, Mantanamples_LL, dan Examples_MIX. Mereka masing-masing menggunakan driver HAL, driver LL, dan campuran driver HAL dan LL tanpa komponen middleware apa pun. Demonstrasi examples juga tersedia.
  • Tingkat 1 misampfile-file tersebut disebut Aplikasi. File-file tersebut menyediakan kasus penggunaan umum dari setiap komponen middleware.

Aplikasi firmware apa pun untuk papan tertentu dapat dengan cepat dibangun menggunakan proyek templat yang tersedia di direktori Templates dan Templates_LL.
Examples, Mantanamples_LL, dan Examples_MIX memiliki struktur yang sama:

  • Folder \Inc yang berisi semua header files.
  • Folder \Src yang berisi kode sumber.
  • Folder \EWARM, \MDK-ARM, dan \STM32CubeIDE berisi proyek yang telah dikonfigurasi sebelumnya untuk setiap rantai alat.
  • readme.md dan readme.html menjelaskan mantanample perilaku dan lingkungan yang dibutuhkan untuk membuatnya berhasil.

Memulai dengan STM32CubeWL3

Menjalankan mantan pertamaample
Bagian ini menjelaskan betapa mudahnya menjalankan first example dalam STM32CubeWL3. Sebagai ilustrasi, ia menggunakan pembangkitan sakelar LED sederhana yang berjalan pada papan NUCLEO-WL33CC1:

  1. Unduh Paket MCU STM32CubeWL3.
  2. Ekstrak zipnya, atau jalankan penginstal jika disediakan, ke direktori pilihan Anda.
  3. Pastikan untuk tidak mengubah struktur paket yang ditunjukkan pada Gambar 3. Struktur paket firmware STM32CubeWL3. Perhatikan bahwa sebaiknya Anda menyalin paket di lokasi yang dekat dengan volume root (artinya C:\ST atau G:\Tests), karena beberapa IDE mengalami masalah saat jalurnya terlalu panjang.

Cara menjalankan HAL example
Sebelum memuat dan menjalankan example, sangat disarankan untuk membaca exampayo baca aku file untuk konfigurasi spesifik apa pun.

  1. Telusuri ke \Projects\NUCLEO-WL33CC\Exampsedikit.
  2. Buka folder \GPIO, lalu \GPIO_EXTI.
  3. Buka proyek dengan toolchain pilihan. Tinjauan singkatview tentang cara membuka, membangun, dan menjalankan mantanampfile dengan rantai alat yang didukung diberikan di bawah ini.
  4. Bangun kembali semua files dan memuat gambar ke dalam memori target.
  5. Jalankan mantanample. Untuk rincian lebih lanjut, lihat contohampayo baca aku file.

Untuk membuka, membangun, dan menjalankan example dengan masing-masing toolchain yang didukung, ikuti langkah-langkah di bawah ini:

  • HANGAT:
    1. Di bawah Eksamples, buka subfolder \EWARM.
    2. Luncurkan ruang kerja Project.eww (nama ruang kerja mungkin berubah dari satu contohample ke yang lain).
    3. Bangun kembali semua files: [Proyek]>[Bangun kembali semua].
    4. Muat gambar proyek: [Proyek]>[Debug].
    5. Jalankan program: [Debug]>[Go (F5)].
  • MDK-ARM:
    1. Di bawah Eksampfolder les, buka subfolder \MDK-ARM.
    2. Buka ruang kerja Project.uvproj (nama ruang kerja mungkin berubah dari satu contohample ke yang lain).
    3. Bangun kembali semua files: [Proyek]>[Bangun kembali semua target fileS].
    4. Muat gambar proyek: [Debug]>[Mulai/Hentikan Sesi Debug].
    5. Jalankan programnya: [Debug]>[Jalankan (F5)].
  • STM32CubeIDE:
    1. Buka rantai alat STM32CubeIDE.
    2. Klik [File]>[Ganti Ruang Kerja]>[Lainnya] dan telusuri direktori ruang kerja STM32CubeIDE.
    3. Klik [File]>[Impor], pilih [Umum]>[Proyek yang Ada ke Ruang Kerja], lalu klik [Berikutnya].
    4. Telusuri ke direktori ruang kerja STM32CubeIDE dan pilih proyek.
    5. Bangun kembali semua proyek files: Pilih proyek di jendela Project Explorer lalu klik menu [Project]>[Build project].
    6. Jalankan programnya: [Jalankan]>[Debug (F11)].

Mengembangkan aplikasi khusus

Menggunakan STM32CubeMX untuk mengembangkan atau memperbarui aplikasi

  • Dalam Paket MCU STM32Cube, hampir semua proyek exampFile dihasilkan dengan alat STM32CubeMX untuk menginisialisasi sistem, periferal, dan middleware.

Penggunaan langsung dari proyek yang ada, misampfile dari alat STM32CubeMX memerlukan STM32CubeMX 6.12.0 atau lebih tinggi:

  • Setelah instalasi STM32CubeMX, buka dan jika perlu perbarui proyek yang diusulkan.
    Cara paling sederhana untuk membuka proyek yang sudah ada adalah dengan mengklik dua kali pada *.ioc file sehingga STM32CubeMX secara otomatis membuka proyek dan sumbernya files. STM32CubeMX menghasilkan kode sumber inisialisasi proyek tersebut.
  • Kode sumber aplikasi utama terdapat pada komentar “USER CODE BEGIN” dan “USER CODE END”. Jika pemilihan dan pengaturan periferal diubah, STM32CubeMX memperbarui bagian inisialisasi kode sambil mempertahankan kode sumber aplikasi utama.
  • Untuk mengembangkan proyek khusus dengan STM32CubeMX, ikuti proses langkah demi langkah:
    1. Konfigurasikan semua perangkat lunak tertanam yang diperlukan menggunakan penyelesai konflik pinout, pembantu pengaturan pohon jam, kalkulator konsumsi daya, dan utilitas yang melakukan konfigurasi periferal MCU (seperti GPIO atau USART).
    2. Hasilkan kode inisialisasi C berdasarkan konfigurasi yang dipilih. Kode ini siap digunakan dalam beberapa lingkungan pengembangan. Kode pengguna disimpan pada pembuatan kode berikutnya.
      Untuk informasi lebih lanjut tentang STM32CubeMX, lihat panduan pengguna STM32CubeMX untuk konfigurasi STM32 dan inisialisasi pembuatan kode C (UM1718).

Aplikasi pengemudi
aplikasi HAL
Bagian ini menjelaskan langkah-langkah yang diperlukan untuk membuat aplikasi HAL kustom menggunakan STM32CubeWL3

  1. Buat proyek
    Untuk membuat proyek baru, mulailah dari proyek Template yang disediakan untuk setiap papan di bawah \Proyek\ \Templates atau dari proyek apa pun yang tersedia di bawah \Projects\ \Mantanamples atau \Proyek\ \Aplikasi (dimana mengacu pada nama papan).
    Proyek Template menyediakan fungsi loop utama yang kosong. Namun, ini merupakan titik awal yang baik untuk memahami pengaturan proyek STM32CubeWL3. Template memiliki karakteristik berikut:
    • Ini berisi kode sumber HAL, CMSIS, dan driver BSP, yang merupakan kumpulan komponen minimum yang diperlukan untuk mengembangkan kode pada papan tertentu.
    • Ini berisi jalur yang disertakan untuk semua komponen firmware.
    • Ini mendefinisikan perangkat lini produk STM32WL3x yang didukung, yang memungkinkan driver CMSIS dan HAL dikonfigurasi dengan benar.
    • Ini menyediakan pengguna siap pakai files telah dikonfigurasi sebelumnya seperti yang ditunjukkan di bawah ini:
    • HAL diinisialisasi dengan basis waktu default dengan inti Arm® SysTick.
    • SysTick ISR diimplementasikan untuk tujuan HAL_Delay().
    • Catatan: Saat menyalin proyek yang ada ke lokasi lain, pastikan semua jalur yang disertakan diperbarui.
  2. Konfigurasikan komponen firmware
    Komponen HAL dan middleware menawarkan serangkaian opsi konfigurasi build-time menggunakan makro #define yang dideklarasikan dalam header file. Konfigurasi templat file disediakan dalam setiap komponen, yang harus disalin ke folder proyek (biasanya konfigurasi file bernama xxx_conf_template.h, fragmen
    • template perlu dihapus saat menyalinnya ke folder proyek). Konfigurasi file memberikan informasi yang cukup untuk memahami dampak setiap opsi konfigurasi. Informasi lebih rinci tersedia dalam dokumentasi yang disediakan untuk setiap komponen.
  3. Mulai perpustakaan HAL
    Setelah melompat ke program utama, kode aplikasi harus memanggil API HAL_Init() untuk menginisialisasi perpustakaan HAL, yang menjalankan tugas-tugas berikut:
    • Konfigurasi prefetch memori flash dan prioritas interupsi SysTick (melalui makro yang ditetapkan dalam stm32 wl3x_hal_conf.h).
    • Konfigurasi SysTick untuk menghasilkan interupsi setiap milidetik pada prioritas interupsi SysTick TICK_INT_PRIO yang ditetapkan dalam stm32wl3x_hal_conf.h.
    • Menetapkan prioritas grup NVIC ke 0.
    • Panggilan fungsi panggilan balik HAL_MspInit() yang didefinisikan dalam pengguna stm32wl3x_hal_msp.c file untuk melakukan inisialisasi perangkat keras tingkat rendah global.
  4. Konfigurasikan jam sistem
    Konfigurasi jam sistem dilakukan dengan memanggil dua API yang dijelaskan di bawah ini:
    • HAL_RCC_OscConfig(): API ini mengonfigurasi osilator internal dan eksternal. Pengguna memilih untuk
      mengonfigurasikan satu atau semua osilator.
    • HAL_RCC_ClockConfig(): API ini mengonfigurasi sumber jam sistem, latensi memori flash, dan prescaler AHB dan APB.
  5. Inisialisasi periferal
    • Pertama-tama tulis fungsi inisialisasi periferal. Lakukan sebagai berikut:
    • Aktifkan jam periferal.
    • Konfigurasikan GPIO periferal.
    • Konfigurasikan saluran DMA dan aktifkan interupsi DMA (jika diperlukan).
    • Aktifkan interupsi periferal (jika diperlukan).
    • Edit stm32xxx_it.c untuk memanggil penangan interupsi yang diperlukan (periferal dan DMA), jika diperlukan.
    • Tulis fungsi panggilan balik proses lengkap jika interupsi periferal atau DMA dimaksudkan untuk digunakan.
    • Di pengguna main.c file, inisialisasikan struktur pegangan periferal lalu panggil fungsi inisialisasi periferal untuk menginisialisasi periferal.
  6. Kembangkan aplikasi
    Pada saat initage, sistem siap dan pengembangan kode aplikasi pengguna dapat dimulai.
    HAL menyediakan API yang intuitif dan siap digunakan untuk mengonfigurasi periferal. Ini mendukung polling, interupsi, dan model pemrograman DMA, untuk mengakomodasi segala kebutuhan aplikasi. Untuk rincian lebih lanjut tentang cara menggunakan setiap periferal, rujuk ke rich exampset yang disediakan dalam Paket MCU STM32CubeWL3.

Peringatan: Dalam implementasi HAL default, pengatur waktu SysTick digunakan sebagai basis waktu: ia menghasilkan interupsi pada interval waktu yang teratur. Jika HAL_Delay() dipanggil dari proses ISR periferal, pastikan interupsi SysTick memiliki prioritas lebih tinggi (secara numerik lebih rendah) daripada interupsi periferal. Jika tidak, proses ISR pemanggil diblokir. Fungsi yang mempengaruhi konfigurasi timebase dideklarasikan sebagai __weak untuk memungkinkan override jika terjadi implementasi lain pada pengguna file (menggunakan timer serbaguna, misalnyaample, atau sumber waktu lain). Untuk lebih jelasnya, lihat HAL_TimeBase exampsaya.

aplikasi LL
Bagian ini menjelaskan langkah-langkah yang diperlukan untuk membuat aplikasi LL kustom menggunakan STM32CubeWL3.

  1. Buat proyek
    Untuk membuat proyek baru, mulailah dari proyek Templates_LL yang disediakan untuk setiap papan di bawah \Projects\ \Templates_LL atau dari proyek mana pun yang tersedia di bawah \Projects\ \Mantanampkurang_ LL ( mengacu pada nama papan, seperti NUCLEO-WL32CC33).
    Proyek template menyediakan fungsi loop utama yang kosong, yang merupakan titik awal yang baik untuk memahami pengaturan proyek untuk STM32CubeWL3. Karakteristik utama template adalah sebagai berikut:
    • Berisi kode sumber driver LL dan CMSIS, yang merupakan rangkaian komponen minimum yang dibutuhkan untuk mengembangkan kode pada papan tertentu.
    • Ini berisi jalur yang disertakan untuk semua komponen firmware yang diperlukan.
    • Memilih perangkat lini produk STM32WL3x yang didukung dan memungkinkan konfigurasi driver CMSIS dan LL yang benar.
    • Ini menyediakan pengguna siap pakai files yang telah dikonfigurasikan sebelumnya sebagai berikut:
    • main.h: lapisan abstraksi definisi LED dan USER_BUTTON.
    • main.c: Konfigurasi jam sistem untuk frekuensi maksimum.
  2. Port LL eksampsaya:
    • Salin/tempel folder Templates_LL – untuk menyimpan sumber awal – atau langsung perbarui proyek Template s_LL yang ada.
    • Kemudian, porting terutama terdiri dari penggantian Templates_LL files oleh Mantanampproyek yang ditargetkan les_LL.
    • Simpan semua bagian khusus papan. Untuk alasan kejelasan, bagian-bagian tertentu papan ditandai dengan spesifik tags:STM32WL3x-Mikrokontroler-Gbr-6
    • Jadi, langkah-langkah porting utama adalah sebagai berikut:
    • Ganti stm32wl3x_it.h file.
    • Ganti stm32wl3x_it.c file.
    • Ganti main.h file dan perbarui: Simpan definisi LED dan tombol pengguna dari template LL di bawah KONFIGURASI KHUSUS PAPAN tags.
    • Ganti main.c file dan perbarui:
    • Simpan konfigurasi jam fungsi templat SystemClock_Config() LL di bawah KONFIGURASI KHUSUS PAPAN tags.
    • Tergantung pada definisi LED, ganti setiap kemunculan LDx dengan LDy lain yang tersedia di file utama.h.
    • Dengan modifikasi tersebut, example berjalan pada papan yang menjadi sasaran.

Aplikasi RF, demonstrasi, dan exampsedikit
Berbagai jenis aplikasi RF, demonstrasi, dan pengujianampfile tersedia dalam paket STM32CubeWL3.
Mereka tercantum dalam dua bagian di bawah ini.

Sub-GHz examples dan demonstrasi
Mantan iniamples menunjukkan fitur utama dari peripheral radio MRSUBG dan LPAWUR.amples tersedia di bawah:

  • Proyek\NUCLEO-WL33CC\Examples\MRSUBG
  • Proyek\NUCLEO-WL33CC\Examples\LPAWUR
  • Proyek\NUCLEO-WL33CC\Demonstrasi\MRSUBG
  • Proyek\NUCLEO-WL33CC\Demonstrasi\LPAWUR

Setiap mantanampfile atau demonstrasi umumnya terdiri dari dua program yang disebut Tx dan Rx yang bertindak sebagai pemancar dan penerima, masing-masing:

Examples/MRSUBG

  • MRSUBG_802_15_4: implementasi lapisan fisik yang ditetapkan oleh standar 802.15.4. Ini menunjukkan cara mengonfigurasi radio untuk mengirim atau menerima paket 802.15.4.
  • MRSUBG_BasicGeneric: Pertukaran paket dasar MR_SUBG STM32WL3x.
  • MRSUBG_Chat: Aplikasi sederhana yang menunjukkan cara menggunakan Tx dan Rx pada perangkat yang sama.
  • MRSUBG_DatabufferHandler: Contohample yang menunjukkan cara menukar dari Databuffer 0 dan 1.
  • MRSUBG_Sequencer AutoAck: Contohample yang mengirim dan menerima pengakuan paket (ACK) secara otomatis.
  • MRSUBG_WMBusSTD: Pertukaran pesan WM-Bus.
  • WakeupRadio: Seorang mantanample untuk menguji peripheral radio LPAWUR.

Demonstrasi/MRSUBG

  • MRSUBG_RTC_Button_TX: Ini mantanample menunjukkan cara mengatur SoC dalam mode deep-stop dan mengonfigurasi MRSUBG untuk membangunkan SoC dengan menekan PB2 untuk mengirim bingkai atau setelah berakhirnya penghitung waktu RTC.
  • MRSUBG_Sequencer_Sniff: Ini mantanample menunjukkan cara mengatur sequencer MRSUBG untuk beroperasi dalam mode sniff. Contoh iniample menunjukkan sisi penerima dan membutuhkan perangkat lain sebagai pemancar.
  • MRSUBG_Timer: Aplikasi menjadwalkan beberapa contoh penghitung waktu MRSUBG (dengan muat ulang otomatis) dengan interval waktu yang berbeda.
  • MRSUBG_WakeupRadio_Tx: Mantan iniample menjelaskan cara mengatur SoC dalam mode deep stop dan mengonfigurasi MRSUBG untuk membangunkan SoC dengan menekan PB2 untuk mengirim bingkai. Contoh iniample menunjukkan sisi pemancar dan memerlukan perangkat lain sebagai penerima LPAWUR. Penerima exampfile tersebut terletak di folder NUCLEO-WL33CC\Demonstrations\LPAWUR\LPAWUR_WakeupRadio_Rx.

Demonstrasi/LPAWUR

  • LPAWUR_WakeupRadio_Rx: Mantan iniampmenjelaskan cara mengatur SoC dalam mode deep-stop dan mengonfigurasi LPAWUR untuk membangunkan SoC saat frame tiba dan diterima dengan benar. Contoh iniample menunjukkan sisi penerima dan membutuhkan perangkat lain sebagai pemancar. Pemancar exampfile tersebut terletak di folder NUCLEO-WL33CC\Demonstrations\MRSUBG\MRSUBG_WakeupRadio_Tx.

Aplikasi Sigfox™
Aplikasi ini menunjukkan cara mengimplementasikan skenario Sigfox™ dan menggunakan API Sigfox™ yang tersedia. Aplikasi ini tersedia di jalur proyek Projects\NUCLEO-WL33CC\Applications\Sigfox\:

  • Sigfox_CLI: Aplikasi ini menunjukkan cara menggunakan antarmuka baris perintah (CLI) untuk mengirim perintah yang menggunakan protokol Sigfox™ untuk mengirim pesan dan melakukan uji prasertifikasi.
  • Sigfox_PushButton: Aplikasi ini memungkinkan evaluasi kemampuan radio perangkat Sigfox™ STM32WL33xx. Menekan PB1 akan mengirimkan frame uji Sigfox™.

Riwayat revisi

Tabel 3. Riwayat revisi dokumen

Tanggal Revisi Perubahan
29 Maret 2024 1 Rilis awal.
30 Oktober 2024 2 Integrasi penuh STM32CubeWL3 ke dalam STM32Cube. Diperbarui:

•         Perkenalan

•         Bagian 2: Fitur utama STM32CubeWL3

•         Bagian 3.2.1: Komponen middleware

•         Bagian 4: Paket firmware STM32CubeWL3 selesaiview

•         Bagian 5.1: Menjalankan percobaan pertamaample

•         Bagian 5.3: Aplikasi RF, demonstrasi, dan pengujianampsedikit

Ditambahkan:

•         Bagian 5.1.1: Cara menjalankan HAL example

•         Bagian 5.2.1: Menggunakan STM32CubeMX untuk mengembangkan atau memperbarui aplikasi

• SBagian 6.4: Apakah ada proyek template untuk peripheral MRSUBG/LPAWUR?ampsedikit?

•         Bagian 6.5: Bagaimana STM32CubeMX dapat menghasilkan kode berdasarkan perangkat lunak tertanam?

DIHAPUS:

•         Alat komputer, termasuk Penjelajah, Antarmuka Pengguna Grafis STM32WL3, Dan Antarmuka Pengguna Grafis Sequencer MR-SUBG

•         Bagaimana WiSE-Studio IOMapper dapat menghasilkan kode berdasarkan perangkat lunak tertanam?

•         Apakah Navigator mengizinkan akses ke sumber daya paket perangkat lunak?

22 Januari 2025 3 Memperluas jangkauan perangkat yang berlaku untuk mikrokontroler STM32WL30xx dan STM32WL31xx pada Tabel 1. Makro untuk lini produk STM32WL3x.

PEMBERITAHUAN PENTING – BACA DENGAN SEKSAMA

  • STMicroelectronics NV dan anak perusahaannya (“ST”) berhak melakukan perubahan, koreksi, penyempurnaan, modifikasi, dan perbaikan pada produk ST dan/atau dokumen ini kapan saja tanpa pemberitahuan. Pembeli harus memperoleh informasi relevan terkini tentang produk ST sebelum melakukan pemesanan. Produk ST dijual sesuai dengan syarat dan ketentuan penjualan ST yang berlaku pada saat konfirmasi pemesanan.
  • Pembeli bertanggung jawab penuh atas pilihan, pemilihan, dan penggunaan produk ST dan ST tidak bertanggung jawab atas bantuan aplikasi atau desain produk pembeli.
  • Tidak ada lisensi, tersurat maupun tersirat, terhadap hak kekayaan intelektual apa pun yang diberikan oleh ST di sini.
  • Penjualan kembali produk ST dengan ketentuan yang berbeda dari informasi yang ditetapkan di sini akan membatalkan garansi apa pun yang diberikan oleh ST untuk produk tersebut.
  • ST dan logo ST adalah merek dagang ST. Untuk informasi tambahan tentang merek dagang ST, lihat www.st.com/merek dagangSemua nama produk atau layanan lainnya adalah milik pemiliknya masing-masing.
  • Informasi dalam dokumen ini menggantikan dan mengganti informasi yang sebelumnya diberikan dalam versi dokumen ini sebelumnya.
  • © 2025 STMicroelectronics – Semua hak dilindungi undang-undang

Tanya Jawab Umum

Kapan saya harus menggunakan driver HAL daripada driver LL?

Driver HAL menawarkan API tingkat tinggi dan berorientasi fungsi, dengan tingkat portabilitas yang tinggi. Kompleksitas produk atau periferal disembunyikan dari pengguna akhir. Driver LL menawarkan API tingkat register lapisan rendah dengan pengoptimalan yang lebih baik tetapi kurang portabel. Driver ini memerlukan pengetahuan mendalam tentang spesifikasi produk atau IP.

Bagaimana cara mengaktifkan API inisialisasi LL?

Definisi API inisialisasi LL dan struktur sumber daya literal dan prototipe terkait ditentukan oleh sakelar kompilasi USE_FULL_LL_DRIVER. Agar dapat menggunakan API inisialisasi LL, tambahkan sakelar ini di praprosesor kompiler toolchain.

Apakah ada proyek template untuk peripheral ex MRSUBG/LPAWUR?ampsedikit?

Untuk membuat MRSUBG atau LPAWUR baruampproyek, baik mulai dari proyek kerangka yang disediakan di bawah Pr ojectsNUCLEO- 33CC Examples MRSUBG atau ProjectsNUCLEO-WL33CC Examples LPAWUR atau dari proyek mana pun yang tersedia di direktori yang sama.

Bagaimana STM32CubeMX menghasilkan kode berdasarkan perangkat lunak yang tertanam?

STM32CubeMX memiliki pengetahuan bawaan tentang mikrokontroler STM32, termasuk periferal dan perangkat lunaknya, yang memungkinkannya memberikan representasi grafis kepada pengguna dan menghasilkan .h atau .c fileberdasarkan pada konfigurasi pengguna.

Dokumen / Sumber Daya

Mikrokontroler ST STM32WL3x [Bahasa Indonesia:] Panduan Pengguna
Mikrokontroler STM32WL3x, STM32WL3x, Mikrokontroler

Referensi

Tinggalkan komentar

Alamat email Anda tidak akan dipublikasikan. Bidang yang wajib diisi ditandai *