设为首页收藏本站

Discuz! Board

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 1008|回复: 1
打印 上一主题 下一主题

KEIL 5编译nRF52840程序出现 #67: expected a "}"

[复制链接]

7

主题

11

帖子

101

积分

注册会员

Rank: 2

积分
101
跳转到指定楼层
楼主
buglovebug 发表于 2022-4-28 23:15:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 buglovebug 于 2022-4-28 23:41 编辑

大家好,今天编译一个nRF52840的工程,碰到下面奇怪的报错,我已经把所有的多余的空格,多余的回车和任何能想到的语法错误都想到了,但是出现下面的报错.

唯一的共同点是,这两个语句中都是2进制的枚举类型,其他不是二进制的枚举类型都没有报错,当我把二进制改成十进制,就没问题,希望大侠帮忙指点一下.
另外,我编译官方提供的随便一个例子,编译没有错误之后,把下面的代码复制进去,也会出现同样的报错,真是很费解.
  1. typedef enum{ONESHOT_PRESSED = 0b01, ONESHOT_OTHER_KEY_PRESSED = 0b10, ONESHOT_START = 0b11, ONESHOT_TOGGLED = 0b100} oneshot_fullfillment_t;
复制代码
  1. enum action_kind_id{
  2.     /* Key Actions */
  3.     ACT_MODS      = 0b0000,
  4.     ACT_LMODS     = 0b0000,
  5.     ACT_RMODS     = 0b0001,
  6.     ACT_MODS_TAP  = 0b0010,
  7.     ACT_LMODS_TAP = 0b0010,
  8.     ACT_RMODS_TAP = 0b0011,
  9.     /* Other Keys */
  10.     ACT_USAGE     = 0b0100,
  11.     ACT_MOUSEKEY  = 0b0101,
  12.     /* One-hand Support */
  13.     ACT_SWAP_HANDS = 0b0110,
  14.     /* Layer Actions */
  15.     ACT_LAYER         = 0b1000,
  16.     ACT_LAYER_MODS    = 0b1001,
  17.     ACT_LAYER_TAP     = 0b1010, /* Layer  0-15 */
  18.     ACT_LAYER_TAP_EXT = 0b1011, /* Layer 16-31 */
  19.     /* Extensions */
  20.     ACT_MACRO     = 0b1100,
  21.     ACT_BACKLIGHT = 0b1101,
  22.     ACT_COMMAND   = 0b1110,
  23.     ACT_FUNCTION  = 0b1111
  24. };
复制代码
Build started: Project: ble_app_hids_keyboard_pca10056_s140
*** Using Compiler 'V5.06 update 7 (build 960)', folder: 'C:\Keil_v5\ARM\ARMCC\Bin'
Build target 'nrf52840_xxaa'
Note: source file '.\src\main.c' - object file renamed from '.\_build\main.o' to '.\_build\main_1.o'.
compiling ble_hids_service.c...
.\tmk_core\action_code.h(104): error:  #67: expected a "}"
      ACT_MODS      = 0b0000,
.\tmk_core\action_code.h(125): warning:  #12-D: parsing restarts here after previous syntax error
  };
src\ble\ble_hids_service.c(13): warning:  #550-D: variable "m_in_boot_mode"  was set but never used
  static bool            m_in_boot_mode = false; /**< Current protocol mode. */
src\ble\ble_hids_service.c: 2 warnings, 1 error
compiling keymap.c...
.\tmk_core\action_code.h(104): error:  #67: expected a "}"
      ACT_MODS      = 0b0000,
.\tmk_core\action_code.h(125): warning:  #12-D: parsing restarts here after previous syntax error
  };
.\tmk_core\action_util.h(74): error:  #67: expected a "}"
  typedef enum{ONESHOT_PRESSED = 0b01, ONESHOT_OTHER_KEY_PRESSED = 0b10, ONESHOT_START = 0b11, ONESHOT_TOGGLED = 0b100} oneshot_fullfillment_t;
src\keyboard\keymaps\default\keymap.c: 1 warning, 2 errors
".\_build\nrf52840_xxaa.axf" - 3 Error(s), 3 Warning(s).
Target not created.


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

7

主题

11

帖子

101

积分

注册会员

Rank: 2

积分
101
沙发
 楼主| buglovebug 发表于 2022-4-29 02:00:19 | 只看该作者
本人已经解决,原来Keil不能直接操作二进制,需要转换成16进制来代替,不知道是不是这样的?
回复 支持 反对

使用道具 举报

Archiver|手机版|小黑屋|Comsenz Inc.   

GMT+8, 2024-4-28 21:35 , Processed in 0.216283 second(s), 28 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表