I have been pulling my hair out getting an i2c driver to work and some searches led me to this project by Roger Clark. The first link showed me that the stm32 arduino package made it almost trivial to connect an i2c device to the stm32. Further searching confirmed that this could be done both by using the i2c hardware and by a bit-bang library.
I cloned this and took a look.It has one section for the STM32F1 and another for the STM32F4. What I find most interesting is a "maple" library tucked away inside that is plain old C code for the STM32. I got the idea of trying to extract that and compile just the files necessary to play with the libmaple i2c driver. This did not work out well, and I eventually gave up. The absence of a makefile, combined with intractable issues with include files caused the effort to run aground.
But this made me wonder about libmaple, which clearly seemed to be imported from elsewhere. And I was pleased to find that libmaple is on Github in its original form all by itself and is a much better resource for what I want.
Tom's Computer Info / tom@mmto.org