硬汉嵌入式论坛

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

[emWin] 请教下,移植emwin 提示数据类型不对 ?

[复制链接]

681

主题

3485

回帖

5553

积分

论坛元老

积分
5553
发表于 2018-3-3 22:19:25 | 显示全部楼层 |阅读模式
请教下,移植emwin 提示数据类型不对 ?

wang.png




回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115765
QQ
发表于 2018-3-4 01:11:05 | 显示全部楼层
数据类型不统一,一个定义wchar_t是16bit的,另一个是定义的32bit。
回复

使用道具 举报

681

主题

3485

回帖

5553

积分

论坛元老

积分
5553
 楼主| 发表于 2018-3-4 08:25:04 | 显示全部楼层
eric2013 发表于 2018-3-4 01:11
数据类型不统一,一个定义wchar_t是16bit的,另一个是定义的32bit。

貌似 wchar_t 这个在整个工程中搜索又没有搜索到啊
回复

使用道具 举报

681

主题

3485

回帖

5553

积分

论坛元老

积分
5553
 楼主| 发表于 2018-3-4 16:07:51 | 显示全部楼层
本帖最后由 hpdell 于 2018-3-4 17:00 编辑
eric2013 发表于 2018-3-4 01:11
数据类型不统一,一个定义wchar_t是16bit的,另一个是定义的32bit。

移植已经基本成功了,目前可以显示基本的 字符、汉字了,但是那个警告看起来感觉不爽啊 !!

不知道有没有其他的什么好方法解决啊 ?

另外貌似显示的 x 方向坐标有偏差,不知道什么原因造成的啊 ???

002.png


003.png
历程是参考  V6-915_STemWin提高篇实验_万年历(FreeRTOS)  这个修改的
x 方向设置为10,怎么显示还是不全,正常应该是向右偏移10个像素才对啊 ??

如果不使用 emwin 的话,坐标位置是完全正确的





回复

使用道具 举报

681

主题

3485

回帖

5553

积分

论坛元老

积分
5553
 楼主| 发表于 2018-3-4 17:49:32 | 显示全部楼层
本帖最后由 hpdell 于 2018-3-4 21:42 编辑

貌似跟这个 _LTDC_SetLayerPos 函数有关,吧这个函数的内容屏蔽就好了,但是不知道对以后的程序有没有什么影响啊 ?????

/*
*********************************************************************************************************
*        函 数 名: _LTDC_SetLayerPos
*        功能说明: 设置图层的位置
*        形    参: LayerIndex   结构体指针
*             xPos         X位置
*             yPos         Y位置
*        返 回 值: 无
*********************************************************************************************************
*/
static void _LTDC_SetLayerPos(int LayerIndex, int xPos, int yPos) {
  /*
  int xSize, ySize;
  U32 HorizontalStart, HorizontalStop, VerticalStart, VerticalStop;

  xSize = LCD_GetXSizeEx(LayerIndex);
  ySize = LCD_GetYSizeEx(LayerIndex);

// 貌似显示坐标位置 不对跟这个有关 ????????????????//其中 LCD_HBP ,LCD_VBP  这2个参数,如果不使用 emWin 显示时,坐标完全正常,但是使用 emWin 后,显示的坐标就不正常了,请问是怎么回事啊 ???????
  HorizontalStart = xPos + LCD_HBP + 1;
  HorizontalStop  = xPos + LCD_HBP + xSize;
  VerticalStart   = yPos + LCD_VBP + 1;
  VerticalStop    = yPos + LCD_VBP + ySize;


  //
  // Horizontal start and stop position
  //
  _apLayer[LayerIndex]->WHPCR &= ~(LTDC_LxWHPCR_WHSTPOS | LTDC_LxWHPCR_WHSPPOS);
  _apLayer[LayerIndex]->WHPCR = (HorizontalStart | (HorizontalStop << 16));
  //
  // Vertical start and stop position
  //
  _apLayer[LayerIndex]->WVPCR &= ~(LTDC_LxWVPCR_WVSTPOS | LTDC_LxWVPCR_WVSPPOS);
  _apLayer[LayerIndex]->WVPCR  = (VerticalStart | (VerticalStop << 16));
  //
  // Reload configuration
  //
//  LTDC_ReloadConfig(LTDC_SRCR_VBR); // Reload on next blanking period 标准库
  HAL_LTDC_Reload(&LCD_Handle, LTDC_SRCR_VBR);    // hal 库
*/  

}


回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115765
QQ
发表于 2018-3-5 01:22:01 | 显示全部楼层
hpdell 发表于 2018-3-4 17:49
貌似跟这个 _LTDC_SetLayerPos 函数有关,吧这个函数的内容屏蔽就好了,但是不知道对以后的程序有没有什么 ...

没发现什么问题,多试试。
回复

使用道具 举报

681

主题

3485

回帖

5553

积分

论坛元老

积分
5553
 楼主| 发表于 2018-3-5 09:31:07 | 显示全部楼层
eric2013 发表于 2018-3-5 01:22
没发现什么问题,多试试。

对以后的程序运行没有什么影响就好啊,目前吧此函数里面的内容屏蔽后,控制坐标值很准了啊
回复

使用道具 举报

0

主题

52

回帖

128

积分

初级会员

积分
128
发表于 2018-3-8 14:22:24 | 显示全部楼层
楼主是移植的官方支持的驱动芯片吗?
回复

使用道具 举报

681

主题

3485

回帖

5553

积分

论坛元老

积分
5553
 楼主| 发表于 2018-3-8 16:57:30 | 显示全部楼层
skawu 发表于 2018-3-8 14:22
楼主是移植的官方支持的驱动芯片吗?

是的,最后还是惭愧st官方的 hal 库的历程,目前貌似工作稳定,情绪稳定,不过有时貌似在进行

滑动条时,屏幕上有黑影,估计看是我哪里的速度设置快了吧,

用群主家的历程改后可以显示滑动条出,但是在滑动时屏幕貌似有干扰,不知道是哪里没有搞好啊,因为标准库
跟hal库有很多不一样
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-16 11:36 , Processed in 0.320368 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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