单片机型号:STM32F070F6P6
今天,在程序框架中增加了Timer16定时器驱动,但程序不能正常运行,本篇日志记录其原因。
驱动程序框架,定义了回调函数Timer16_InterruptFunction,写在main.cpp中用于逻辑层设计。Timer16_InterruptFunction调用的间隔为1ms,具体程序如下:
void Timer16_InterruptFunction(void)
{
Target.HAL.L2.Turn();
}
此程序完成以1ms为间隔L2闪烁的程序,但是将此程序烧写到目标板后,程序不能正常运行。经过调试,最后将问题锁定在启动顺序上,看一下程序外设的启动顺序,具体程序如下:
class CHAL
{
public:
CSystemInit SystemInit;
CSystemClock SystemClock;
CSystemTimer16 SystemTimer16;
CL1 L1;
CL2 L2;
CInfrare