Unable to communicate with LCD2004a via I2C (Nucleo-F103RB)
Classic issue of getting the I2C address wrong. The address is 0x27 in the 7-bit notation which excludes the read/write bit. With STM32 I2C HAL, 8-bit addresses which include the read/write bit are used. Set the I2C address to 0x4E.

I still suggest changing the library. The LCD initialization to 4-bit  mode is done incorrectly. And the LCD clear command as well. And it does not check the result of I2C write, so unless you use a debugger, you can't tell if the I2C operations succeed or fail for some reason. You might want to check that you can control the backlight to see of I2C writes fail or are OK.