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

news2024/11/26 3:50:11

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);
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1580234.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

服务器开发 Socket 相关函数

Socket 函数 #include <sys/types.h> #include <sys/socket.h> int socket(int domain, int type, int protocol)domain: AF_INET 这是大多数用来产生 socket 的协议&#xff0c;使用TCP或UDP来传输&#xff0c;用IPv4的地址 AF_INET6 与上面类似&#xff0c;不过…

电商选品难?那是因为你不会用大数据选品工具…

电商选品之所以难&#xff0c;主要有以下几个方面的原因。电商市场更新换代非常快&#xff0c;新的产品不断涌现&#xff0c;旧的产品可能很快就被淘汰。电商选品紧跟市场趋势&#xff0c;不断调整和更新&#xff0c;这对电商运营市场敏感度和反应速度提出了很高的要求。 电商…

用友NC importPml SQL注入漏洞(XVE-2023-29120)

0x01 产品简介 用友NC是由用友公司开发的一套面向大型企业和集团型企业的管理软件产品系列。这一系列产品基于全球最新的互联网技术、云计算技术和移动应用技术,旨在帮助企业创新管理模式、引领商业变革。 0x02 漏洞概述 用友NC importPml接口存在SQL注入漏洞,攻击者通过利…

java操作linux

文章目录 远程连接服务器执行linux命令或shell脚本介绍Process的方法相关类UML 工具类基本工具类依赖第三方的工具类 远程连接服务器 java程序远程linux服务器有两个框架分别是&#xff1a;jsch与ganymed-ssh2框架。推荐使用jsch框架&#xff0c;因为ganymed-ssh2框架不支持麒…

诚邀莅临!道合顺将携“气体传感器”亮相深圳国际传感器与应用技术展览会

2024年4月14日-16日&#xff0c;深圳国际传感器与应用技术展览会将在深圳会展中心&#xff08;福田&#xff09;盛大举办。道合顺传感将携旗下系列专业气体传感器产品亮相展会&#xff0c;更有重磅新品传感器方案现场展示&#xff0c;真诚期待您的到来&#xff01; 传感器技术、…

球球大作战Python单机版本

球球大作战是一个多人在线游戏&#xff0c;玩家需要控制一个小球&#xff0c;通过吞食地图上的小点来增加自己的体积&#xff0c;同时避免被其他更大的球体吞噬。下面是一个简化版的球球大作战游戏&#xff0c;使用Python语言和pygame库来实现。在这个简化版中&#xff0c;我们…

pycharm环境配置踩坑

一、新建目录 venv 二、创建本地解释器 3、配置国内镜像 1&#xff09;镜像源 清华&#xff1a;https://pypi.tuna.tsinghua.edu.cn/simple 阿里云&#xff1a;http://mirrors.aliyun.com/pypi/simple/ 中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/ 华中理工大…

宠物医院管理系统

文章目录 宠物医院管理系统一、系统演示二、项目介绍三、12000字论文参考四、系统部分页面展示五、部分代码展示六、底部获取项目源码和万字论文参考&#xff08;9.9&#xffe5;带走&#xff09; 宠物医院管理系统 一、系统演示 宠物医院管理系统 二、项目介绍 语言&#xf…

HarmonyOS实战开发-使用OpenGL实现2D图形绘制和动画。

介绍 基于XComponent组件调用Native API来创建EGL/GLES环境&#xff0c;从而使用标准OpenGL ES进行图形渲染。本项目实现了两个示例&#xff1a; 使用OpenGL实现2D的图形绘制和动画&#xff1b;使用OpenGL实现了在主页面绘制两个立方体&#xff0c;光源可以在当前场景中移动&…

MySQL客户端安装并配置免密登录

最近在写脚本时需要向MySQL数据库中存储数据&#xff0c;且脚本运行的服务器与MySQL服务器不是同一台服务器&#xff0c;而且需要保证MySQL密码的安全性&#xff0c;不能在脚本中暴露&#xff0c;所以就需要在服务器上安装MySQL客户端&#xff0c;并配置免密登录。 一、虚拟机…

使用注意力机制的 LSTM 彻底改变时间序列预测

