使用 C++ 封装库在 MDK 上建 STM32 开发工程

文章目录

  • 使用 C++ 封装库开发 STM32

使用 C++ 封装库开发 STM32

直接上一些片上硬件、一些常用器件的封装库GitHub链接:

  • STM32F103DriverLib
  • STM32F407DriverLib

用C++进行嵌入式程序开发,甚至是裸系统程序。开发起来比C语言更方便架构搭建与程序管理。

  1. 简单的一个例子使用USART
#include "USART.h"
USART com(1,115200);
void main()
{
    com<<"test string\r\n";
    while(1)
	{
	
	}
}
  1. 使用片外资源的一个例子
#include "USART.h"
#include "DPPrint.h"
int main(void)
{
	USART com(USART1, 115200);
	DPPrint DP(com);
	DP.InitializePrint();
	DP.PrintPageStart(0,0,384,640,0);
	DP.rectangleDraw(0,0,384,576,5,1);
	while(1)
	{
	
	}
}
extern "C"
{
	void USART1_IRQHandler(void)    //----USART1 IRQ----//
	{
	#ifdef USE_GPS
		if(pGPS1){
			pGPS1->GPS_IRQHandler();
			return ;
		}
	#endif
	#ifdef USE_USART1
		pCOM1->IRQ();
	#endif
	#ifdef USE_USART1_DMA
		pCOM1->IRQ();
	#endif
	}
}
  • 首先声明,这个 main() 所在的文件必须是以.cpp文件,不然编译当成C语言进行编译。C++可以调用C,C不能调用C++,这点要记住。
  • extern “C” { } 用于告诉编译器,大括号以内的东西以C的方式进行编译。因为原来.C的头文件被.CPP文件包含了,那么编译器便按C++的方式进行编译,导致与原来.C文件中定义的不一致,编译报错。

你可能感兴趣的:(#,STM32,开发笔记)