CH32V307-SM 보드는 SM Type EVM 형태의 표준 핀맵으로 제작되었고 확장 테스트 보드에서 기존에 제작 해 두었던 여러가지 보드를 테스트 할 수 있다.
확장 테스트 보드의 LCD에는 8bit 방식으로 연결되어 있다.
8비트 방식을 16비트 방식으로 변환 해 주는 LCD_CONV 테스트 보드에 연결하여 테스트 했다.
소스코드는 Raspberry Pi PicoW - TFT LCD 출력 테스트(그래프 출력)를 수정해서 사용 했다. 초기화 부분과 데이터 출력 부분은 아래와 같이 수정 했다
#define LCD_XLINE_SIZE 240
#define LCD_YLINE_SIZE 400
#define sbi(Port, Value) Port->BSHR = (Value)
#define cbi(Port, Value) Port->BCR = (Value)
#define LCD_LAT_BIT GPIO_Pin_8
#define LCD_LAT_PORT GPIOA
#define LCD_LAT_ON() sbi(LCD_LAT_PORT, LCD_LAT_BIT)
#define LCD_LAT_OFF() cbi(LCD_LAT_PORT, LCD_LAT_BIT)
#define LCD_DATA_LATCH() LCD_LAT_ON();LCD_LAT_OFF();
#define LCD_EN_BIT GPIO_Pin_8
#define LCD_EN_PORT GPIOB
#define LCD_ENABLE() cbi(LCD_EN_PORT, LCD_EN_BIT);
#define LCD_DISABLE() sbi(LCD_EN_PORT, LCD_EN_BIT)
#define LCD_RS_BIT GPIO_Pin_9
#define LCD_RS_PORT GPIOB
#define LCD_RS_OFF() cbi(LCD_RS_PORT, LCD_RS_BIT)
#define LCD_RS_ON() sbi(LCD_RS_PORT, LCD_RS_BIT)
#define LCD_WR_BIT GPIO_Pin_3
#define LCD_WR_PORT GPIOB
#define LCD_WR_OFF() cbi(LCD_WR_PORT, LCD_WR_BIT);lcd_delay()
#define LCD_WR_ON() sbi(LCD_WR_PORT, LCD_WR_BIT);lcd_delay()
#define PORTC GPIOC->OUTDR
#define _LCD_DAT_OUT(Data) PORTC = (PORTC&(~0xC03F)) | (Data>>8&0x3F) | ((Data>>8&0xC0)<<8);\
LCD_DATA_LATCH();\
PORTC = (PORTC&(~0xC03F)) | (Data&0x3F) | ((Data&0xC0)<<8);
반응형