For I2C : Yes, you can drive the I2C controller either with or without interrupt . Look at the example provided in the STM32 library. For the I2C, it is higly recommended to use the latest version of the library.
For the NVIC, the best is to read the User's Manual of the STM32.