你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32L152 在 MX_LCD_Init() 時,總是進入 Error_Handler()

[复制链接]
wueric 提问时间:2018-11-2 12:04 /
請教各位大大


為何在 MX_LCD_Init() 時,總是進入 Error_Handler (如下方程式碼中黃色部份) , 請問可能的因素有哪些?
我的MCU是STM32L152RBT6


HAL_StatusTypeDef HAL_LCD_Init(LCD_HandleTypeDef *hlcd)
{
  uint32_t tickstart = 0x00;
  uint8_t counter = 0;
   
  /* Check the LCD handle allocation */
  if(hlcd == NULL)
  {
    return HAL_ERROR;
  }
...
...
...
  /* Get timeout */
  tickstart = HAL_GetTick();
  
  /*!< Wait Until the LCD Booster is ready */
  while(__HAL_LCD_GET_FLAG(hlcd, LCD_FLAG_RDY) == RESET)
  {
    if((HAL_GetTick() - tickstart ) > LCD_TIMEOUT_VALUE)
    {   
      hlcd->ErrorCode = HAL_LCD_ERROR_RDY;  
      return HAL_TIMEOUT;
    }
  }

  /* Initialize the LCD state */
  hlcd->ErrorCode = HAL_LCD_ERROR_NONE;
  hlcd->State= HAL_LCD_STATE_READY;
  
  return HAL_OK;
}








static void MX_LCD_Init(void)
{
  hlcd.Instance = LCD;
  hlcd.Init.Prescaler = LCD_PRESCALER_1;
  hlcd.Init.Divider = LCD_DIVIDER_16;
  hlcd.Init.Duty = LCD_DUTY_1_8;
  hlcd.Init.Bias = LCD_BIAS_1_4;
  hlcd.Init.VoltageSource = LCD_VOLTAGESOURCE_INTERNAL;
  hlcd.Init.Contrast = LCD_CONTRASTLEVEL_7;
  hlcd.Init.DeadTime = LCD_DEADTIME_1;
  hlcd.Init.PulseOnDuration = LCD_PULSEONDURATION_0;
  hlcd.Init.MuxSegment = LCD_MUXSEGMENT_DISABLE;
  hlcd.Init.BlinkMode = LCD_BLINKMODE_OFF;
  hlcd.Init.BlinkFrequency = LCD_BLINKFREQUENCY_DIV8;
  if (HAL_LCD_Init(&hlcd) != HAL_OK)
  {
    Error_Handler();
  }
}



收藏 评论5 发布时间:2018-11-2 12:04

举报

5个回答
七哥 回答时间:2018-11-2 12:44:14
看样子问题出在LCD_FLAG_RDY标志上,检查下硬件有没有问题,LCD模块设置。你用的哪款LCD?
如果没问题的话,把LCD_TIMEOUT_VALUE适当调大一点,但不要大于SysTick能表示的最大值(24位)。

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

胤幻1988 回答时间:2018-11-2 13:38:09
__HAL_LCD_GET_FLAG(hlcd, LCD_FLAG_RDY) 这个函数没有正确返回,或者超时了。感觉应该是硬件问题。

评分

参与人数 1蝴蝶豆 +1 收起 理由
STMCU + 1

查看全部评分

sky_han 回答时间:2018-11-2 16:23:44
你这个tick有没有初始化好,在这边判断时候正常吗?
废鱼 回答时间:2018-11-2 16:49:02
TICK应该没有问题,如果TICK不工作的话。这里就死循环了。从代码上分析是LCD没有应答。楼主看一下波形是否正常。

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

qq53722936 回答时间:2019-2-18 15:11:59
这问题怎么解决的? 我也碰到同样问题了,用官方的例子都初始化不过!
没有解决方式,怎么就标注已解决了呢?怎么可以这样?
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版