Estás seleccionando el oscilador RC interno (
HSI), no es nada recomendable teniendo en cuenta que en la placa de la Discovery tienes el cuarzo para poder usar el oscilador a cuarzo (
HSE) que es mucho más preciso y estable.
El fuente que consultas es correcto, eso te lo genera todo automáticamente el Cube y está bien, el SystemCoreClock es 16Mhz (
HSI RC), que se convierte a 168Mhz con el PLL, y eso seguirá así mientras no cambies el valor
HSI RC. Igual que a cuarzo será siempre a 8 Mhz y se elevará a 168Mhz también con el PLL, a menos que uses un cuarzo de otro valor y lo cambies en HSE Input frequency.
Cambia la configuración del oscilador, selecciona HSE en PLL Source Mux, para usar el oscilador a cuarzo y cambia tambien el valor Input frequency de HSE para el valor del cuarzo, que si no recuerdo mal es de 8Mhz en la Discovery. Una vez hecho eso tendrás que configurar el PLL para que saque 168Mhz.
En cuanto a libros, en español no vas a encontrar nada, es lo mismo que pedir los datasheet en otro idioma que no sea el inglés.
Esta es la configuración en Cube, para usar el oscilador a cuarzo de 8Mhz con la Discovery.

