当前位置:   article > 正文

STM32中C编程引入C++程序_能往stm32中烧录c++代码吗?

能往stm32中烧录c++代码吗?

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

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

standard.cpp

  1. #include "FB_Standard_TON.h"
  2. #include "math.h"
  3. Class_FB_Standard_TON::Class_FB_Standard_TON()//¹¹Ô캯Êý--¿ÉÒÔ½øÐÐÓвÎÊýµÄÖØÔØ--->ÎÞ·µ»ØÀàÐÍ
  4. {
  5. ;
  6. }
  7. Class_FB_Standard_TON::~Class_FB_Standard_TON()//Îö¹¹º¯Êý
  8. {
  9. ;
  10. }
  11. /***************·½·¨****************/
  12. void Class_FB_Standard_TON::TON(u32 system_time_num,u16 PT_time,bool* IN,bool* out_Q)//¹¹Ô캯Êý--¿ÉÒÔ½øÐÐÓвÎÊýµÄÖØÔØ--->ÎÞ·µ»ØÀàÐÍ
  13. {
  14. if((IN_old == false)&&(*IN == true)) {ton_step =100;star_time = system_time_num;}
  15. if(*IN == false) {ton_step =1000;*out_Q=0;}
  16. switch(ton_step)
  17. {
  18. case 100:
  19. if ((system_time_num-star_time)>=PT_time)//²»ÓùØÐÄÒç³ö
  20. *out_Q = 1;
  21. break;
  22. default:
  23. *out_Q = 0;
  24. break;
  25. }
  26. IN_old = *IN;
  27. }

 standard.h

  1. #ifndef __FB_STANDARD_TON__
  2. #define __FB_STANDARD_TON__
  3. #include "applicfg.h"
  4. #include "ObjDict.h"
  5. #include <math.h>
  6. #include "sys.h"
  7. extern "C" void FB_Standard_TON_LIB(u32 system_time_num,u16 PT_time,bool* IN,bool* out_Q);//CÓëC++µÄÖм䴫µÝº¯Êý--->Ò²³ÆΪ¼æÈݺ¯Êý
  8. class Class_FB_Standard_TON{
  9. public:
  10. int ton_step;
  11. bool IN_old;
  12. u32 star_time;
  13. Class_FB_Standard_TON(void);//¹¹Ô캯Êý
  14. ~Class_FB_Standard_TON(void);//Îö¹¹º¯Êý
  15. void TON(u32 system_time_num,u16 PT_time,bool* IN,bool* out_Q);
  16. };
  17. Class_FB_Standard_TON FB_Standard_TON;//ʵÀý»¯Àà
  18. void FB_Standard_TON_LIB(u32 system_time_num,u16 PT_time,bool* IN,bool* out_Q)//º¯ÊýÉùÃ÷
  19. {
  20. FB_Standard_TON.TON(system_time_num,PT_time,IN,out_Q);//ÀàµÄ·½·¨µ÷ÓÃ
  21. }
  22. #endif

C语言函数的调用

main.c

  1. extern void FB_Standard_TON_LIB(u32 system_time_num,u16 PT_time,bool* IN,bool* out_Q);
  2. void test_ton()
  3. {
  4. bool in,Q;
  5. FB_Standard_TON_LIB(SysTick->VAL,1000,&in,&Q);
  6. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/684126
推荐阅读
相关标签
  

闽ICP备14008679号