硬汉嵌入式论坛

 找回密码
 立即注册
查看: 10064|回复: 9
收起左侧

[emWin] 请问STemWin5.22内置驱动支持不支持R61509?

[复制链接]

1

主题

28

回帖

1

积分

新手上路

积分
1
发表于 2014-2-6 23:44:14 | 显示全部楼层 |阅读模式
请问STemWin5.22内置驱动支持不支持R61509?如果需要自行修改LCD_X_Config(),请问具体修改的要点。谢谢!
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107218
QQ
发表于 2014-2-7 09:23:16 | 显示全部楼层
楼主,你用的是不是我们安富莱电子的3.0的屏,要是的话,完整的例子可以在论坛下载。
http://www.armbbs.cn/forum.php?mod=viewthread&tid=1830
做的时候是用的emWin5.20,将其升级到5.22就行,你可以在论坛检索“升级”就可以找到那个帖子。

记得官方的驱动已经支持SPDF5420了,现在我还在外面,明天才能回去,不好查看手册,你看看驱动那章
节就可以找到是否支持这个驱动,或者直接检索R61509。
回复

使用道具 举报

1

主题

28

回帖

1

积分

新手上路

积分
1
 楼主| 发表于 2014-2-8 17:52:25 | 显示全部楼层
手册上写支持Renesas R61505, R61516, R61526, R61580,但是没有R61509。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107218
QQ
发表于 2014-2-8 22:00:18 | 显示全部楼层
那就用论坛提供的驱动就行,支持5420,4001和61509
回复

使用道具 举报

1

主题

28

回帖

1

积分

新手上路

积分
1
 楼主| 发表于 2014-2-8 22:49:45 | 显示全部楼层
花了时间看了例程armfly-X2开发板裸机STemWin5.20,发现emWin和STemWin的区别还是挺大的,例如在STemWin中:

void LCD_X_Config(void) {
  GUI_DEVICE * pDevice;
  CONFIG_FLEXCOLOR Config = {0};
  GUI_PORT_API PortAPI = {0};
  //
  // Set display driver and color conversion
  //
  pDevice = GUI_DEVICE_CreateAndLink(GUIDRV_FLEXCOLOR, GUICC_565, 0, 0);
  //
  // Display driver configuration, required for Lin-driver
  //
  LCD_SetSizeEx (0, XSIZE_PHYS , YSIZE_PHYS);
  LCD_SetVSizeEx(0, VXSIZE_PHYS, VYSIZE_PHYS);
  //
  // Orientation
  //
  Config.Orientation = GUI_SWAP_XY | GUI_MIRROR_Y;
  GUIDRV_FlexColor_Config(pDevice, &Config);
  //
  // Set controller and operation mode
  //
  PortAPI.pfWrite16_A0  = LcdWriteReg;
  PortAPI.pfWrite16_A1  = LcdWriteData;
  PortAPI.pfWriteM16_A1 = LcdWriteDataMultiple;
  PortAPI.pfReadM16_A1  = LcdReadDataMultiple;
  GUIDRV_FlexColor_SetFunc(pDevice, &amportAPI, GUIDRV_FLEXCOLOR_F66708, GUIDRV_FLEXCOLOR_M16C0B16);
}
中,驱动函数传递使用GUI_DEVICE_CreateAndLink() 和 GUIDRV_FlexColor_SetFunc(),与emWin完全不同。

请问在STemWin的软件架构和驱动函数下,如何增加新的驱动?谢谢!
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107218
QQ
发表于 2014-2-9 11:41:40 | 显示全部楼层

回 adicsh 的帖子

adicsh:花了时间看了例程armfly-X2开发板裸机STemWin5.20,发现emWin和STemWin的区别还是挺大的,例如在STemWin中:

