STM32/STM8技术william hill官网
直播中

李艳玮

7年用户 381经验值
私信 关注
[问答]

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



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

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

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


CubeMX设置:

提示错误:

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


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


工程代码:

回帖(25)

李咏祥

2018-11-27 09:15:49
帮忙顶,暂时没用到SD
举报

徐梦灵

2018-11-27 09:28:03
stm32f7xx_hal_conf.h
#define HAL_SD_MODULE_ENABLED
检查一下这个宏
举报

陈磊

2018-11-27 09:34:00
删掉创建的代码,重新创建几次看看
举报

李艳玮

2018-11-27 09:48:12
引用: 60user58 发表于 2018-11-27 08:43
stm32f7xx_hal_conf.h
#define HAL_SD_MODULE_ENABLED
检查一下这个宏

这个宏已经是打开了的
举报

李艳玮

2018-11-27 09:55:30
引用: peternie 发表于 2018-11-27 08:49
删掉创建的代码,重新创建几次看看

重新创建了几次,结果也都一样,但是更换为 CubeMX v4.16版本的就完全可以了
举报

陈磊

2018-11-27 10:09:19
STM32CubeMX Software V4.19.0 / 12 January 2017 Main Changes:
Added support for the new part numbers of the STM32F4 and STM32F7 Series.
Added support of libjpeg for the STM32F7 Series.


换4.19吧~~
举报

李艳玮

2018-11-27 10:23:48
引用: peternie 发表于 2018-11-27 09:24
STM32CubeMX Software V4.19.0 / 12 January 2017 Main Changes:
Added support for the new part numbers of the STM32F4 and STM32F7 Series.
Added support of libjpeg for the STM32F7 Series.

貌似就是这个啊,他的标题写的是4.19,但是下载后里面的内容是4.18,安装后查看版本也是4.18的
举报

池鹄展

2018-11-27 10:33:44
引用: 60user58 发表于 2018-11-27 08:43
stm32f7xx_hal_conf.h
#define HAL_SD_MODULE_ENABLED
检查一下这个宏

检查一下
举报

李艳玮

2018-11-27 10:49:23

我吧路径也重新增加了一遍,结果也还是不行,控制编译开关是开启的,所以现在也不知道是哪里出现了问题了
啊 ???
举报

卢家辉

2018-11-27 10:57:22
你选择生成的工具链/IDE,选择的是MDK_ARM,这个是keil的啊....但是使用的IDE是IAR的....肯定会出问题的啊,我在想,连启动文件都会有问题!!!
举报

李艳玮

2018-11-27 11:08:52
引用: jfuwre 发表于 2018-11-27 10:12
你选择生成的工具链/IDE,选择的是MDK_ARM,这个是keil的啊....但是使用的IDE是IAR的....肯定会出问题的啊,我在想,连启动文件都会有问题!!!

生成的ide 可以是keil,也可以是iar,如果keil与iar同时存在那么需要生成两次就可以了,

因为我其他的工程文件也都是这么干的,难道这个版本的 CubeMX v4.19(V4.18) 不支持这样的做啊 !
举报

卢家辉

2018-11-27 11:24:38
引用: 7vyydyfwef 发表于 2018-11-27 10:24
生成的ide 可以是keil,也可以是iar,如果keil与iar同时存在那么需要生成两次就可以了,

因为我其他的工程文件也都是这么干的,难道这个版本的 CubeMX v4.19(V4.18) 不支持这样的做啊 !

我由于没有安装IAR for ARM,keil里面木有F7包包,所以没法直接打开看,我看了一下代码,你这里的错误提示是来自于那些文件?
举报

李艳玮

2018-11-27 11:40:42
引用: jfuwre 发表于 2018-11-27 10:40
我由于没有安装IAR for ARM,keil里面木有F7包包,所以没法直接打开看,我看了一下代码,你这里的错误提示是来自于那些文件?

本帖最后由 hpdell 于 2017-2-13 16:28 编辑

刚刚又重新捣鼓了一下,发现问题所在了
原因是不能够使用 STM32Cube_FW_F7_V1.6.0 这个固件库,

另外使用 STM32Cube_FW_F7_V1.4.0或者 STM32Cube_FW_F7_V1.5.0产生的工程代码都是没有问题的
下面的两个库都是可以的:


唯独下面的使用 STM32Cube_FW_F7_V1.6.0 这个版本的就不行,程序的设置功能完全一模一样的





这样的话是不是说明 STM32Cube_FW_F7_V1.6.0 这个库有什么问题还是说这个库与 CubeMX 上位机配合有问题啊 ???

这个问题我捣鼓了好几天了啊,CubeMX 上位机使用官方的是 文件夹的名称是 CubeMX V4.19(解压后里面的文件名显示是V4.18),
举报

卢家辉

2018-11-27 11:46:15
引用: 7vyydyfwef 发表于 2018-11-27 10:56
本帖最后由 hpdell 于 2017-2-13 16:28 编辑

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

你说的版本问题,也有可能....
举报

张桂芝

2018-11-27 12:00:56
STM32CubeMX Software V4
举报

李艳玮

2018-11-27 12:18:15
引用: wenxueshu 发表于 2018-11-27 11:16
STM32CubeMX Software V4

这个哪里下载啊 ??

能否提供一下下载地址 ?
举报

陈炜

2018-11-27 12:32:03
引用: 7vyydyfwef 发表于 2018-11-27 11:33
这个哪里下载啊 ??

能否提供一下下载地址 ?

www.st.com/stm32 搜索 STM32CUBEMX 下载
举报

白桦

2018-11-27 12:50:15
本帖最后由 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);
举报

李娟

2018-11-27 12:58:21
引用: 7vyydyfwef 发表于 2018-11-27 09:39
貌似就是这个啊,他的标题写的是4.19,但是下载后里面的内容是4.18,安装后查看版本也是4.18的

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

更多回帖

发帖
×
20
完善资料,
赚取积分