历史上的今天
返回首页

历史上的今天

今天是: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文件中定义的不一致,编译报错。


推荐阅读

史海拾趣

Crowd Supply公司的发展小趣事

为了适应电子行业的快速发展和变化,Crowd Supply不断投入资源进行技术创新和平台升级。他们推出了一系列新功能,如智能推荐、数据分析等,以帮助项目方更好地了解市场需求和支持者偏好。同时,平台也加强了与供应链和生产商的合作,确保项目的顺利推进和产品的高质量交付。

Chauvin Arnoux公司的发展小趣事

1934年,Chauvin Arnoux再次引领技术潮流,发明了电流互感器钳形表,这是世界上第一个非接触式电流表。这一发明不仅改变了电流测量的传统方式,而且极大地提高了测量的便捷性和安全性。非接触式电流表的出现,为电气工程师和技术人员提供了更为高效和安全的测量工具,推动了电气行业的发展。

Arcolectric公司的发展小趣事

随着技术的不断进步和市场需求的日益多样化,Arcolectric开始积极拓展其产品线,并逐渐将产品应用于电脑、电源设备及家用电器等多个领域。公司通过不断创新和研发,成功推出了一系列符合市场需求的新产品,进一步扩大了市场份额。

百蓉(ECE)公司的发展小趣事

面对智能制造的浪潮,百蓉公司积极拥抱变革。他们引进了先进的自动化设备,对生产线进行了全面升级,实现了从手工制造向智能制造的转变。这一转型不仅提高了生产效率,还大幅提升了产品质量和产品的一致性,使得百蓉的产品在市场上更具竞争力。

AR RF/Microwave Instrumentation公司的发展小趣事

品质是公司发展的生命线。AR RF/Microwave Instrumentation一直注重品质管理,从原材料采购到生产过程的每一个环节都进行严格把控。同时,公司还建立了完善的售后服务体系,确保客户在使用过程中能够得到及时、专业的支持。此外,公司还不断进行持续改进,通过引入新的生产技术和设备,提高生产效率和产品质量。

ABB公司的发展小趣事

随着公司产品的不断完善和升级,AR RF/Microwave Instrumentation开始积极拓展市场。他们不仅在国内建立了广泛的销售网络,还积极寻求与国际合作伙伴的合作。通过与国外知名企业的合作,公司不仅引进了先进的技术和管理经验,还进一步提升了产品的国际竞争力。

问答坊 | AI 解惑

希望大家可以帮帮忙!!!

谁有开关电源的方案及原理图,或者逆变电源的。…

查看全部问答>

Sony下一代概念电脑

每天都会有超酷超炫的概念电脑被设计师们设计出来,然而这么多的概念也不能阻止设计师对创意的渴望,设计师Hiromi Kiriki为Sony设想了下一代概念电脑,这是一个全新的概念,打破传统电脑的形式,它可以作为手镯一样戴在手腕上,运用柔性OLED触摸式 ...…

查看全部问答>

这个网站里的高手是那么的可爱可敬

这个网站里的高手是那么的可爱可敬, 刚注册几天的菜鸟发现在这里有这么多的高手帮忙解决问题,从不嫌弃问题的弱智!   有几个人的名字我都记下来了。 不要对我这么的好哦 我怕我会迷恋哦!!! 嘻嘻嘻…

查看全部问答>

进一步学习。。。大牛们来指教下!

学习完何老大的书,然后自己该看一点什么驱动?或写写一点什么驱动呢?…

查看全部问答>

关于基于AT89C51及GPRS的安防系统设计的提问

我是一个大四学生,正在做毕设,又在准备研究生复试,有点忙不过来,请教一下各位老师,指点一下毕设思路。 题目是:利用GPRS业务设计一个基于AT89C51及GPRS的远程安防系统,实现警情的及时识别和无线自动报警。主要任务是通过对GPRS协议的分析, ...…

查看全部问答>

WinCE display driver怎样支持4bpp?

想写一个支持4bpp灰度的基于GPE的display driver要怎么做?怎么让OS知道我支持哪16种颜色? 是不是要创建一个调色板,我需要算出这16种灰度颜色对应的RGB值,然后放在调色板里么?还是只要设置成4bpp,OS就默认是灰度颜色?谢谢~~…

查看全部问答>

关于STM32 中CAN 的过滤器设置问题

最近在捣鼓STM32的CAN 模块。虽然算是基本上能够发送接收数据了,但是总觉得对他的发送和接收比较模糊。问题就出在了对过滤器的设置  以及接收中的某些设置上,长话短说。大家看一下代码就明白我的疑问了。代码如下: void CAN_Configuration ...…

查看全部问答>

小功率反激电源EMI抑制方法

小功率反激电源作为市场上最为成熟的电源之一,在电力电子行业占据相当大的比重。目前介绍开关电源电磁兼容的文章很多,不过考虑到市场化,小功率反激电源只用一级EMI滤波,无散热片,还有很重要的一点,要考虑可生产性。这与单纯的电磁兼容研究有 ...…

查看全部问答>

20 V, 4 A 同步稳压器 ADI的 资料

ADI的电源管理芯片相对来说是高端的,但价格比 TI的还好点。TI的也不错。 哈哈。可以一试哦。 2380是4A 20V 但要加外部MOS管 2301 是1.2 A, 20 V,这个不错。内部MOS管,适合普通应用 1.2A够了。 …

查看全部问答>