Anda di halaman 1dari 111

WORKSHOP

PEMROGRAMAN STM32

Inaskills.info@gmail.com
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 3 4 5 6 7 8 9 10 11

GPIOC
13 14 15

GPIOD
0 1
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 sensor_a;
uint8_t jumlah;
uint8_t botol_1;
uint8_t 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 sensor_a;
uint16_t jumlah;
uint16_t botol_1;
uint16_t kondisi=1;
Tipe Data
2 byte ->
[-32768~32767]
int16_t
signed short int

Cara Penulisan
int16_t nama_variable;

Contoh:
int16_t sensor_a;
int16_t jumlah;
int16_t botol_1;
int16_t 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<2
Berikut tabel operator logika:
Pernyataan if

Pernyataan if memiliki bentuk umum sebagai berikut:

If (kondisi) {
Pernyataan;
}
Jika didalam sebuah kondisi terdapat banyak pernyataan maka
program ditulis seperti ini:
Pernyataan if else

Pernyataan if else memiliki bentuk umum sebagai berikut:

If (kondisi) {
Pernyataan;
}
else {
Pernyataan;
}
Bentuk pernyataan majemuk dari pengambilan keputusan ini
sebagi berikut:
Perulangan
Perulangan atau yang sering disebut dengan “looping”, merupakan proses yang
dilakukan secara berulang-ulang dalam batas yang telah ditentukan. Dengan
menggunakan proses perulangan, penulisan kode program dapat menjadi lebih
efisien. ada beberapa jenis perulangan yang ada pada bahasa C yaitu perulangan
counted loop dan uncounted loop. Counted loop merupakan perulangan yang jelas
dan sudah tentu berapa banyak kali perulangannya. Sedangkan uncounted loop
merupakan perulangan yang tidak jelas berapa kali ia harus mengulang.
Dalam perulangan terdapat tiga hal yang diperlukan yaitu:
1. Kondisi Awal atau bisa disebut juga sebagai inisialisasi.
2. Syarat Kondisi, yang diperlukan agar suatu perulangan berhenti.
3. Iterasi, suatu syarat bagaimana suatu kondisi berjalan.
Contoh dari counted loop adalah for dan contoh dari uncounted loop adalah do
while atau while. Berikut perbedaan penggunaan for dan while:
Perulangan
Perulangan
Sebagai contoh perhatikan kode berikut:

Jika dieksekusi maka akan mengeluarkan output sebagai berikut:


Perulangan
RANGKAIAN OUTPUT
RANGKAIAN INPUT
AKSES DIGITAL OUTPUT
HAL_GPIO_WritePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState);
*GPIOx adalah GPIO peripheral
contoh penulisan
GPIOA, GPIOB dll.

GPIO_PIN adalah penunjukan satu pin


contoh penulisan
GPIO_PIN_1 dll

PinState adalah Kondisi Output


contoh penulisan
GPIO_PIN_RESET untuk memberikan kondisi LOW
GPIO_PIN_SET untuk memberikan kondisi HIGH

Penulisan keseluruhan kondisi HIGH


HAL_GPIO_WritePin (GPIOB, GPIO_PIN_6, GPIO_PIN_SET);
Penulisan keseluruhan kondisi LOW
HAL_GPIO_WritePin (GPIOB, GPIO_PIN_6, GPIO_PIN_RESET);
DELAY

HAL_Delay (uint32_t Delay);

Delay adalah nilai delay dalam satuan milliseconds

Penulisan:
Untuk delay 1 detik atau 1000 mS
HAL_Delay(1000);

Untuk delay 10 mS
HAL_Delay(10);
AKSES DIGITAL OUTPUT

HAL_GPIO_ReadPin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin);

*GPIOx adalah GPIO peripheral


contoh penulisan
GPIOA, GPIOB dll.

GPIO_PIN adalah penunjukan satu pin


contoh penulisan
GPIO_PIN_1 dll

Penulisan keseluruhan
HAL_GPIO_ReadPin (GPIOA, GPIO_PIN_4);
BUAT NEW PROJECT
1. Buka STM32CubeMX
BUAT NEW PROJECT
2. Klik ACCESS TO MCU SELECTOR atau bias lewat “File” → “New Project”
BUAT NEW PROJECT
3. Akan muncul jendela New Project
BUAT NEW PROJECT
4. Cari MCU yang kita gunakan di Search Box, misalnya kita menggunakan STM32 BluePill
yang menggunakan seri STM32F103C8T6, maka kita cari seri STM32F103C8. Jika sudah
dapat, pilih seri STM32F103C8Tx dan klik Start Project
3. KLIK

1. CARI

2. PILIH
BUAT NEW PROJECT
5.a Akan muncul tampilan seperti ini
BUAT NEW PROJECT
5.b Akan muncul tampilan seperti ini
BUAT NEW PROJECT
5.b Akan muncul tampilan seperti ini
BUAT NEW PROJECT
6.a Kemudian, atur Debug mode di System Core > 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

Anda mungkin juga menyukai