STM32F429 DISCORY初始化PCD后再次返回到130行执行

2019-07-14 13:54发布

使用STM32F429 DISCORY做USB DEVICE的实验,在初始化PCD的时候,在HAL_PCD_Init函数中发生一个很奇怪的问题,我的HAL_PCD_Init函数部分如下
122 HAL_StatusTypeDef HAL_PCD_Init(PCD_HandleTypeDef *hpcd)
{
  uint32_t i = 0;  
  printf("[%s %d] ",__FUNCtiON__,__LINE__);
  if(hpcd == NULL)
  {
    printf("[%s %d] ",__FUNCTION__,__LINE__);
    return HAL_ERROR;
  }
  printf("[%s %d] ",__FUNCTION__,__LINE__);
  /* Check the parameters */
  assert_param(IS_PCD_ALL_INSTANCE(hpcd->Instance));

  hpcd->State = HAL_PCD_STATE_BUSY;  
  /* Init the low level hardware : GPIO, CLOCK, NVIC... */
  printf("[%s %d] ",__FUNCTION__,__LINE__);
  HAL_PCD_MspInit(hpcd);
  printf("[%s %d] ",__FUNCTION__,__LINE__);
  /* Disable the Interrupts */
__HAL_PCD_DISABLE(hpcd);
:串口打出来的回显是
[HAL_PCD_Init 127]
[HAL_PCD_Init 133]
[HAL_PCD_Init 140]
[HAL_PCD_Init 130]
这就问题出来了,在一开始进入HAL_PCD_Init函数的时候,就已经检查过参数,但是为什么在执行完HAL_PCD_MspInit函数后,又再次返回到130行去执行if(hpcd == NULL)呢?很纳闷呀
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
lanziji
1楼-- · 2019-07-14 22:01
 精彩回答 2  元偷偷看……
cmlzwkd
2楼-- · 2019-07-15 00:43
hy381
3楼-- · 2019-07-15 02:33
vuweurvxs
4楼-- · 2019-07-15 06:31
你试试debug模式
60user156
5楼-- · 2019-07-15 09:25
davidliu9518 发表于 2019-3-1 16:30
楼主问题解决了吗?我这里刚好有F429的USB VCP,需要的话我发你一份

F429的USB VCP麻烦楼主发一份,谢谢
489562783@qq.com
naiztycheng
6楼-- · 2019-07-15 11:36
 精彩回答 2  元偷偷看……

一周热门 更多>