Using the MCP23S17

Hi everybody,

So I'm working on a project that needs more I/O than the UNO has and in the past I've successfully used shift registers and muxes to do the job, but now I've found the MCP23S17. They're perfect for this project because of their size, the QFN package, and the capability but after reading about them online for the last two days I'm totally confused!

Any thoughts on what the best solution to using them is and also how I can go about getting the files for the Arduino library. I've viewed some solutions on GitHub but I don't seem to understand how to use it.
Any help would be much appreciated.

It might help to elaborate on what confusion means. It's similar to "I ran this program and it doesn't work.
What could be wrong?"