#include "Character_lcd.h" void LCD_16T202DA1EA_Init(void){ HAL_GPIO_WritePin(GPIOD, GPIO_PIN_12, GPIO_PIN_RESET); HAL_Delay(1); HAL_GPIO_WritePin(GPIOD, GPIO_PIN_12, GPIO_PIN_SET); HAL_Delay(1); HAL_GPIO_WritePin(GPIOD, GPIO_PIN_10, GPIO_PIN_RESET); HAL_Delay(1); HAL_GPIO_WritePin(GPIOD, GPIO_PIN_10, GPIO_PIN_SET); } typedef struct{ uint16_t RW_PIN; uint16_t RS; uint16_t E; uint16_t Reset; uint16_t DB0; uint16_t DB1; uint16_t DB2; uint16_t DB3; uint16_t DB4; uint16_t DB5; uint16_t DB6; uint16_t DB7; GPIO_TypeDef * RW_PIN_Port; GPIO_TypeDef * RS_Port; GPIO_TypeDef * E_Port; GPIO_TypeDef * DB0_Port; GPIO_TypeDef * DB1_Port; GPIO_TypeDef * DB2_Port; GPIO_TypeDef * DB3_Port; GPIO_TypeDef * DB4_Port; GPIO_TypeDef * DB5_Port; GPIO_TypeDef * DB6_Port; GPIO_TypeDef * DB7_Port; }lcd_Pin_st; void LCD_M68_DataWrite_COMMAND_Init(void){ lcd_Pin_st lcdset; lcdset.RW_PIN = GPIO_PIN_12;//pd lcdset.RS = GPIO_PIN_11;//pd lcdset.E = GPIO_PIN_13;//pd lcdset.DB0 = GPIO_PIN_14; //pd lcdset.DB1 = GPIO_PIN_15;//pd lcdset.Reset = GPIO_PIN_10; lcdset.DB2 = GPIO_PIN_2;//pg lcdset.DB3 = GPIO_PIN_3;//pg lcdset.DB5 = GPIO_PIN_4;//pg lcdset.DB4 = GPIO_PIN_5;//pg lcdset.DB6 = GPIO_PIN_6;//pg lcdset.DB7 = GPIO_PIN_7;//pg HAL_GPIO_WritePin(GPIOD, lcdset.E|lcdset.RS|lcdset.RW_PIN|lcdset.DB0|lcdset.DB1 , GPIO_PIN_RESET); HAL_GPIO_WritePin(GPIOG, lcdset.DB2|lcdset.DB3|lcdset.DB4|lcdset.DB5|lcdset.DB7, GPIO_PIN_SET); //PIN Init HAL_GPIO_WritePin(GPIOD, lcdset.E , GPIO_PIN_SET); HAL_GPIO_WritePin(GPIOD, lcdset.DB0, GPIO_PIN_SET); HAL_GPIO_WritePin(GPIOD, lcdset.DB1, GPIO_PIN_SET); HAL_GPIO_WritePin(GPIOG, lcdset.DB2, GPIO_PIN_SET); HAL_GPIO_WritePin(GPIOG, lcdset.DB3, GPIO_PIN_SET); HAL_GPIO_WritePin(GPIOG, lcdset.DB4, GPIO_PIN_RESET); HAL_GPIO_WritePin(GPIOG, lcdset.DB5, GPIO_PIN_RESET); HAL_GPIO_WritePin(GPIOG, lcdset.DB6, GPIO_PIN_RESET); HAL_GPIO_WritePin(GPIOG, lcdset.DB7, GPIO_PIN_RESET); HAL_GPIO_WritePin(GPIOD, lcdset.E , GPIO_PIN_RESET); HAL_Delay(1); } void LCD_M68_DataWrite_COMMAND_TEST(void){ lcd_Pin_st lcdset; char aa = 'a'; lcdset.RW_PIN = GPIO_PIN_12;//pd lcdset.RS = GPIO_PIN_11;//pd lcdset.E = GPIO_PIN_13;//pd lcdset.DB0= GPIO_PIN_14; //pd lcdset.DB1= GPIO_PIN_15;//pd lcdset.DB2= GPIO_PIN_2;//pg lcdset.DB3= GPIO_PIN_3;//pg lcdset.DB5= GPIO_PIN_4;//pg lcdset.DB4= GPIO_PIN_5;//pg lcdset.DB6= GPIO_PIN_6;//pg lcdset.DB7= GPIO_PIN_7;//pg HAL_GPIO_WritePin(GPIOG, lcdset.DB2|lcdset.DB3|lcdset.DB4|lcdset.DB5|lcdset.DB6|lcdset.DB7, GPIO_PIN_RESET); HAL_GPIO_WritePin(GPIOD, lcdset.DB0|lcdset.DB1 , GPIO_PIN_RESET); HAL_GPIO_WritePin(GPIOD, lcdset.E , GPIO_PIN_RESET); HAL_GPIO_WritePin(GPIOD, lcdset.RS , GPIO_PIN_RESET); HAL_GPIO_WritePin(GPIOD, lcdset.RW_PIN, GPIO_PIN_RESET); HAL_Delay(1); HAL_GPIO_WritePin(GPIOD, lcdset.RS , GPIO_PIN_SET); HAL_GPIO_WritePin(GPIOD, lcdset.E , GPIO_PIN_SET); HAL_GPIO_WritePin(GPIOD, lcdset.DB0, GPIO_PIN_RESET); HAL_GPIO_WritePin(GPIOD, lcdset.DB1, GPIO_PIN_RESET); HAL_GPIO_WritePin(GPIOG, lcdset.DB2, GPIO_PIN_RESET); HAL_GPIO_WritePin(GPIOG, lcdset.DB3, GPIO_PIN_RESET); HAL_GPIO_WritePin(GPIOG, lcdset.DB4, GPIO_PIN_SET); HAL_GPIO_WritePin(GPIOG, lcdset.DB5, GPIO_PIN_SET); HAL_GPIO_WritePin(GPIOG, lcdset.DB6, GPIO_PIN_RESET); HAL_GPIO_WritePin(GPIOG, lcdset.DB7, GPIO_PIN_RESET); HAL_GPIO_WritePin(GPIOD, lcdset.E , GPIO_PIN_RESET); HAL_GPIO_WritePin(GPIOD, lcdset.RS , GPIO_PIN_RESET); HAL_GPIO_WritePin(GPIOG, lcdset.DB2|lcdset.DB3|lcdset.DB4|lcdset.DB5|lcdset.DB6|lcdset.DB7, GPIO_PIN_RESET); } void LCD_M68_DataWrite_COMMAND(uint8_t line,uint8_t cmd,uint8_t data){ lcd_Pin_st lcdset; uint16_t temp_Pinbuf[8]={0,}; GPIO_TypeDef* temp_Portbuf[8]={0,}; lcdset.RW_PIN = GPIO_PIN_12;//pd lcdset.RS = GPIO_PIN_11;//pd lcdset.E = GPIO_PIN_13;//pd lcdset.DB0 = GPIO_PIN_14;//pd lcdset.DB1 = GPIO_PIN_15;//pd lcdset.DB2 = GPIO_PIN_2;//pg lcdset.DB3 = GPIO_PIN_3;//pg lcdset.DB5 = GPIO_PIN_4;//pg lcdset.DB4 = GPIO_PIN_5;//pg lcdset.DB6 = GPIO_PIN_6;//pg lcdset.DB7 = GPIO_PIN_7;//pg HAL_GPIO_WritePin(GPIOD, lcdset.E|lcdset.RS|lcdset.RW_PIN|lcdset.DB0|lcdset.DB1 , GPIO_PIN_RESET); HAL_GPIO_WritePin(GPIOG, lcdset.DB2|lcdset.DB3|lcdset.DB4|lcdset.DB5|lcdset.DB6|lcdset.DB7, GPIO_PIN_RESET); //PIN Init if(cmd == Instruction_CMD){ HAL_GPIO_WritePin(GPIOD, lcdset.RS , GPIO_PIN_RESET); // Init Instruction CMD }else{ HAL_GPIO_WritePin(GPIOD, lcdset.RS , GPIO_PIN_SET); //Init Data CMD } HAL_Delay(1); memcpy(&temp_Pinbuf[0] ,&lcdset.DB0 ,8); memcpy(&temp_Portbuf[0],&lcdset.DB0_Port,8); HAL_GPIO_WritePin(GPIOD, lcdset.E , GPIO_PIN_SET); if(data & 0x01) HAL_GPIO_WritePin(GPIOD, lcdset.DB0, GPIO_PIN_SET); else HAL_GPIO_WritePin(GPIOD, lcdset.DB0, GPIO_PIN_RESET); if(data & 0x02) HAL_GPIO_WritePin(GPIOD, lcdset.DB1, GPIO_PIN_SET); else HAL_GPIO_WritePin(GPIOD, lcdset.DB1, GPIO_PIN_RESET); if(data & 0x04) HAL_GPIO_WritePin(GPIOG, lcdset.DB2, GPIO_PIN_SET); else HAL_GPIO_WritePin(GPIOG, lcdset.DB2, GPIO_PIN_RESET); if(data & 0x08) HAL_GPIO_WritePin(GPIOG, lcdset.DB3, GPIO_PIN_SET); else HAL_GPIO_WritePin(GPIOG, lcdset.DB3, GPIO_PIN_RESET); if(data & 0x10) HAL_GPIO_WritePin(GPIOG, lcdset.DB4, GPIO_PIN_SET); else HAL_GPIO_WritePin(GPIOG, lcdset.DB4, GPIO_PIN_RESET); if(data & 0x20) HAL_GPIO_WritePin(GPIOG, lcdset.DB5, GPIO_PIN_SET); else HAL_GPIO_WritePin(GPIOG, lcdset.DB5, GPIO_PIN_RESET); if(data & 0x40) HAL_GPIO_WritePin(GPIOG, lcdset.DB6, GPIO_PIN_SET); else HAL_GPIO_WritePin(GPIOG, lcdset.DB6, GPIO_PIN_RESET); if(data & 0x80) HAL_GPIO_WritePin(GPIOG, lcdset.DB7, GPIO_PIN_SET); else HAL_GPIO_WritePin(GPIOG, lcdset.DB7, GPIO_PIN_RESET); HAL_GPIO_WritePin(GPIOD, lcdset.E , GPIO_PIN_RESET); //Init E Line if(cmd == Instruction_CMD){ HAL_GPIO_WritePin(GPIOD, lcdset.RS , GPIO_PIN_SET); //Init Data CMD }else{ HAL_GPIO_WritePin(GPIOD, lcdset.RS , GPIO_PIN_RESET); // Init Instruction CMD } }