Hola Valeriya.
Sí hay diferencia.
Olor + preposición <a> => Es correcto
En el parque había un olor maravilloso a hierba fresca y a flores.
Esta habitación huele a tabaco
Olor + preposición <de> => Es incorrecto
En el parque había un olor maravilloso de hierba fresca y de flores.
Esta habitación huele de tabaco.
La preposición <a> indica la situación o el estado de alguien o de algo, en este caso el olor del parque.
También, la preposición <a> acompaña a un objeto directo, en el ejemplo es:
... un olor maravilloso a hierba fresca y a flores => En el parque lo había
Si tienes alguna duda o pregunta, estoy encantado de poder ayudarte.
Saludos.
Antonio