飞思卡尔kinetis 低功耗系列KL16Z 移植emwin到12864
本帖最后由 willlijie 于 2014-10-29 17:05 编辑因为功耗问题选择12864(UC1701驱动,SPI接口),成功移植emwin.可以任意位置显示英文。自己摸索比较费劲,在这里共享下。控件显示部分有问题,不过这个屏也用不到,呵呵。
LCDConf.c中关键配置如下:
//
// Physical display size
//
#define XSIZE_PHYS 128
#define YSIZE_PHYS 64
//
// Color conversion
//
#define COLOR_CONVERSION GUICC_1// 黑白色
//
// Display driver
//
#define DISPLAY_DRIVERGUIDRV_SPAGE_1C1
//GUIDRV_SPAGE_1C0 //1bpp not with cache // GUIDRV_LIN_32GUIDRV_SPage
//GUIDRV_SPAGE_1C1 //1bpp with cache
//
// Buffers / VScreens
//
#define NUM_BUFFERS1 //1 Number of multiple buffers to be used
#define NUM_VSCREENS 1 //1 Number of virtual screens to be used
void LCD_X_Config(void) {
CONFIG_SPAGE Config = {0};
GUI_DEVICE * pDevice;
GUI_PORT_API PortAPI = {0};
//
// At first initialize use of multiple buffers on demand
//
#if (NUM_BUFFERS > 1)
GUI_MULTIBUF_Config(NUM_BUFFERS);
#endif
//
// Set display driver and color conversion for 1st layer
//
pDevice = GUI_DEVICE_CreateAndLink(DISPLAY_DRIVER, COLOR_CONVERSION, 0, 0);
//
// Display driver configuration, required for Lin-driver
//
if (LCD_GetSwapXY()) {
LCD_SetSizeEx (0, YSIZE_PHYS, XSIZE_PHYS);
LCD_SetVSizeEx(0, YSIZE_PHYS * NUM_VSCREENS, XSIZE_PHYS);
} else {
LCD_SetSizeEx (0, XSIZE_PHYS, YSIZE_PHYS);
LCD_SetVSizeEx(0, XSIZE_PHYS, YSIZE_PHYS * NUM_VSCREENS);
}
LCD_SetVRAMAddrEx(0, (void *)VRAM_ADDR);
////////////////////////////////////////////////////////////////////////////////////
//
// Configure hardware routines
//
#ifndef WIN32
PortAPI.pfWrite8_A0 = HalLcd_HW_Control;//_Write8_A0;//Write a byte to LCD controller with A-line low
PortAPI.pfWrite8_A1 = HalLcd_HW_Write;//_Write8_A1;//Write a byte to LCD controller with A-line high
PortAPI.pfWriteM8_A1 = HalLcd_HW_Write_Multi;//_WriteM8_A1;//Write multi byte to LCD controller with A-line high
// PortAPI.pfReadM8_A1 = HalLcd_read;//LCD_X_8080_8_ReadM01 Read multi byte to LCD controller with A-line high
GUIDRV_SPage_SetBus8(pDevice, &PortAPI);//bug??
#endif
//
// Controller configuration
//
// GUIDRV_SPage_SetS1D15(pDevice, Controller);// Controller= 5.20µ±Ç°°æ¿âÒѾÒÆÖ²uc1611,µ«ÊÇδÒÆÖ²UC1701
GUIDRV_SPage_Set1510(pDevice);//uc1701 controllers
//
// Create and configure (double) cache driver, ...
//
//pDevice = GUI_DEVICE_CreateAndLink(GUIDRV_DCACHE, GUICC_1, 0, 0);
////
//// ... set size, ...
////
//LCD_SetSizeEx (0, XSIZE_PHYS, YSIZE_PHYS);
//LCD_SetVSizeEx(0, VXSIZE_PHYS, VYSIZE_PHYS);
//
// ...set color depth, ...
//
//GUIDRV_DCache_SetMode1bpp(pDevice);
//Then the real driver should be added for doing the drawing operations:
//
// ... and add real driver.
//
//GUIDRV_DCache_AddDriver(pDevice, pDriver);
/////////////////////////////////////////////////////////////
#if defined(PALETTE)
LCD_SetLUTEx(0, PALETTE);
#endif
} 四线spi不支持读操作 emwin移植到12864屏上,SPI接口,学习。 学习emwin。 “控件显示部分有问题”,是指的什么问题? 把emwin移植到12864屏上 ,这个厉害 ! emwin看来比较用的地方挺多的。
页:
[1]