This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

STM32 driver for K0108 GLCD controller

Hi
I am looking for STM32 driver for KS0108 GLCD controller. Any body used ever??
I have downloaded one from en.radzio.dxp.pl/.../ It is puzzling for me that D/I pin is not defined??
I change the code like below in main low level library file:
I see some signals on scope but nothing on the LCD!

//lcd_pin_function.h

//LCD data port
#define    DP_0      GPIO_Pin_0   //PC0
#define    DP_1      GPIO_Pin_1   //PC1
#define    DP_2      GPIO_Pin_2   //PC2
#define    DP_3      GPIO_Pin_3   //PC3
#define    DP_4      GPIO_Pin_6   //PC6
#define    DP_5      GPIO_Pin_7   //PC7
#define    DP_6      GPIO_Pin_8   //PC8
#define    DP_7      GPIO_Pin_9   //PC9
//lcd control port
#define    CS1       GPIO_Pin_10   //PB10
#define    CS2       GPIO_Pin_11   //PB11
#define    CS3       GPIO_Pin_12   //PB12
#define    RS        GPIO_Pin_13   //PB13
#define    RW        GPIO_Pin_14   //PB14
#define    EN        GPIO_Pin_15   //PB15

#define SET_DP0 GPIO_SetBits(GPIOC, DP_0);
#define SET_DP1 GPIO_SetBits(GPIOC, DP_1);
#define SET_DP2 GPIO_SetBits(GPIOC, DP_2);
#define SET_DP3 GPIO_SetBits(GPIOC, DP_3);
#define SET_DP4 GPIO_SetBits(GPIOC, DP_4);
#define SET_DP5 GPIO_SetBits(GPIOC, DP_5);
#define SET_DP6 GPIO_SetBits(GPIOC, DP_6);
#define SET_DP7 GPIO_SetBits(GPIOB, DP_7);

#define RESET_DP0 GPIO_ResetBits(GPIOC, DP_0);
#define RESET_DP1 GPIO_ResetBits(GPIOC, DP_1);
#define RESET_DP2 GPIO_ResetBits(GPIOC, DP_2);
#define RESET_DP3 GPIO_ResetBits(GPIOC, DP_3);
#define RESET_DP4 GPIO_ResetBits(GPIOC, DP_4);
#define RESET_DP5 GPIO_ResetBits(GPIOC, DP_5);
#define RESET_DP6 GPIO_ResetBits(GPIOC, DP_6);
#define RESET_DP7 GPIO_ResetBits(GPIOB, DP_7);

#define SET_CS1 GPIO_SetBits(GPIOB, CS1);
#define SET_CS2 GPIO_SetBits(GPIOB, CS2);
#define SET_CS3 GPIO_SetBits(GPIOB, CS3);
#define SET_RS GPIO_SetBits(GPIOB, RS);
#define SET_RW GPIO_SetBits(GPIOB, RW);
#define SET_EN GPIO_SetBits(GPIOB, EN);

#define RESET_CS1 GPIO_ResetBits(GPIOB, CS1);
#define RESET_CS2 GPIO_ResetBits(GPIOB, CS2);
#define RESET_CS3 GPIO_ResetBits(GPIOB, CS3);
#define RESET_RS GPIO_ResetBits(GPIOB, RS);
#define RESET_RW GPIO_ResetBits(GPIOB, RW);
#define RESET_EN GPIO_ResetBits(GPIOB, EN);

#define Read_DP_0 GPIO_ReadOutputDataBit(GPIOC,DP_0)
#define Read_DP_1 GPIO_ReadOutputDataBit(GPIOC,DP_1)
#define Read_DP_2 GPIO_ReadOutputDataBit(GPIOC,DP_2)
#define Read_DP_3 GPIO_ReadOutputDataBit(GPIOC,DP_3)
#define Read_DP_4 GPIO_ReadOutputDataBit(GPIOC,DP_4)
#define Read_DP_5 GPIO_ReadOutputDataBit(GPIOC,DP_5)
#define Read_DP_6 GPIO_ReadOutputDataBit(GPIOC,DP_6)
#define Read_DP_7 GPIO_ReadOutputDataBit(GPIOB,DP_7)

