您的位置:首页 > 编程语言 > C语言/C++

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

2017-02-19 17:06 399 查看
直接上一些片上硬件、一些常用器件的封装库GitHub链接:

STM32F4:https://github.com/InfiniteYuan1/STM32F407DriverLib

STM32F1:https://github.com/InfiniteYuan1/STM32f103DriverLib

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

简单的一个例子使用USART

#include "USART.h"
USART com(1,115200);
void main()
{
com<<"test string\r\n";
while(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 github 嵌入式