7 0 5 MB
WORKSHOP PEMROGRAMAN STM32
[email protected]
APA YANG HARUS DISIAPKAN?
1. LAPTOP (64 Bit, RAM min 4 Gb) 2. Install/ Update Java Runtime 8u min 201 3. Software STM32CubeMX versi 5.4 4. Driver Pack STM32F1xx untuk STM32CubeMX 5. Software MDK KEIL minimal versi 528a 6. Driver Pack STM32F1xx untuk Keil 7. Hardware ST-Link V2 8. Driver ST-Link V2 9. Hardware Blue pill (STM32F103)
TAHAP 1
CEK LAPTOP
TAHAP 2
Install/ Update Java Runtime 8u241 Cara cek Java pada Laptop
TAHAP 2 Install/ Update Java Runtime 8u241 tersedia pada Flashdisk
TAHAP 2 Install dengan klik 2 kali, pilih sesuai dengan Windows system type
TAHAP 3
Download Software STM32CubeMX min v5.4.0 Link Download Online https://www.st.com/en/development-tools/stm32cubemx.html
TAHAP 3
Download Software STM32CubeMX min v5.4.0
TAHAP 3
Install Software pada folder flashdisk 1. Open folder installer
TAHAP 3 2. Klik 2 kali untuk install
TAHAP 4 Install Driver MCU Package for STM32F1 untuk STM32CubeMX Link Download https://www.st.com/en/embedded-software/stm32cubef1.html
TAHAP 4 Install Driver MCU Package for STM32F1 pada Flashdisk
TAHAP 4 File dalam bentuk RAR
TAHAP 4 Cara menginstal 1. Open STM32CubeMX
TAHAP 4 2. Klik “help” dan pilih “manage embedded software packages”
TAHAP 4 3. Klik “From Local”
TAHAP 4 4. Open File download atau file yang suudah dicopy dalam flasdisk
TAHAP 4 5. Tunggu hingga selesai menambahkan driver pack
TAHAP 5 Software MDK KEIL minimal v 528a 1. Link Download Online https://www.keil.com/download/product/
Klik MDK-Arm
TAHAP 5 2. Isi link data pribadi (pastika email benar), kemudian klik “submit”
TAHAP 5 2.a Contoh pengisian link
TAHAP 5 3. Klik MDK529.EXE untuk download
TAHAP 5 Instal Software Keil 528 1.a Open file software
TAHAP 5 Instal Software Keil 528 1.b Open file software
TAHAP 5 Instal Software Keil 528 1.c Open file software (klik 2x untuk install)
TAHAP 6 Driver Pack STM32F1xx untuk Keil Download Online file https://www.keil.com/dd2/pack/
TAHAP 6 Install Driver Pack STM32F1xx untuk Keil 1. Klik 2 kali file yang telah didownload atau di copy dari flasdisk
TAHAP 6 Install Driver Pack STM32F1xx untuk Keil 2. Pilih Next
TAHAP 6 Install Driver Pack STM32F1xx untuk Keil 3. Pilih Finish
TAHAP 7 Driver ST-Link V2 Link Download https://www.st.com/en/development-tools/stsw-link009.html
TAHAP 7 Install Driver ST-Link V2 1.a Open file
TAHAP 7 Install Driver ST-Link V2 1.b Open file
TAHAP 7 Install Driver ST-Link V2 1.c Klik file dibawah ini untuk install
Struktur Pemrograman
Struktur utama dari pemrograman bahasa C adalah
sebagai berikut: • Header • deklarasi konstanta dan atau variabel. • Fungsi dan atau prosedur. • program utama (main)
• Perulangan (looping)
Struktur Pemrograman
# header int main() //bisa digantikan dengan void main() { //deklarasi variable dan pengaturan while (1) { //tempat dimana program dituliskan } }
Struktur Pemrograman
#include “lcd.h” int main() //bisa digantikan dengan void main() { Init_LCD(); while (1) { lcd_gotoxy(0,0); lcd_print(“ABCDEFGHIJKLMNOP”); }
}
While(1){ makan; cuci; tidur; baca_koran; nonton_tv; masak; }
While(1){ Jika saya lapar { makan; } cuci; tidur; baca_koran; nonton_tv; masak; }
While(1){ Jika saya lapar { makan; } cuci; Jika saya ngantuk { tidur; } baca_koran; nonton_tv; masak; }
INPUT
PROSES
OUTPUT
GPIOA 0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
GPIOB PROSES
0
1
2
GPIOC 13
14
GPIOD 0
1
15
3
4
5
6
7
8
9
10
11
Variabel dan Tipe Data Variabel adalah sebuah tempat menyimpan sebuah nilai. Sementara tipe data adalah jenis nilai yang akan tersimpan dalam variabel. Berikut ilustrasi hubungan
variable dan tipe data:
Variabel dan Tipe Data
Tipe Data 1 byte -> [0-255] or [0x00-0xFF] uint8_t unsigned char Cara Penulisan:
uint8_t nama_variable; Contoh: uint8_t uint8_t uint8_t uint8_t
sensor_a; jumlah; botol_1; kondisi=1;
Tipe Data 1 byte -> [-125~124] int8_t signed char Cara Penulisan:
int8_t nama_variable; Contoh: int8_t sensor_a; int8_t jumlah; int8_t botol_1; int8_t kondisi=-1;
Tipe Data 2 byte ->
[0-65535] or [0x0000-0xFFFF] uint16_t unsigned short int
Cara Penulisan
uint16_t nama_variable; Contoh: uint16_t uint16_t uint16_t uint16_t
sensor_a; jumlah; botol_1; kondisi=1;
Tipe Data 2 byte ->
[-32768~32767] int16_t signed short int
Cara Penulisan
int16_t nama_variable; Contoh: int16_t int16_t int16_t int16_t
sensor_a; jumlah; botol_1; kondisi=-1;
Tipe Data 4 bytes -> [0-4.294.967.295] or [0x00000000-0xFFFFFFFF]] uint32_t unsigned int
Cara Penulisan
uint32_t nama_variable; Contoh: uint32_t sensor_a; uint32_t jumlah;
Tipe Data 4 bytes -> [-2147483648~2147483647] or [0x00000000-0xFFFFFFFF]] int32_t signed int
Cara Penulisan
int32_t nama_variable; Contoh: int32_t sensor_a; int32_t jumlah;
Tipe Data 8 bytes -> [0-18.446.744.073.709.551.615] or [0x0000000000000000 - 0xFFFFFFFFFFFFFFFF]
uint64_t Unsigned long long Cara Penulisan uint64_t nama_variable;
Contoh: uint64_t sensor_a; uint64_t jumlah;
Tipe Data 8 bytes -> [−9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,808]
int64_t signed long long Cara Penulisan int64_t nama_variable;
Contoh: int64_t sensor_a; int64_t jumlah;
Pengambilan Keputusan Bahasa
C
menyediakan
beberapa
jenis
pernyataan
pengambilan keputusan (decision making) yaitu sebagai berikut: • Pengambilan keputusan tipe if • Pengambilan keputusan tipe if-else • Pengambilan keputusan tipe switch Sepuah keputusan dapat dilakukan jika persoalan tersebut
memenuhi kriteria/kondisi tertentu yaitu TRUE or FALSE.
Dalam menentukan kondisi digunakan operator relasi dan operator logika. Operator relasi digunakan untuk membandingkan dua buah nilai dengan hasil berupa TRUE atau FALSE. Sedangkan operator logika dipakai untuk menghubungkan ekspresi relasi.
Berikut tabel operator relasi:
Berikut tabel contoh operator relasi:
1 SYS > Debug, Pilih Serial Wire
BUAT NEW PROJECT 6.b Kemudian, atur Debug mode di System Core > SYS > Debug, Pilih Serial Wire
BUAT NEW PROJECT 6.c Tampilan akan berubah menjadi seperti ini
BUAT NEW PROJECT 7.a Analisa Schematic Blue pill
AKTIF LOW
BUAT NEW PROJECT 7.b Atur PC13 Menjadi Output, dengan Pilih GPIO untuk memudahkan monitoring IO.
BUAT NEW PROJECT 7.c Klik PC13, kemudian akan menampilkan interaksi sebagai berikut:
BUAT NEW PROJECT 7.d Pilih GPIO_Output
BUAT NEW PROJECT 7.e Klik PC13 untuk melihat lebih detail konfigurasi PC13
BUAT NEW PROJECT 7.g anda bias merubah konfigurasi sesuai dengan kondisi
BUAT NEW PROJECT 8.a Kemudian, atur Clock Source di System Core > RCC > High Speed Clock, pilih crystal/Ceramic Resonator.
BUAT NEW PROJECT 8.b Tampilan akan berubah seperti ini:
BUAT NEW PROJECT 9.a Pindah TAB ke Clok Configurasi, rubah konfigurasi ke High Speed 1. CARI
2. Rubah nilai ke 72, kemudian enter
BUAT NEW PROJECT 9.b Klik OK
BUAT NEW PROJECT 9.c Tampilan akan berubah seperti ini
BUAT NEW PROJECT 10.a Setelah itu, pindah ke tab Project Manager
BUAT NEW PROJECT 10.b Isikan Project Name dengan nama proyek dan pilih tempat penyimpanan project. Untuk Toolchain / IDE, pilih MDK-ARM V5
BUAT NEW PROJECT 11 Kemudian klik Generate Code. akan muncul tampilan loading:
1. KLIK
BUAT NEW PROJECT 12. Kemudian akan muncul layer seperti ini. Klik “Open Project”
BUAT NEW PROJECT 12. Maka secara otomatis akan membuka program keil
BUAT NEW PROJECT 12. Maka secara otomatis akan membuka program keil
BUAT NEW PROJECT 13.a Tampilan awal keil
BUAT NEW PROJECT 13.b Klik untuk show isi file project
BUAT NEW PROJECT 14 Untuk menulis program, buka “Nama Project” > Application/User > klik 2x main.c
BUAT NEW PROJECT 15. Menghidupkan LED PC13 dengan menambahkan tulisan dibawah ini sebagai contoh
COMPILE 16. Klik Build (F7)
COMPILE 17.a Build Finish (No Error)
COMPILE 17.b Build Finish (Error)
COMPILE 18. Upload Program dengan klik icon dibawah ini atau klik “flash” → klik “Download”
COMPILE 19. Upload Done
SETTING STLINK V2 1 Pilih Flash > Configuration Flash Tool
SETTING STLINK V2 2 Pilih Debug > ST-Lonk Debug > Setting
1. KLIK
2. KLIK
SETTING STLINK V2 2 Pilih Flash Download > Cek list Reset and Run > Klik OK > Klik OK
1. KLIK
2. KLIK
1. Membuat program LED Toggle
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_6 | GPIO_PIN_5 | GPIO_PIN_4 | GPIO_PIN_3, GPIO_PIN_RESET); HAL_Delay(500); HAL_GPIO_WritePin(GPIOB, GPIO_PIN_6, GPIO_PIN_SET); HAL_GPIO_WritePin(GPIOB, GPIO_PIN_5, GPIO_PIN_SET); HAL_GPIO_WritePin(GPIOB, GPIO_PIN_4, GPIO_PIN_SET); HAL_GPIO_WritePin(GPIOB, GPIO_PIN_3, GPIO_PIN_SET); HAL_Delay(500);
Thank you
TERIMAKASIH