Thank you (I thought this solved it but no). I need more help. Possible STM32 bug.
I tried your example with polynomial 5, I got CRC = 0x9D68 on my logic analyzer and the same on the CRC calculator page:

But when I change to polynomial 10 it doesn't work. I got CRC = 0x1692 on my logic analyzer but 0x3ADA on the CRC page:

I tried it also with another polynomial 0xed2f and that one worked also. Got CRC = 0xD087 on the logic analyzer and on the CRC page:

My theory is that the CRC unit has a bug when the lower bit in the polynomial is not set to 1?
I have also tested the CRC in Python and got the same results as on the CRC page.
I found this later: