The parent of the KL17 is, somewhat oddly, the KL43.
The USB KL27 is also part of the family.
The standard answer is look at the SDK for MCUXPresso.
Not the greatest answer.
Some example code can be found here:
https://www.nxp.com/design/development-boards/freedom-development-boards/mcu-boards/freedom-developm...
Also be aware that anything with a double buffered I2C module, such as the KL17, has problems. The SDK fixes the issue by inserting undocumented NOPs. Mark's uTasker project has a better solution using interrupts, he'll probably pop in with details.