'NRF_DRV_TWI_INSTANCE_0' undeclared here (not in a function); did you mean 'NRF_DRV_TWI_INSTANCE_'? NRF52834 17.1的SDK向BLE_UART工程中添加IIC工程文件编译报错的问题解决办法!

下载了新的NRF52840SDK后,在SES上编译工程,遇到了一些问题。

其中这个问题花了不少时间来解决:在蓝牙串口的工程基础上添加IIC的工程文件时,编译后报错误:

 

'NRF_DRV_TWI_INSTANCE_0' undeclared here (not in a function); did you mean 'NRF_DRV_TWI_INSTANCE_'?  

 

双击检查错误,发现TWI_ENABLE 以及EASY_DMA没有定义。定位TWI_ENABLE 总是会跳到OLD_APP_CONFIG中去。

后来在nordic官网论坛看了下,发现问题出在sdk_config.h这个文件里。在sdk_config.h中查找IIC的相关信息,发现除了带有NRFX_XXXX 的配置打开了以外,还有下图中的一些参数没有配置。

只需要将TWI_ENABLED/TWI0_ENABLED以及TWI_USE_EASY_DMA的值修改为1,便可解决'NRF_DRV_TWI_INSTANCE_0' undeclared here (not in a function); did you mean 'NRF_DRV_TWI_INSTANCE_'?的错误,

其他一些外设使用是如遇到类似的报错log,解决方法也是一样的。

这个应该是工程参数还用了老板的配置文件导致的,后面应该可以改过来,暂时没有深入研究。

 

posted @ 2022-06-02 14:20  小小+王  阅读(703)  评论(0编辑  收藏  举报