1st Post. I thought this might be helpful to a few.
I was using an STM32F767ZI board and had managed a few sketches, mostly controlling simple things like LEDs and detecting buttons, but I wanted to use an I2C LCD display. The first thing to do was to checkout the example I2C scanner which outputs to the Serial Monitor. The Serial Monitor refused to print anything, even when instructed to do so with a Serial.print("Text etc"); command. The monitor area opened up OK, but no text.
To cut a long story short, I tried several suggestions from other folks and none worked, so I decided to investigate the actual board settings again.
I had originally installed the STM32F767 Generic definition and chosen a board type from the Tools menus. What I had not realised is that there was no direct part number for the STM32F767ZI board, so I had chosen the STM32F767ZIT (yes there's a zit on the chip
![Smile :)](./images/smilies/icon_e_smile.gif)
After further investigation and discussion, I found that the original board definition I should have used is Nucleo144 - then the plain STM32F767ZI part number is available and it all works as it should.
All a bit confusing to a relative newbie to STM.
One further thing, which may or not be well known, is that it's essential to install 4K7 pull-ups on the SDA and SCA pins for I2C. That info is out there, but not many instances of it.