使用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
使用片外资源的一个例子
首先声明,这个main()所在的文件必须是以.cpp文件,不然编译当成C语言进行编译。C++可以调用C,C不能调用C++,这点要记住。
extern “C” { } 用于告诉编译器,大括号以内的东西以C的方式进行编译。因为原来.C的头文件被.CPP文件包含了,那么编译器便按C++的方式进行编译,导致与原来.C文件中定义的不一致,编译报错。
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开发笔记一:使用固件库在RealView-MDK中新建工程(上)
- 在MDK上建立一个C++的STM32开发工程
- stm32开发笔记一:使用固件库在RealView-MDK中新建工程(上)
- 在MDK上建立一个C++的STM32开发工程
- 在MDK上建立一个C++的STM32开发工程
- STM32 MDK工程中使用printf
- Linux多线程开发(三):使用C++封装线程消息通信
- 使用MDK创建stm32 库函数工程简单教程
- 使用Visual Studio + Visual Assist X + MDK(编译器) 构建STM32开发环境
- ARM Keil MDK开发STM32工程模板
- Jlink V7在MDK下使用Cortex-M3-Jlink模式开发STM32的说明
- Linux多线程开发(二):使用C++封装线程同步操作
- STM32高级开发(11)-使用GDB调试你的工程
- STM32高级开发(14)-使用CubeMX生成STM32工程
- STM32开发-MDK新建工程及配置
- STM32 MDK工程中使用printf
- stm32使用MDK开发中的一些常见问题
- 使用MDK创建stm32 库函数工程简单教程
- 使用 Eclipse C/C++ Development Toolkit 开发应用程序
- 使用Eclipse3.01 + MinGW3.1配置标准C/C++开发环境详解