Thank you for your feedback.
I've found a thread online about sending hex over UART.
Now i've changed my code to:
uint8_t resetBuffer[100] = "0xAA300026";
HAL_UART_Transmit(&huart4, resetBuffer ,sizeof(resetBuffer), 1000);
And... you're back to square one. You're trying to send a sequence of bytes, but using a string. This isn't gonna work - it's going to send the ASCII-encoded characters of the string, not the values in hex as you would need.
You just need to do as Stuart Coyle showed. I think you're confused with how C deals with arrays, and you're mixing strings with integer values.
Another thing wrong with your code is that you're declaring an array of 100 bytes and are passing this size to the HAL_UART_Transmit() function; thus it will not only send the string as ASCII characters (there are ten here), but it's going to send 90 zeroes after that. Definitely all wrong.
The correct and more maintainable way of doing it is like so:
uint8_t resetBuffer[] = {0xAA, 0x30, 0x00, 0x26};
HAL_UART_Transmit(&huart4, resetBuffer, sizeof(resetBuffer), 1000);
In C, when you declare an array without a specified size and use an intializer, the resulting size will be the size of the initializer. So that makes it convenient to write code like this without having to actually bother with the number of items, the compiler will do this for you.