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. STM32单片机C语言的一些隐藏bug

    2024-04-06 11:30:07       12 阅读
  2. <span style='color:red;'>STM</span><span style='color:red;'>32</span> I2<span style='color:red;'>C</span>

    STM32 I2C

    2024-04-06 11:30:07      28 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-06 11:30:07       14 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-06 11:30:07       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-06 11:30:07       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-06 11:30:07       18 阅读

热门阅读

  1. P8783 [蓝桥杯 2022 省 B] 统计子矩阵

    2024-04-06 11:30:07       13 阅读
  2. 关于人员的管理问题小讨论

    2024-04-06 11:30:07       12 阅读
  3. spring 和spring boot的区别

    2024-04-06 11:30:07       13 阅读
  4. C/C++中const关键字用法总结

    2024-04-06 11:30:07       14 阅读
  5. springcloud第4季 使用resilience4j实现服务流量治理

    2024-04-06 11:30:07       11 阅读
  6. C++入门

    C++入门

    2024-04-06 11:30:07      14 阅读
  7. Linux 指令

    2024-04-06 11:30:07       21 阅读
  8. MySQL Payload

    2024-04-06 11:30:07       12 阅读
  9. 金蝶Apusic应用服务器 未授权目录遍历漏洞复现

    2024-04-06 11:30:07       12 阅读
  10. 在Ubuntu 14.04上如何备份和恢复Redis数据

    2024-04-06 11:30:07       16 阅读