目录 一、说明二、LSTM 和注意力机制简介三、为什么要将 LSTM 与时间序列注意力相结合&#xff1f;四、模型架构训练与评估 五、验证六、计算指标七、结论 一、说明 在时间序列预测领域&#xff0c;对更准确、更高效的模型的追求始终存在。深度学习的应用为该领域的重大进步铺…

【golang】动态生成微信小程序二维码实战下:golang 生成 小程序二维码图片 并通过s3协议上传到对象存储桶 | 腾讯云 cos

项目背景 在自研的系统&#xff0c;需要实现类似草料二维码的功能 将我们自己的小程序&#xff0c;通过代码生成相想要的小程序二维码 代码已经上传到 Github 需要的朋友可以自取 https://github.com/ctra-wang/wechat-mini-qrcode 一、生成Qrcode并提交到对象存储 通过源生A…

中颖51芯片学习4. 可编程计数器阵列PCA0

中颖51芯片学习4. 可编程计数器阵列PCA0 一、PCA介绍1. PCA简介2. SH79F9476的PCA0特性3. PCA0 功能4. 时钟5. PCA0原理框图6. 工作方式 二、PCA0寄存器1. PCA0标志寄存器2. PCA使能寄存器3. PCA0方式寄存器4. P0CPMn PCA捕捉/比较寄存器5. P0FORCE强制输出控制寄存器6. PCA0计…

《极域多媒体教室互动管理系统软件》控制方法大全

前言及背景&#xff1a; 当我坐在电脑前&#xff0c;打开它&#xff0c;点开谷歌&#xff0c;刚刚想打开百度&#xff0c;突然闪出来了&#xff1a; 该网页已被阻止&#xff01;&#xff01;&#xff01; 正文&#xff1a; 1.极域控制原理&#xff1a; 好…

使用EZDML自动生成测试数据

项目场景: 项目开发时,新创建的表需要增加一部分测试数据用于简单的功能测试。 问题描述 无论使用代码还是使用plsql自带的数据生成工具都感觉有点麻烦,我只想点点点就能生成数据。 解决方案: 提示:这里填写该问题的具体解决方案: 使用 EZDML 可以方便的生成测试数据。…

吴恩达深度学习 (week1,2)

文章目录 1、神经网络监督学习2、深度学习兴起原因3、深度学习二元分类4、深度学习Logistic 回归5、Logistic 回归损失函数6、深度学习梯度下降法7、深度学习向量法8、Python 中的广播9、上述学习总结10、大作业实现:rocket::rocket:&#xff08;1&#xff09;训练初始数据&…

如何开始用 C++ 写一个光栅化渲染器?

光栅化渲染器是计算机图形学中最基础且广泛应用的一种渲染技术&#xff0c;它将三维模型转化为二维图像。下面我们将逐步介绍如何使用C语言从零开始构建一个简单的光栅化渲染器。 一、理解光栅化渲染原理 光栅化是一种将几何数据&#xff08;如点、线、三角形&#xff09;转换…

一文详解手机IP地址如何改变

在互联网时代&#xff0c;手机的IP地址扮演着至关重要的角色。它不仅是手机在网络中的标识&#xff0c;还关系到手机的网络连接、隐私保护以及访问权限等方面。然而&#xff0c;在某些情况下&#xff0c;我们可能需要改变手机的IP地址&#xff0c;以满足特定的需求或解决网络问…

8×8点阵数码管显示驱动/大电流数码管驱动IC-VK16K33C SOP20

产品品牌&#xff1a;永嘉微电/VINKA 产品型号&#xff1a;VK16K33C 封装形式&#xff1a;SOP20 概述 VK16K33C是一种带按键扫描接口的数码管或点阵LED驱动控制专用芯片&#xff0c;内部集成有数据锁 存器、键盘扫描、LED 驱动模块等电路。数据通过I2C通讯接口与MCU通信。SE…

腾讯再次回归电商,视频号小店真的要起飞了?

大家好&#xff0c;我是电商小布。 在互联网快速发展的现状下&#xff0c;各个平台都开始加入到电商这一行。 就连之前在电商上栽过跟头的腾讯&#xff0c;都再次回归电商&#xff0c;推出了视频号小店这个项目。 视频号小店背靠着视频号平台&#xff0c;结合当前最热的电商…