#define Read_Dataport (Read_DP_0<<0 |Read_DP_1<<1 |Read_DP_2<<2 |Read_DP_3<<3 |Read_DP_4<<4 |Read_DP_5<<5 |Read_DP_6<<6 |Read_DP_7<<7)
void Set_Dataport(unsigned char Data);
void GLCD_InitializePorts(void);
//-------------------------------------------------------------------------------------------------
// Universal KS0108 driver library
// STM32 MCU low-level driver
// (c) Rados³aw Kwiecieñ, radek@dxp.pl
//-------------------------------------------------------------------------------------------------
//#include "stm32f10x_lib.h"
#include "stm32l1xx.h"
#include "lcd_pin_function.h"



#define DISPLAY_STATUS_BUSY 0x80
extern unsigned char screen_x; extern unsigned char screen_y;
GPIO_InitTypeDef GPIO_InitStructure;
void Set_Dataport(unsigned char Data) {
GPIO_StructInit(&GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = DP_0|DP_1|DP_2|DP_3|DP_4|DP_5|DP_6|DP_7; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; GPIO_InitStructure.GPIO_OType=GPIO_OType_PP; GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_NOPULL ; GPIO_Init(GPIOC, &GPIO_InitStructure);
if (Data & 1<<0) GPIO_SetBits(GPIOC, DP_0); else GPIO_ResetBits(GPIOC, DP_0); if (Data & 1<<1) GPIO_SetBits(GPIOC, DP_1); else GPIO_ResetBits(GPIOC, DP_1); if (Data & 1<<2) GPIO_SetBits(GPIOC, DP_2); else GPIO_ResetBits(GPIOC, DP_2); if (Data & 1<<3) GPIO_SetBits(GPIOC, DP_3); else GPIO_ResetBits(GPIOC, DP_3); if (Data & 1<<4) GPIO_SetBits(GPIOC, DP_4); else GPIO_ResetBits(GPIOC, DP_4); if (Data & 1<<5) GPIO_SetBits(GPIOC, DP_5); else GPIO_ResetBits(GPIOC, DP_5); if (Data & 1<<6) GPIO_SetBits(GPIOC, DP_6); else GPIO_ResetBits(GPIOC, DP_6); if (Data & 1<<7) GPIO_SetBits(GPIOC, DP_7); else GPIO_ResetBits(GPIOB, DP_7); }
void Reset_Dataport(unsigned char Data) { GPIO_StructInit(&GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = DP_0|DP_1|DP_2|DP_3|DP_4|DP_5|DP_6|DP_7; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; GPIO_InitStructure.GPIO_OType=GPIO_OType_PP; GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_NOPULL ; GPIO_Init(GPIOC, &GPIO_InitStructure);
if (Data & 1<<0) GPIO_ResetBits(GPIOC, DP_0); //else GPIO_ResetBits(GPIOC, DP_0); if (Data & 1<<1) GPIO_ResetBits(GPIOC, DP_1); //else GPIO_ResetBits(GPIOC, DP_1); if (Data & 1<<2) GPIO_ResetBits(GPIOC, DP_2); //else GPIO_ResetBits(GPIOC, DP_2); if (Data & 1<<3) GPIO_ResetBits(GPIOC, DP_3); //else GPIO_ResetBits(GPIOC, DP_3); if (Data & 1<<4) GPIO_ResetBits(GPIOC, DP_4); //else GPIO_ResetBits(GPIOC, DP_4); if (Data & 1<<5) GPIO_ResetBits(GPIOC, DP_5); //else GPIO_ResetBits(GPIOC, DP_5); if (Data & 1<<6) GPIO_ResetBits(GPIOC, DP_6); //else GPIO_ResetBits(GPIOC, DP_6); if (Data & 1<<7) GPIO_ResetBits(GPIOC, DP_7); //else GPIO_ResetBits(GPIOB, DP_7); }
//------------------------------------------------------------------------------------------------- // Delay function /for 8MHz/ //------------------------------------------------------------------------------------------------- void GLCD_Delay(void) { // asm("nop");asm("nop");asm("nop");asm("nop"); __nop();__nop();__nop();__nop(); } //------------------------------------------------------------------------------------------------- // Enalbe Controller (0-2) //------------------------------------------------------------------------------------------------- void GLCD_EnableController(unsigned char controller) { switch(controller){ case 0 : RESET_CS1; break; case 1 : RESET_CS2; break; case 2 : RESET_CS3; break; } } ...

Parents Reply Children
No data