Hari ini saya iseng iseng membuka kenangan lama dari board STM32F4 Discovery yang sudah lama menghuni plastik kresek koleksi komponen komponen jaman dahulu kala. Celakanya, saya nyari nyari Keil di laptop kok g ada, ternyata sudah saya uninstall dan saya g punya backup installer. Akhirnya ya sudah lah, cari alternatif apa yang ada di hardisk, dan akhirnya saya menemukan CoIDE dari CooCox, dan memang bener bener cocox IDE ini. Saya rasa kok g seribet keil dalam add library dan semacamnya. Ok lah, kita langsung ke pembahasan.
CoIDE adalah IDE keluaran CooCox, yang kita tahu coocox ini yang bikin RTOS, yang bisa digunakan untuk develepo berbagai macam chip mulai dari ARM, Atmel, Energy Micro, Freescale, Holtex, TI, NXP, Nuvoton dsb. Dan yang lebih bagus lagi, software ini free. Benar benar free. Lihat saja screenshot dibawah ini. Untuk mendowload installernya, silakan ke www.coocox.org.
Ok lah, kita langsung saja mencoba CoIDE. Selesai mengisntall, yang cara mengisntal nya juga biasa saja, kita akan membuat project baru yang sederhana, yaitu GPIO. Berikut step by step cara membuat project baru di CoIDE.
- Cari Klik Tab Project, dan klik New Project.
- Selanjutanya, kita masuk ke nama project. Disini saya memakai nama "gpio" sebagai nama project, dan tick use default path.
- Disini, kita diberi pilihan kita akan menggunakan chip, atau board jadi. Disini saya menggunakan STM32F4 discovery. Searusnya saya memilih board, tapi ternyata STM32F4 tidak ada pilihan nya di board. Jadi kita masuk chip saja.
- Kemudian pilih chip yang kita gunakan, di STM32F4 Discovery menggunakan STM32F407VG sebagai chip utamanya.
- Daaaannnn....ini lah hasilnya. Wellcome to new project. Kelihatan cukup menarik bukan. disitu tersedia component, yang berupa library, yang bisa kita gunakan untuk membuat project. Pada awalnya saya pikir, software ini seperti CodevisionAVR yang akan mengenerate script otomatis untuk kita. Tapi ternyata tidak, walaupun kita diberi pilihan library di situ, kita tetap akan menemukan main.c yang kosong. Tapi lumayan lah, kita tidak perlu menambah kan file file library ke folder project kita dengan cara manual. Untuk projcet GPIO ini, saya hanya menggunakan library yang sama butuhkan. Disini saya menggunakan C Library, M4 CMSIS Core, CMSIS BBOT, RCC, GPIO, dan MISC. Bagusnya software ini, dia akan memberi peringatan ketika kita memerlukan untuk menambah library lain yang kurang, jika kita akan memilih suatu library. semoga ente yang baca bakal paham lah apa maksud ane.
- Langsung saja kita ke main.c. Saya akan membuat aplikasi GPIO sederhana yang yang terdiri dari led dan button yang sudah ada di board STM32F4 Discovery.Berikut sedikit penjelas wiring dari bosrd discovery ini.
Push button biru terhubung ke Port A0
led green(LD4) PD12
led orange(LD3) PD13
led red(LD5) PD14
led blue (LD6) PD15
dibawah.
#include "stm32f4xx.h" //library stm32f4
#include "stm32f4xx_gpio.h"//library gpio
#include "stm32f4xx_rcc.h" //library reset dan clok
GPIO_InitTypeDef GPIO_InitStructure;
void Delay(__IO uint32_t nCount);
uint8_t d;
int main(void)
{
/*led di board stm32f4 discovery terhubung ke Port D dengan konfigurasi
* ----led green(LD4) PD12
* ----led orange(LD3) PD13
* ----led red(LD5) PD14
* ----led blue (LD6) PD15
*
* push button di board stm32f4 discovery
* ---- push button user warna biru PA0
* */
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, ENABLE); // enable clock untuk portD
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA,ENABLE); // enable clock untuk portA
/* Configure PD0, PD12, PD13, PD14 and PD15 in output pushpull mode */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12 | GPIO_Pin_13| GPIO_Pin_14| GPIO_Pin_15;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_Init(GPIOD, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_DOWN;
GPIO_Init(GPIOA,&GPIO_InitStructure);
while(1)
{ //jika Button ditekan, maka LED biru dan merah akan ON. jika tidak ditekan,
// LED hijau dan orange akan menyala.
if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_0)!=Bit_SET)
{
GPIO_SetBits(GPIOD, GPIO_Pin_12|GPIO_Pin_13);
GPIO_ResetBits(GPIOD, GPIO_Pin_14|GPIO_Pin_15);
}
else
{
GPIO_ResetBits(GPIOD, GPIO_Pin_12|GPIO_Pin_13);
GPIO_SetBits(GPIOD, GPIO_Pin_14|GPIO_Pin_15);
}
//Delay(0x0FFFFF);
}
}
void Delay(__IO uint32_t nCount)
{
while(nCount--)
{
}
}
Setelah itu, bisa di compile dan di download. Sebelum kita download file ke chip. ada sedikit yag perlu di
setting. SIlakan klik tab "View" --->>> Configuration.Ada sedikit perubahan yang saya lakukan. Yaitu di
tab Link, saya akan menggunkan "Use Base C Library". Dan di tab "Debugger", saya menggunakan "STLink" port "SWD" yang merupakan fitur bawaan STM32F4 Discovery. Lebih jelasnya, silakan melihat gambar dibawah ini:
Tampilan tab "Link"
Tampilan tab "Debugger"
Hasilnya, monggo cek video berikut. Ketika puh button biru ditekan LED btu dan merah akan menyala. Simple bukan. hehehe...
Cukup lah, g usah banyak banyak. Capek ngetiknya.
Tidak ada komentar:
Posting Komentar