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

相关文章:
STM32中C编程引入C++程序
C具备类的创建思想很实用于实际场景多相似性的框架搭建;同种类型或相似类型的C的优势明显因此进行相互嵌套使用 需要在C中使用C类的话,你可以通过C的“extern "C"”语法来实现。这允许你在C代码中使用C的链接方式,而在C代码中使用…...
MySQL DBA 需要了解一下 InnoDB Online DDL 算法更新
在 MySQL 8.0.12 中,我们引入了一种新的 DDL 算法,该算法在更改表的定义时不会阻塞表。第一个即时操作是在表格末尾添加一列,这是来自腾讯游戏的贡献。 然后在 MySQL 8.0.29 中,我们添加了在表中任意位置添加(或删除&…...
多态--下
文章目录 概念多态如何实现的指向谁调谁?例子分析 含有虚函数类的大小是多少?虚函数地址虚表地址多继承的子类的大小怎么计算?练习题虚函数和虚继承 概念 优先使用组合、而不是继承; 继承会破坏父类的封装、因为子类也可以调用到父类的函数;…...
备考ICA----Istio实验16---HTTP流量授权
备考ICA----Istio实验16—HTTP流量授权 1. 环境准备 kubectl apply -f istio/samples/bookinfo/platform/kube/bookinfo.yaml kubectl apply -f istio/samples/bookinfo/networking/bookinfo-gateway.yaml访问测试 curl -I http://192.168.126.220/productpage2. 开启mtls …...
STM32-02基于HAL库(CubeMX+MDK+Proteus)GPIO输出案例(LED流水灯)
文章目录 一、功能需求分析二、Proteus绘制电路原理图三、STMCubeMX 配置引脚及模式,生成代码四、MDK打开生成项目,编写HAL库的GPIO输出代码五、运行仿真程序,调试代码 一、功能需求分析 在完成开发环境搭建之后,开始使用STM32GP…...
华为审核被拒提示: 您的应用存在(最近任务列表隐藏风险活动)的行为,不符合华为应用市场审核标准
应用审核意见: 您的应用存在(最近任务列表隐藏风险活动)的行为,不符合华为应用市场审核标准。 修改建议:请参考测试结果进行修改。 请参考《审核指南》第2.19相关审核要求:https://developer.huawei.com/c…...
数论与线性代数——整除分块【数论分块】的【运用】【思考】【讲解】【证明(作者自己证的QWQ)】
文章目录 整除分块的思考与运用整除分块的时间复杂度证明 & 分块数量整除分块的公式 & 公式证明公式证明 代码code↓ 整除分块的思考与运用 整除分块是为了解决一个整数求和问题 题目的问题为: ∑ i 1 n ⌊ n i ⌋ \sum_{i1}^{n} \left \lfloor \frac{n}{…...
Linux系统下安装jdk与tomcat【linux】
一、yum介绍 linux下的jdk安装以及环境配置,有两种常用方法: 1.使用yum一键安装。 2.手动安装,在Oracle官网下载好需要的jdk版本,上传解压并配置环境。 这里介绍第一种方法,在此之前简单了解下yum。 yum 介绍 yum&…...
matlab实现决策树可视化——信息增益、C4.5、基尼指数
代码:https://download.csdn.net/download/boyas/89074326...
如何使用Python进行网络编程和套接字通信?
如何使用Python进行网络编程和套接字通信? Python作为一种通用编程语言,具有强大的网络编程能力。它提供了丰富的库和工具,使得开发者可以轻松地实现网络编程和套接字通信。下面将详细介绍如何使用Python进行网络编程和套接字通信。 一、网…...
nodeJs 实现视频的转换(超详细教程)
前段时间拿到一个视频是4k的,没法播放,于是通过 node.js 和 ffmpeg 实现了视频的转换。在win10 系统下实现。 所需工具 node 16.19 直接安装 ffmpeg-5.1.1-essentials_build 解压后重名 ffmpeg 放到C盘 然后配置下环境变量 Git-2.42.0.2-64-bit 直接…...
Transformer - model architecture
Transformer - model architecture flyfish Transformer总体架构可分为四个部分: 输⼊部分 输出部分 编码器部分 解码器部分 输入部分 输出部分 输⼊部分包含: 源嵌⼊层和位置编码 ⽬标嵌⼊层和位置编码 输出部分包含: 线性层 softmax处理器 左侧编码器部分和右侧解码器部…...
Zookeeper学习一
初识 Zookeeper Zookeeper 是 Apache Hadoop 项目下的一个子项目,是一个树形目录服务(B树)。 Zookeeper 翻译过来就是 动物园管理员,他是用来管 Hadoop(大象)、Hive(蜜蜂)、Pig(小 猪)的管理员。简称zk …...
SAR教程系列7——在cadence中用Spectrum工具FFT仿真ADC的ENOB、SNR等动态性能指标
首先在仿真之前,你得有一个ADC。然后是思考如何仿真的问题,如何加激励,如何使用相关工具查看仿真结果。假定你有一个可以仿真的ADC,大致经过下列步骤可以得到ADC的相关动态性能指标。 第一步:在ADC后面接一个理想的DA…...
攻防世界:mfw[WriteUP]
根据题目提示考虑是git库泄露 这里在地址栏后加.git也可以验证是git库泄露 使用GitHack工具对git库进行恢复重建 在templates目录下存在flag.php文件,但里面并没有flag 有内容的只有主目录下的index.php index.php源码: <?phpif (isset($_GET[page…...
mysq性能优化-my.cnf配置文件参数调整
MySQL 优化配置文件(my.cnf 或 my.ini)是调整 MySQL 服务器性能的重要手段之一。以下是一些常见的场景,可以通过调整配置文件参数值来优化 MySQL: 1. **提高并发处理能力**: - innodb_buffer_pool_size:增…...
ddres( ) 组站星双差方程和设计矩阵
1 ddres( )参数介绍 rtklib中进行的单频解算 双差观测值,单差的模糊度 单频点双差 DD (double-differenced) phase/code residuals ------------------------------ x 模糊度 P 方差-协方差阵 sat 共识卫星列表 ns 共识卫星数量 y…...
【OpenCV】图像像素的遍历
1 前言 介绍两种遍历像素的方法(非指针、指针)。注意:.at() .ptr()的作用、用法。相关API: Mat对象.ptr() Mat对象.at() 2 代码及内容 #include "iostream" #include "opencv2/opencv.hpp"using namespac…...
(超简单)构建高可用网络应用:使用Nginx进行负载均衡与健康检查
当构建高可用的网络应用时,负载均衡是至关重要的技术之一。Nginx 是一个强大的开源反向代理服务器,提供了丰富的负载均衡功能,包括负载均衡算法和健康检查。在本篇博客中,我们将讨论如何使用 Nginx 进行负载均衡,并结合…...
华为OD面试手撕算法-合并排序数组
题目描述 本题是leetcode一道简单题:合并两个有序数组,但是对于时间和空间复杂度面试官明确给出了限制。 // 给定两个排序后的数组 A 和 B,其中 A 的末端有足够的缓冲空间容纳 B。 编写一个方法,将 B 合并入 A 并排序。 // 初始化…...
(转)什么是DockerCompose?它有什么作用?
一、什么是DockerCompose? DockerCompose可以基于Compose文件帮我们快速的部署分布式应用,而无需手动一个个创建和运行容器。 Compose文件是一个文本文件,通过指令定义集群中的每个容器如何运行。 DockerCompose就是把DockerFile转换成指令去运行。 …...
【论文阅读28】-CNN-BiLSTM-Attention-(2024)
本文把滑坡位移序列拆开、筛优质因子,再用 CNN-BiLSTM-Attention 来动态预测每个子序列,最后重构出总位移,预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵(S…...
Unsafe Fileupload篇补充-木马的详细教程与木马分享(中国蚁剑方式)
在之前的皮卡丘靶场第九期Unsafe Fileupload篇中我们学习了木马的原理并且学了一个简单的木马文件 本期内容是为了更好的为大家解释木马(服务器方面的)的原理,连接,以及各种木马及连接工具的分享 文件木马:https://w…...
MySQL 知识小结(一)
一、my.cnf配置详解 我们知道安装MySQL有两种方式来安装咱们的MySQL数据库,分别是二进制安装编译数据库或者使用三方yum来进行安装,第三方yum的安装相对于二进制压缩包的安装更快捷,但是文件存放起来数据比较冗余,用二进制能够更好管理咱们M…...
Java数值运算常见陷阱与规避方法
整数除法中的舍入问题 问题现象 当开发者预期进行浮点除法却误用整数除法时,会出现小数部分被截断的情况。典型错误模式如下: void process(int value) {double half = value / 2; // 整数除法导致截断// 使用half变量 }此时...
C++课设:简易日历程序(支持传统节假日 + 二十四节气 + 个人纪念日管理)
名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 专栏介绍:《编程项目实战》 目录 一、为什么要开发一个日历程序?1. 深入理解时间算法2. 练习面向对象设计3. 学习数据结构应用二、核心算法深度解析…...
Unity UGUI Button事件流程
场景结构 测试代码 public class TestBtn : MonoBehaviour {void Start(){var btn GetComponent<Button>();btn.onClick.AddListener(OnClick);}private void OnClick(){Debug.Log("666");}}当添加事件时 // 实例化一个ButtonClickedEvent的事件 [Formerl…...
nnUNet V2修改网络——暴力替换网络为UNet++
更换前,要用nnUNet V2跑通所用数据集,证明nnUNet V2、数据集、运行环境等没有问题 阅读nnU-Net V2 的 U-Net结构,初步了解要修改的网络,知己知彼,修改起来才能游刃有余。 U-Net存在两个局限,一是网络的最佳深度因应用场景而异,这取决于任务的难度和可用于训练的标注数…...
表单设计器拖拽对象时添加属性
背景:因为项目需要。自写设计器。遇到的坑在此记录 使用的拖拽组件时vuedraggable。下面放上局部示例截图。 坑1。draggable标签在拖拽时可以获取到被拖拽的对象属性定义 要使用 :clone, 而不是clone。我想应该是因为draggable标签比较特。另外在使用**:clone时要将…...
C++参数传递 a与a的区别
在 C 中,&a(引用)和 a(值传递) 的关键区别在于 参数如何传递给函数,以及由此引发的 性能、语义和安全问题。 最核心的在于你想不想传入的参数被改变,如果想,就用参数传递&#…...
