头像-211550

开发版开发版啊

个人成就

获得 2 次赞

帮助过2人

非法字符

怎么我放一张图片提问题也非法?

STM32F4 hal库

最近买了一个东西,在看别人的程序,但发现里面有很多类似这样的hal库,很难看懂,我没有用过cubemx,想请教下您哪里有这些函数的介绍,或者怎么看懂这些函数,非常感谢!,我的芯片是F405的。HAL_StatusTypeDef HAL_UART_Receive(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t Timeout){   uint16_t* tmp;    /* Check that a Rx process is not already ongoing */  if(huart->RxState == HAL_UART_STATE_READY)   {     if((pData == NULL ) || (Size == 0U))     {      return  HAL_ERROR;    }        /* Process Locked */    __HAL_LOCK(huart);        huart->ErrorCode = HAL_UART_ERROR_NONE;    huart->RxState = HAL_UART_STATE_BUSY_RX;            huart->RxXferSize = Size;     huart->RxXferCount = Size;        /* Check the remain data to be received */    while(huart->RxXferCount > 0U)    {      huart->RxXferCount--;      if(huart->Init.WordLength == UART_WORDLENGTH_9B)      {        if(UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_RXNE, RESET, Timeout) != HAL_OK)        {           return HAL_TIMEOUT;        }        tmp = (uint16_t*) pData;        if(huart->Init.Parity == UART_PARITY_NONE)        {          *tmp = (uint16_t)(huart->Instance->DR & (uint16_t)0x01FFU);          pData +=2U;        }        else        {          *tmp = (uint16_t)(huart->Instance->DR & (uint16_t)0x00FFU);          pData +=1U;        }      }       else      {        if(UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_RXNE, RESET, Timeout) != HAL_OK)        {           return HAL_TIMEOUT;        }        if(huart->Init.Parity == UART_PARITY_NONE)        {          *pData++ = (uint8_t)(huart->Instance->DR & (uint8_t)0x00FFU);        }        else        {          *pData++ = (uint8_t)(huart->Instance->DR & (uint8_t)0x007FU);        }              }    }