This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

How do I include nrfx drivers in an nRF Connect SDK project?

I've been trying to write a simple I2S loopback project for the nRF5340DK board using SES.  Zephyr's documentation doesn't list I2S as a supported peripheral for this device, so I think I need to use the nrfx_i2s driver.  I've enabled Modules->hal_nordic->nrfx_drivers->i2s drivers and am using an #include <nrfx_i2s.h> statement in my source file.  What I'm finding is that function declarations and typedefs are found by the compiler, but defines, such as NRFX_I2S_DEFAULT_CONFIG are not.  For example, the initialization nrfx_i2s_config_t config = NRFX_I2S_DEFAULT_CONFIG; complains that NRFX_I2S_DEFAULT_CONFIG is undeclared.  If I comment that out and replace it with the declaration nrfx_i2s_config_t config; the compiler is perfectly happy.  I use this struct later, so it's not being optimized away.

I'm pretty new to embedded development, and wouldn't be surprised if I'm missing something very obvious.  Have I missed a step configuring the project to use the nrfx drivers?  Am I misunderstanding what the compiler is telling me?  Any help would be appreciated.

Related