在使用nRF51822AA的例程中发现如下build break:
C:\Keil_v5\ARM\PACK\NordicSemiconductor\nRF_Drivers\3.0.0\gpiote\nrf_drv_gpiote.c(30): error: #20: identifier "GPIOTE_CONFIG_NUM_OF_LOW_POWER_EVENTS" is undefined
C:\Keil_v5\ARM\PACK\NordicSemiconductor\nRF_Drivers\3.0.0\gpiote\nrf_drv_gpiote.c(148): error: #20: identifier "GPIOTE_CONFIG_IRQ_PRIORITY" is undefined
查了一些资料,修正方法如下:
找到C:\Keil_v5\ARM\Pack\NordicSemiconductor\nRF_Drivers\3.0.0\config\路径下的nrf_drv_config.h文件,先将属性中的“只读”取消,然后将宏定义GPIOTE_ENABLED修改为1,保存重新编译即可。
至于这个问题为什么会发生,也可以参考上图。只有在GPIOTE_ENABLED打开的时候,那两个量才会被定义。