void LCD_X_Config(void) {
  GUI_DEVICE * pDevice;
  CONFIG_FLEXCOLOR Config = {0};
....... (2014-02-08 22:49) 
一样的,没有区别,估计是你用的版本不一样,在5.20以前的版本和以后的版本在驱动上稍有区别。
你写的这个函数时官方的驱动方式,我很少用官方的驱动。
回复

使用道具 举报

1

主题

28

回帖

1

积分

新手上路

积分
1
 楼主| 发表于 2014-2-16 22:05:27 | 显示全部楼层
还有一个问题,官方例程中外部调用函数如下:
void LCD_DeInit(void);
void FendouBoard_LCD_Init(void);
void LCD_SetColors(__IO uint16_t _TextColor, __IO uint16_t _BackColor);
void LCD_GetColors(__IO uint16_t *_TextColor, __IO uint16_t *_BackColor);
void LCD_SetTextColor(__IO uint16_t Color);
void LCD_SetBackColor(__IO uint16_t Color);
void LCD_ClearLine(uint16_t Line);
void LCD_Clear(uint16_t Color);
void LCD_SetCursor(uint16_t Xpos, uint16_t Ypos);
void LCD_DrawChar(uint16_t Xpos, uint16_t Ypos, const uint16_t *c);
void LCD_DisplayChar(uint16_t Line, uint16_t Column, uint8_t Ascii);
void LCD_SetFont(sFONT *fonts);
sFONT *LCD_GetFont(void);
void LCD_DisplayStringLine(uint16_t Line, uint8_t *ptr);
void LCD_SetDisplayWindow(uint16_t Xpos, uint16_t Ypos, uint8_t Height, uint16_t Width);
void LCD_WindowModeDisable(void);
void LCD_DrawLine(uint16_t Xpos, uint16_t Ypos, uint16_t Length, uint8_t Direction);
void LCD_DrawRect(uint16_t Xpos, uint16_t Ypos, uint8_t Height, uint16_t Width);
void LCD_DrawCircle(uint16_t Xpos, uint16_t Ypos, uint16_t Radius);
void LCD_DrawMonoPict(const uint32_t *Pict);
void LCD_WriteBMP(uint32_t BmpAddress);
void LCD_DrawUniLine(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2);
void LCD_DrawFullRect(uint16_t Xpos, uint16_t Ypos, uint16_t Width, uint16_t Height);
void LCD_DrawFullCircle(uint16_t Xpos, uint16_t Ypos, uint16_t Radius);
void LCD_PolyLine(pPoint Points, uint16_t PointCount);
void LCD_PolyLineRelative(pPoint Points, uint16_t PointCount);
void LCD_ClosedPolyLine(pPoint Points, uint16_t PointCount);
void LCD_ClosedPolyLineRelative(pPoint Points, uint16_t PointCount);
void LCD_FillPolyLine(pPoint Points, uint16_t PointCount);

但是你的代码中的外部调用函数和官方例程中不太一致,函数名称也不太一致,请问Lib库中调用这些函数时会不会出现调用的问题?
回复

使用道具 举报

1

主题

28

回帖

1

积分

新手上路

积分
1
 楼主| 发表于 2014-2-16 22:15:49 | 显示全部楼层
举个例子,官方例程中:
void LCD_WriteBMP(uint32_t BmpAddress);

但是你的代码中是:
void LCD_DrawBMP(uint16_t _usX, uint16_t _usY, uint16_t _usHeight, uint16_t _usWidth, uint16_t *_ptr);

这调用是如何实现的,代码中也没有相关的函数指针来处理,为什么Lib库看起来对于两种不同函数都能够正确调用呢?

BTW,我用的是ST官网的STemWin_Library_V1.1.1,对应的emWin5.22。
回复

使用道具 举报

2

主题

1

回帖

2

积分

新手上路

积分
2
发表于 2014-7-30 19:11:01 | 显示全部楼层
请问楼主调试出来了吗,我使用的不是STemwin , 我用的是自定义驱动,可以刷背景,但是无法显示字符串,连最基本的打点都不行,如果调试出来了,是否可以给我看看你的,谢谢楼主
回复

使用道具 举报

4

主题

14

回帖

4

积分

新手上路

积分
4
发表于 2014-8-3 15:24:43 | 显示全部楼层
同问,我的液晶屏也不是官方支持的那种驱动,现在出现字符串镜像,能显示,还有个函数不明白,这个怎么移植GUIDRV_FlexColor_SetFunc,怎么跟颜色对应。。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-21 18:19 , Processed in 0.191150 second(s), 31 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表