Tutorial Basic STM32 Rev 0.1
Tutorial Basic STM32 Rev 0.1
PEMROGRAMAN STM32
[email protected]
APA YANG HARUS DISIAPKAN?
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
# 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
1<2
Berikut tabel operator logika:
Pernyataan if
If (kondisi) {
Pernyataan;
}
Jika didalam sebuah kondisi terdapat banyak pernyataan maka
program ditulis seperti ini:
Pernyataan if else
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:
Penulisan:
Untuk delay 1 detik atau 1000 mS
HAL_Delay(1000);
Untuk delay 10 mS
HAL_Delay(10);
AKSES DIGITAL OUTPUT
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
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