广告合作
  • 今日头条

    今日头条

  • 百度一下

    百度一下,你就知道

  • 新浪网

    新浪网 - 提供新闻线索,重大新闻爆料

  • 搜狐

    搜狐

  • 豆瓣

    豆瓣

  • 百度贴吧

    百度贴吧——全球领先的中文社区

  • 首页 尚未审核订阅工具 订阅

    关于stm32 keil编译报错:error: #256

    来源:网络收集  点击:  时间:2024-03-01
    【导读】:
    关于stm32f103编译时keil报错... /Keil/ARM/INC/ST/STM32F10x/stm32f10x_type.h(23): error: #256: invalid redeclaration of type name s32 (declared at line 470 of ... /stm32f10x.h)”或者.. \CMSIS\core_cm3.h(264): warning:#47-D:incompatibleredefinitionofmacroSCS_BASE (declared at line 687of C: \Keil\ARM\INC\ST\STM32F10xtm32f10x_map.h)之类的报错,这里以第一种报错为例说明一下,第二种也大同小异工具/原料morekeil uVision4方法/步骤1/7分步阅读

    这个问题一般出现在移动库,或者激近将两个程序合并的时候报错

    2/7

    原因是旧版的库与新版的库发生冲突了,冲突的原因是旧版和新版都定义了同一个东西,比如“s32”,于是就会发生重定义的报错

    3/7

    解决这个问题的方法其实也不难,因为编写程序的时候有一个防止重定义的宏,在新版的库里面添加这样的一个宏就可以消除大部分的错误了

    4/7

    我们先找到从定义的地方,双击错误跟踪到报错的地方我们可以看到这里就是type定义的地方,看到上面有一个“#ifndef __STM32F10x_TYPE_H”,这个就是旧版的宏,只要将这个宏在新版的相应位置定义一下就好

    5/7

    到新版的库文件中,注意要消除只读的设置,从错误来看,是“s32”发生了重定义,那么就是说,新版的库应舍诸川该也是有“s32”的定义,于是用搜索功能,找到“s32”定义的地方

    6/7

    然后在这个定义的上方补充定义这个宏就可以解决一部分的问题了,披阅添加这样一段

    #ifndef __STM32F10x_TYPE_H//补充定义旧版的宏

    #define __STM32F10x_TYPE_H

    #endif

    7/7

    #47-D:incompatibleredefinitionofmacroSCS_BASE 的错误解决方法也差不多,补充定义旧版宏即可解决大部分问题,这次是在core_cm3.c文件中,注意解锁

    stm32keil
    本文关键词:

    版权声明:

    1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。

    2、本站仅提供信息发布平台,不承担相关法律责任。

    3、若侵犯您的版权或隐私,请联系本站管理员删除。

    4、文章链接:http://www.1haoku.cn/art_209611.html

    相关资讯

    ©2019-2020 http://www.1haoku.cn/ 国ICP备20009186号05-06 15:10:39  耗时:0.031
    0.0308s