tampilan Pin & Configuration dan gambar IC hasil setelah pengaturan SYS Mode
dan RCC
7. Atur RCC, pada kolom High Speed Clock ( HSE) pilih Crystal Ceramic
Resonator
8. Atur Clock pada menu Clock Configuration, ubah nilai HCLK menjadi 72 (ketik
dan Enter lalu Ok)
9. Mengatur pada Project Manager, isi Project Name, Project Location dan jenis
Toolchain / IDE
10. Langkah berikutnya klik Generate Code, setelah proses selesai pilih Open Project
dan akan langsung diarahkan masuk ke Keil uVision IDE ( MDK-ARM) dan tampil
layar editor program.
11. Hasil dari generate code kita dapatkan struktur program STM32, untuk
memudahkan waktu pemrograman hapus semua teks yang diberi tanda remark /
keterangan yang tidak diperlukan. sampai batas akhir kurung kurawal tutup } milik
int main (void), yang dibawah kurung kurawal ini biarkan apa adanya, kita siap
untuk menambah program.
12. Mengatur parameter downloader (boleh dilakukan sebelum atau sesudah pengetikan
program),
Progam
#include "main.h"
#include "stdio.h" //fungsi sprintf terdapat pada library stdio.h
void SystemClock_Config(void);
static void MX_GPIO_Init(void);
/**
* fungsi untuk mengirim data pada lcd dalam mode 4 bit
* pengiriman data di lakukan 2 kali ( High Nible dahulu lalu Low Nible )
*
*/
//clock Enable
HAL_GPIO_WritePin (LCD_E_GPIO_Port, LCD_E_Pin, GPIO_PIN_SET);
HAL_Delay (1);
HAL_GPIO_WritePin (LCD_E_GPIO_Port, LCD_E_Pin, GPIO_PIN_RESET);
//Low Nible
HAL_GPIO_WritePin (LCD_D4_GPIO_Port, LCD_D4_Pin, (data>>0 & 1)? GPIO_PIN_SET : GPIO_PIN_RESET);
HAL_GPIO_WritePin (LCD_D5_GPIO_Port, LCD_D5_Pin, (data>>1 & 1)? GPIO_PIN_SET : GPIO_PIN_RESET);
HAL_GPIO_WritePin (LCD_D6_GPIO_Port, LCD_D6_Pin, (data>>2 & 1)? GPIO_PIN_SET : GPIO_PIN_RESET);
HAL_GPIO_WritePin (LCD_D7_GPIO_Port, LCD_D7_Pin, (data>>3 & 1)? GPIO_PIN_SET : GPIO_PIN_RESET);
//clock Enable
HAL_GPIO_WritePin (LCD_E_GPIO_Port, LCD_E_Pin, GPIO_PIN_SET);
HAL_Delay (1);
HAL_GPIO_WritePin (LCD_E_GPIO_Port, LCD_E_Pin, GPIO_PIN_RESET);
}
//fungsi untuk mengirim command karakter ke LCD
void lcd_cmd (uint8_t cmd)
{
HAL_GPIO_WritePin (LCD_RW_GPIO_Port, LCD_RW_Pin, GPIO_PIN_RESET); //pin RW : LOW
HAL_GPIO_WritePin (LCD_RS_GPIO_Port, LCD_RS_Pin, GPIO_PIN_RESET); //pin RS : LOW
lcd_send(cmd);
lcd_send(data);
}
int main(void)
{
//variable char array untuk menyimpan hasil konversi dari fungsi sprintf
char str_buffer[20];
while (1)
{
//cetak tulisan pada lcd
lcd_goto_xy(0,0);
lcd_print("LCD 20x4");
Build / Compile Program, jika build selesai dan tanpa error / warning, maka program
siap didownload