STM32中C编程引入C++程序

C++具备类的创建思想很实用于实际场景多相似性的框架搭建;同种类型或相似类型的C++的优势明显因此进行相互嵌套使用

需要在C中使用C++类的话,你可以通过C++的“extern "C"”语法来实现。这允许你在C++代码中使用C的链接方式,而在C代码中使用C++的特性。

standard.cpp

#include "FB_Standard_TON.h"
#include "math.h"

Class_FB_Standard_TON::Class_FB_Standard_TON()//¹¹Ô캯Êý--¿ÉÒÔ½øÐÐÓвÎÊýµÄÖØÔØ--->ÎÞ·µ»ØÀàÐÍ
{
	;
}
Class_FB_Standard_TON::~Class_FB_Standard_TON()//Îö¹¹º¯Êý
{
	;
}

/***************·½·¨****************/
void Class_FB_Standard_TON::TON(u32 system_time_num,u16 PT_time,bool* IN,bool* out_Q)//¹¹Ô캯Êý--¿ÉÒÔ½øÐÐÓвÎÊýµÄÖØÔØ--->ÎÞ·µ»ØÀàÐÍ
{
	if((IN_old == false)&&(*IN == true)) {ton_step  =100;star_time = system_time_num;}
	if(*IN == false) {ton_step  =1000;*out_Q=0;}
	switch(ton_step)
	{
		case 100:
		if ((system_time_num-star_time)>=PT_time)//²»ÓùØÐÄÒç³ö
			*out_Q = 1;
		break;
		default:
			*out_Q = 0;
			break;
	}
	IN_old = *IN;
}





 standard.h

#ifndef __FB_STANDARD_TON__
#define __FB_STANDARD_TON__

#include "applicfg.h"
#include "ObjDict.h"
#include <math.h>
#include "sys.h"


extern "C" void FB_Standard_TON_LIB(u32 system_time_num,u16 PT_time,bool* IN,bool* out_Q);//CÓëC++µÄÖм䴫µÝº¯Êý--->Ò²³ÆΪ¼æÈݺ¯Êý

class Class_FB_Standard_TON{
	public:
		int ton_step;
		bool IN_old;
		u32 star_time;
		Class_FB_Standard_TON(void);//¹¹Ô캯Êý
		~Class_FB_Standard_TON(void);//Îö¹¹º¯Êý
		void TON(u32 system_time_num,u16 PT_time,bool* IN,bool* out_Q);
};

Class_FB_Standard_TON FB_Standard_TON;//ʵÀý»¯Àà

void FB_Standard_TON_LIB(u32 system_time_num,u16 PT_time,bool* IN,bool* out_Q)//º¯ÊýÉùÃ÷
{
	FB_Standard_TON.TON(system_time_num,PT_time,IN,out_Q);//ÀàµÄ·½·¨µ÷ÓÃ
}



#endif


C语言函数的调用

main.c

extern void FB_Standard_TON_LIB(u32 system_time_num,u16 PT_time,bool* IN,bool* out_Q);

void test_ton()
{
	bool in,Q;
	FB_Standard_TON_LIB(SysTick->VAL,1000,&in,&Q);
}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值