使用CubeMX自动生成工程编译出错

2019-07-14 15:41发布



使用CubeMX 自动生成工程编译出错 ??

工程文件包括 sd卡,网络,sdram,等,在编译时提示 HAL_SD_TransferStateTypedef 等找不到,但是我看看工程文件明明是有的,也包含进来了

使用keil 或者iar结果都是一样的,以前是有 v4.16是没有这个问题
CubeMX版本是:


CubeMX设置:

提示错误:

提示的这些明明是都已经包含了的


产生工程代码时的库设置:


工程代码:
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
18条回答
jfuwre
1楼-- · 2019-07-16 02:41
7vyydyfwef 发表于 2018-11-27 10:56
本帖最后由 hpdell 于 2017-2-13 16:28 编辑

刚刚又重新捣鼓了一下,发现问题所在了

你说的版本问题,也有可能....
wenxueshu
2楼-- · 2019-07-16 06:11
STM32CubeMX Software V4
7vyydyfwef
3楼-- · 2019-07-16 06:43
wenxueshu 发表于 2018-11-27 11:16
STM32CubeMX Software V4

这个哪里下载啊 ??

能否提供一下下载地址 ?
huazhe
4楼-- · 2019-07-16 12:35
 精彩回答 2  元偷偷看……
qwe048
5楼-- · 2019-07-16 13:21
本帖最后由 yufeiwangmqb 于 2017-2-14 22:30 编辑

stm32f746
之前发现1.3版本freertos代码有些小错误,换成1.6编译后也发现HAL_SD_TransferStateTypedef出错,其他地方还有好多错误。
1.6版本库改动有点大,没有HAL_SD_TransferStateTypedef数据结构,新增HAL_SD_StateTypeDef数据结构
1.3版本
生成的bsp_driver_sd.c文件
HAL_SD_TransferStateTypedef BSP_SD_GetStatus(void)
{
  return(HAL_SD_GetStatus(&hsd1));
}

库文件 stm32f7xx_hal_sd.h
HAL_SD_TransferStateTypedef HAL_SD_GetStatus(SD_HandleTypeDef *hsd);


typedef enum
{
  SD_TRANSFER_OK    = 0,  /*!< Transfer success      */
  SD_TRANSFER_BUSY  = 1,  /*!< Transfer is occurring */
  SD_TRANSFER_ERROR = 2   /*!< Transfer failed       */

}HAL_SD_TransferStateTypedef;
1.6版本
typedef enum
{
  HAL_SD_STATE_RESET                  = ((uint32_t)0x00000000U),  /*!< SD not yet initialized or disabled  */
  HAL_SD_STATE_READY                  = ((uint32_t)0x00000001U),  /*!< SD initialized and ready for use    */
  HAL_SD_STATE_TIMEOUT                = ((uint32_t)0x00000002U),  /*!< SD Timeout state                    */
  HAL_SD_STATE_BUSY                   = ((uint32_t)0x00000003U),  /*!< SD process ongoing                  */
  HAL_SD_STATE_PROGRAMMING            = ((uint32_t)0x00000004U),  /*!< SD Programming State                */
  HAL_SD_STATE_RECEIVING              = ((uint32_t)0x00000005U),  /*!< SD Receinving State                 */
  HAL_SD_STATE_TRANSFER               = ((uint32_t)0x00000006U),  /*!< SD Transfert State                  */
  HAL_SD_STATE_ERROR                  = ((uint32_t)0x0000000FU)   /*!< SD is in error state                */
}HAL_SD_StateTypeDef;


HAL_SD_StateTypeDef           HAL_SD_GetState(SD_HandleTypeDef *hsd);
zhhx1985
6楼-- · 2019-07-16 18:19
7vyydyfwef 发表于 2018-11-27 09:39
貌似就是这个啊,他的标题写的是4.19,但是下载后里面的内容是4.18,安装后查看版本也是4.18的

打开后联网升级就行,不需要额外下载exe文件来安装.....

一周热门 更多>