давно бы уже написали тестилку да проверили, а так что можно сказать, вроде все верно, только надо бы знать какие типы у переменных pointer и source, в конкретно в Вашем случае, тогда и можно дать утвердительный ответ
вроде пишет по указателю.
а почему нужно использовать библиотеку, или ST не умеет отрабатывать присваивание составного типа (всей сттруктуры)?
и еще - при ошибке в работе с указателями - можно повредить оперативную память контроллера, или она не доступна таким способом?