In order to use properly the I2C bus a pull-up circuit should be implemented. The SCL and SDA GPIOs should be setted with the mode `ALTERNATE_OD` (alternate function with open-drain). This is because master and slaves should only be able to pull down the line and, when they release the line, the signal should be pulled up. If the `ALTERNATE_OD` mode is setted but no pull-up circuit is implemented the driver could hang forever. A lot of sensors implement on their own the pull-up circuit, so it could be enough; however, if no sensor is attached the hanging of the system could be caused anyway.