历史上的今天
今天是:2025年08月15日(星期五)
2019年08月15日 | 使用C++封装库在MDK上建STM32开发工程
2019-08-15 来源:eefocus
直接上一些片上硬件、一些常用器件的封装库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 stringrn";
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文件中定义的不一致,编译报错。
上一篇:STM32F103看门狗使用记录
下一篇:STM32 GPIO IIC学习
史海拾趣
|
每天都会有超酷超炫的概念电脑被设计师们设计出来,然而这么多的概念也不能阻止设计师对创意的渴望,设计师Hiromi Kiriki为Sony设想了下一代概念电脑,这是一个全新的概念,打破传统电脑的形式,它可以作为手镯一样戴在手腕上,运用柔性OLED触摸式 ...… 查看全部问答> |
|
这个网站里的高手是那么的可爱可敬, 刚注册几天的菜鸟发现在这里有这么多的高手帮忙解决问题,从不嫌弃问题的弱智! 有几个人的名字我都记下来了。 不要对我这么的好哦 我怕我会迷恋哦!!! 嘻嘻嘻… 查看全部问答> |
|
我是一个大四学生,正在做毕设,又在准备研究生复试,有点忙不过来,请教一下各位老师,指点一下毕设思路。 题目是:利用GPRS业务设计一个基于AT89C51及GPRS的远程安防系统,实现警情的及时识别和无线自动报警。主要任务是通过对GPRS协议的分析, ...… 查看全部问答> |
|
想写一个支持4bpp灰度的基于GPE的display driver要怎么做?怎么让OS知道我支持哪16种颜色? 是不是要创建一个调色板,我需要算出这16种灰度颜色对应的RGB值,然后放在调色板里么?还是只要设置成4bpp,OS就默认是灰度颜色?谢谢~~… 查看全部问答> |
|
最近在捣鼓STM32的CAN 模块。虽然算是基本上能够发送接收数据了,但是总觉得对他的发送和接收比较模糊。问题就出在了对过滤器的设置 以及接收中的某些设置上,长话短说。大家看一下代码就明白我的疑问了。代码如下: void CAN_Configuration ...… 查看全部问答> |
|
小功率反激电源作为市场上最为成熟的电源之一,在电力电子行业占据相当大的比重。目前介绍开关电源电磁兼容的文章很多,不过考虑到市场化,小功率反激电源只用一级EMI滤波,无散热片,还有很重要的一点,要考虑可生产性。这与单纯的电磁兼容研究有 ...… 查看全部问答> |
|
ADI的电源管理芯片相对来说是高端的,但价格比 TI的还好点。TI的也不错。 哈哈。可以一试哦。 2380是4A 20V 但要加外部MOS管 2301 是1.2 A, 20 V,这个不错。内部MOS管,适合普通应用 1.2A够了。 … 查看全部问答> |




