Так в любой STMовской либе из вашего любимого куба можно
подсмотреть: task1.h:
#ifndef _TASK1_H_
#define _TASK1_H_
#ifdef __cplusplus
extern "C" {
#endif
void task1_func(void); // Declaration
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif /* _TASK1_H_ */
task1.c / task1.cpp
#include "task1.h"
void task1_func(void) // Definition
{
...
}