做塑胶材料的网站公司辞退员工补偿标准2023

news/2025/9/23 6:44:11/文章来源:
做塑胶材料的网站,公司辞退员工补偿标准2023,WordPress跳转提示,怎样才能做网站一、 电路设计 本周主要工作是在项目上#xff0c;抽空做了一个跟本课题相关的电路板#xff0c;之前用开发板来做测试#xff0c;MPU6050和QMC5883L都是用杜邦线连接的#xff0c;导致接线很乱#xff0c;也不美观#xff0c;当然也不符合“捷联”的定义。   下面是电…一、 电路设计 本周主要工作是在项目上抽空做了一个跟本课题相关的电路板之前用开发板来做测试MPU6050和QMC5883L都是用杜邦线连接的导致接线很乱也不美观当然也不符合“捷联”的定义。   下面是电路的原理图和PCB因为已经购买了MPU6050和QMC5883L模块所以直接使用这些模块来做不再设计外围电路(不是懒主要是这个电路板做测试使用后续做课题看不会用这中比较low的MEMS传感器)。   本次设计的电路有以下几个特点 外扩排针各模块仍然可以正常单独使用外扩电源可以使用5V电源直接供电增加蓝牙模块并设置为115200波特率可以通过无线的方式获取传感器的数据增加ICM20602可以选择使用MPU6050或者ICM20602单独设计各模块的封装库(目前无3D模型)并标注三轴的方向已经对应模块的螺孔可以根据封装库的位置直接增加螺孔   部分封装库如下所示   有需要的可以联系我或者去我的资源中进行下载。 二、 代码 下面是相关的部分代码   ICM20602的代码可参考博客STM32Cube高效开发教程基础篇(十四)----SPI通信及ICM20602软件开发本博客后续的资源链接中也会包含ICM20602的代码。   MPU6050.c: #include mpu6050.h #include stm32f1xx_hal.h uint8_t addressMPU6050;int16_t adcAccel_MPU6050[3]{0},adcGyro_MPU6050[3]{0}; //初始化MPU6050 //返回值:0,成功 // 其他,错误代码 uint8_t MPU_Init(void) { // MPU_IIC_Init();//初始化IIC总线MPU_Write_Byte(MPU_PWR_MGMT1_REG,0X80); //复位MPU6050HAL_Delay(100);MPU_Write_Byte(MPU_PWR_MGMT1_REG,0X00); //唤醒MPU6050 MPU_Set_Gyro_Fsr(3); //陀螺仪传感器,±2000dpsMPU_Set_Accel_Fsr(0); //加速度传感器,±2gMPU_Set_Rate(50); //设置采样率50HzMPU_Write_Byte(MPU_INT_EN_REG,0X00); //关闭所有中断MPU_Write_Byte(MPU_USER_CTRL_REG,0X00); //I2C主模式关闭MPU_Write_Byte(MPU_FIFO_EN_REG,0X00); //关闭FIFOMPU_Write_Byte(MPU_INTBP_CFG_REG,0X80); //INT引脚低电平有效addressMPU6050MPU_Read_Byte(MPU_DEVICE_ID_REG); if(addressMPU6050MPU_ADDR)//器件ID正确{MPU_Write_Byte(MPU_PWR_MGMT1_REG,0X01); //设置CLKSEL,PLL X轴为参考MPU_Write_Byte(MPU_PWR_MGMT2_REG,0X00); //加速度与陀螺仪都工作MPU_Set_Rate(50); //设置采样率为50Hz}else return 1; // MPU_Write_Byte(MPU_PWR_MGMT1_REG,0X01); //设置CLKSEL,PLL X轴为参考 // MPU_Write_Byte(MPU_PWR_MGMT2_REG,0X00); //加速度与陀螺仪都工作 // MPU_Set_Rate(50); //设置采样率为50HzMPU_IIC_SCL_HIG;MPU_IIC_SDA_HIG;return 0; } //设置MPU6050陀螺仪传感器满量程范围 //fsr:0,±250dps;1,±500dps;2,±1000dps;3,±2000dps //返回值:0,设置成功 // 其他,设置失败 uint8_t MPU_Set_Gyro_Fsr(uint8_t fsr) {return MPU_Write_Byte(MPU_GYRO_CFG_REG,fsr3);//设置陀螺仪满量程范围 } //设置MPU6050加速度传感器满量程范围 //fsr:0,±2g;1,±4g;2,±8g;3,±16g //返回值:0,设置成功 // 其他,设置失败 uint8_t MPU_Set_Accel_Fsr(uint8_t fsr) {return MPU_Write_Byte(MPU_ACCEL_CFG_REG,fsr3);//设置加速度传感器满量程范围 } //设置MPU6050的数字低通滤波器 //lpf:数字低通滤波频率(Hz) //返回值:0,设置成功 // 其他,设置失败 uint8_t MPU_Set_LPF(uint16_t lpf) {uint8_t data0;if(lpf188)data1;else if(lpf98)data2;else if(lpf42)data3;else if(lpf20)data4;else if(lpf10)data5;else data6; return MPU_Write_Byte(MPU_CFG_REG,data);//设置数字低通滤波器 } //设置MPU6050的采样率(假定Fs1KHz) //rate:4~1000(Hz) //返回值:0,设置成功 // 其他,设置失败 uint8_t MPU_Set_Rate(uint16_t rate) {uint8_t data;if(rate1000)rate1000;if(rate4)rate4;data1000/rate-1;dataMPU_Write_Byte(MPU_SAMPLE_RATE_REG,data); //设置数字低通滤波器return MPU_Set_LPF(rate/2); //自动设置LPF为采样率的一半 }//得到温度值 //返回值:温度值(扩大了100倍) short MPU_Get_Temperature(void) {uint8_t buf[2]; short raw;float temp;MPU_Read_Len(MPU_ADDR,MPU_TEMP_OUTH_REG,2,buf); raw((uint16_t)buf[0]8)|buf[1]; temp36.53((double)raw)/340; return temp*100;; } //得到陀螺仪值(原始值) //gx,gy,gz:陀螺仪x,y,z轴的原始读数(带符号) //返回值:0,成功 // 其他,错误代码 uint8_t MPU_Get_Gyroscope(short *gx,short *gy,short *gz) {uint8_t buf[6],res; resMPU_Read_Len(MPU_ADDR,MPU_GYRO_XOUTH_REG,6,buf);if(res0){*gx((uint16_t)buf[0]8)|buf[1]; *gy((uint16_t)buf[2]8)|buf[3]; *gz((uint16_t)buf[4]8)|buf[5];adcGyro_MPU6050[0](buf[0]8)|buf[1]; adcGyro_MPU6050[1](buf[2]8)|buf[3]; adcGyro_MPU6050[2](buf[4]8)|buf[5];} return res;; } //得到加速度值(原始值) //gx,gy,gz:陀螺仪x,y,z轴的原始读数(带符号) //返回值:0,成功 // 其他,错误代码 uint8_t MPU_Get_Accelerometer(short *ax,short *ay,short *az) {uint8_t buf[6],res; resMPU_Read_Len(MPU_ADDR,MPU_ACCEL_XOUTH_REG,6,buf);if(res0){*ax((uint16_t)buf[0]8)|buf[1]; *ay((uint16_t)buf[2]8)|buf[3]; *az((uint16_t)buf[4]8)|buf[5];adcAccel_MPU6050[0](buf[0]8)|buf[1]; adcAccel_MPU6050[1](buf[2]8)|buf[3]; adcAccel_MPU6050[2](buf[4]8)|buf[5];} return res; }QMC5883L.c // 模拟IIC发送单字节时序 uint8_t QMC5883L_SendByte(uint8_t Sim_i2c_data) {uint8_t i;SDA1_OUT();QMC5883L_SCL_LOW;for(i0; i8; i){if(Sim_i2c_data0x80) QMC5883L_SDA_HIG;else QMC5883L_SDA_LOW;Sim_i2c_data1;QMC5883L_NOP;QMC5883L_SCL_HIG;QMC5883L_NOP;QMC5883L_SCL_LOW;QMC5883L_NOP;}return QMC5883L_READY; }// 模拟IIC发送单字节时序 uint8_t QMC5883L_ReceiveByte(void) {uint8_t i,Sim_i2c_data;SDA1_IN();//QMC5883L_SDA_HIG; // QMC5883L_SCL_LOW;Sim_i2c_data0;for(i0; i8; i){QMC5883L_SCL_LOW;QMC5883L_NOP;QMC5883L_SCL_HIG;// QMC5883L_NOP;Sim_i2c_data1;SDA_Pin_State QMC5883L_SDA_STATE;if(QMC5883L_SDA_STATE) Sim_i2c_data|0x01;// QMC5883L_SCL_LOW;QMC5883L_NOP;}QMC5883L_SendNACK();return Sim_i2c_data; }// 模拟IIC读单字节带应答 uint8_t QMC5883L_ReceiveByte_WithACK(void) {uint8_t i,Sim_i2c_data;SDA1_IN();//QMC5883L_SDA_HIG; // QMC5883L_SCL_LOW;Sim_i2c_data0;for(i0; i8; i){QMC5883L_SCL_LOW;QMC5883L_NOP;QMC5883L_SCL_HIG;// QMC5883L_NOP;Sim_i2c_data1;if(QMC5883L_SDA_STATE) Sim_i2c_data|0x01;// QMC5883L_SCL_LOW;QMC5883L_NOP;}QMC5883L_SendACK();return Sim_i2c_data; }// 模拟IIC的多字节读 uint8_t QMC5883L_Read8(uint8_t moni_dev_addr, uint8_t moni_reg_addr, uint8_t moni_i2c_len, uint8_t *moni_i2c_data_buf) {QMC5883L_START();QMC5883L_SendByte(moni_dev_addr 1 | WRITE );QMC5883L_Wait_Ack();QMC5883L_SendByte(moni_reg_addr);QMC5883L_Wait_Ack();//QMC5883L_STOP();QMC5883L_START();QMC5883L_SendByte(moni_dev_addr 1 | READ );QMC5883L_Wait_Ack();while (moni_i2c_len){if (moni_i2c_len1) *moni_i2c_data_buf QMC5883L_ReceiveByte();else *moni_i2c_data_buf QMC5883L_ReceiveByte_WithACK();moni_i2c_data_buf;moni_i2c_len--;}QMC5883L_STOP();return 0x00; }// 模拟IIC的多字节写 int8_t QMC5883L_Write8(uint8_t moni_dev_addr, uint8_t moni_reg_addr, uint8_t moni_i2c_len, uint8_t *moni_i2c_data_buf) {uint8_t i;QMC5883L_START();QMC5883L_SendByte(moni_dev_addr 1 | WRITE); // 写指令QMC5883L_Wait_Ack();QMC5883L_SendByte(moni_reg_addr);QMC5883L_Wait_Ack();//QMC5883L_START();for (i0; imoni_i2c_len; i){QMC5883L_SendByte(moni_i2c_data_buf[i]);QMC5883L_Wait_Ack();}QMC5883L_STOP(); return 0; }uint8_t highByte(uint16_t value) {uint8_t ret;value value8;ret (uint8_t)value;return ret; }uint8_t lowByte(uint16_t value) {uint8_t ret;value value0x00ff;ret (uint8_t)value;return ret; }// 读一个字节 uint8_t readOneByte(uint8_t in_adr) {uint8_t retVal -1;QMC5883L_Read8(QMC5883L_ADDR,in_adr,1,retVal);QMC5883L_NOP;return retVal; }// 读两个字节 uint16_t readTwoBytes(uint8_t in_adr_hi, uint8_t in_adr_lo) {uint16_t retVal -1;uint8_t low0,high0;/* Read Low Byte */low readOneByte(in_adr_lo);/* Read High Byte */ high readOneByte(in_adr_hi);//printf(high:%d,low:%d ,high,low);retVal high 8;retVal retVal | low;//printf(retVal:%d\r\n,retVal);return retVal; }// 写一个字节 void writeOneByte(uint8_t adr_in, uint8_t dat_in) {uint8_t dat dat_in;QMC5883L_Write8(QMC5883L_ADDR,adr_in,1,dat); }// 获取地址 int16_t getAddress() {return QMC5883L_ADDR; }//************************写入单字节数据***************************//初始化QMC5883根据需要请参考pdf进行修改**** void Init_QMC5883() {uint8_t addrVale;addrVale 0x1D;QMC5883L_Write8(QMC5883L_ADDR,CONTROL_REG_1,1,addrVale); //控制寄存器配置addrVale 0x01;QMC5883L_Write8(QMC5883L_ADDR,SET_RESET_REG,1,addrVale); //设置清除时间寄存器 }void GetMagValue(void) {QMC5883L_Read8(QMC5883L_ADDR,XOUT_L,6,Buff);MagnetRawAd[0] ((int16_t)Buff[1] 8) | Buff[0];MagnetRawAd[1] ((int16_t)Buff[3] 8) | Buff[2];MagnetRawAd[2] ((int16_t)Buff[5] 8) | Buff[4]; }QMC5883L.h #ifndef __MD_AS5600_H #define __MD_AS5600_H#include stm32f1xx_hal.h //这个需要根据不同的芯片类型进行变换 #include main.h// QMC地址 #define QMC5883L_ADDR 0x0D// 三轴磁力计输出寄存器 #define XOUT_L 0x00 #define XOUT_H 0x01#define YOUT_L 0x02 #define YOUT_H 0x03#define ZOUT_L 0x04 #define ZOUT_H 0x05// 状态寄存器 #define STATUS 0x06// 温度输出寄存器 #define TEMP_L 0x07 #define TEMP_H 0x08// 控制寄存器 #define CONTROL_REG_1 0x09 #define CONTROL_REG_2 0x0A// SET/RESET,推荐写入0x01 #define SET_RESET_REG 0x0B// 芯片ID号 #define CHIP_ID 0x0D#define QMC5883L_SCL_LOW HAL_GPIO_WritePin(QMC_SCL_GPIO_Port,QMC_SCL_Pin,GPIO_PIN_RESET) #define QMC5883L_SCL_HIG HAL_GPIO_WritePin(QMC_SCL_GPIO_Port,QMC_SCL_Pin,GPIO_PIN_SET) #define QMC5883L_SDA_LOW HAL_GPIO_WritePin(QMC_SDA_GPIO_Port,QMC_SDA_Pin,GPIO_PIN_RESET) #define QMC5883L_SDA_HIG HAL_GPIO_WritePin(QMC_SDA_GPIO_Port,QMC_SDA_Pin,GPIO_PIN_SET)//#define Sim_I2C1_SDA_STATE (IIC_SDA_GPIO_Port-IDR (IIC_SDA_Pin)) #define QMC5883L_SDA_STATE (QMC_SDA_GPIO_Port-IDR (QMC_SDA_Pin)) //#define QMC5883L_SDA_STATE HAL_GPIO_ReadPin(QMC_SDA_GPIO_Port,QMC_SDA_Pin)#define QMC5883L_DELAY QMC5883L_Delay(100000) #define QMC5883L_NOP QMC5883L_Delay(1000) //25 #define QMC5883L_READY 0x00 #define QMC5883L_BUS_BUSY 0x01 #define QMC5883L_BUS_ERROR 0x02#define QMC5883L_NACK 0x00 #define QMC5883L_ACK 0x01#define SDA_Pin_Num 1#define WRITE 0x00 #define READ 0x01extern uint16_t rawdata; extern float degress ;extern int16_t MagnetRawAd[3]; // 磁力计数据void SDA1_IN ( void ); void SDA1_OUT ( void );void QMC5883L_Delay(uint32_t delay); uint8_t QMC5883L_START(void); void QMC5883L_STOP(void); unsigned char QMC5883L_Wait_Ack(void); void QMC5883L_SendACK(void); void QMC5883L_SendNACK(void); uint8_t QMC5883L_SendByte(uint8_t Sim_i2c_data); uint8_t QMC5883L_ReceiveByte(void); uint8_t QMC5883L_ReceiveByte_WithACK(void); uint8_t QMC5883L_Read8(uint8_t moni_dev_addr, uint8_t moni_reg_addr, uint8_t moni_i2c_len, uint8_t *moni_i2c_data_buf); int8_t QMC5883L_Write8(uint8_t moni_dev_addr, uint8_t moni_reg_addr, uint8_t moni_i2c_len, uint8_t *moni_i2c_data_buf); uint8_t highByte(uint16_t value); uint8_t lowByte(uint16_t value); uint8_t readOneByte(uint8_t in_adr); uint16_t readTwoBytes(uint8_t in_adr_hi, uint8_t in_adr_lo); void writeOneByte(uint8_t adr_in, uint8_t dat_in); int16_t getAddress();void Init_QMC5883(); void GetMagValue(void);#endif 有关QMC5883L芯片会在假期之后更新一篇讲解IIC通信以及该芯片后续会补充上链接。   资源链接 基于STM32F103C6T6的九轴传感器的工程 STM32F103C6T6模块、MPU6050模块、ICM20602模块等封装库 三、往期回顾 课题学习(一)----静态测量 课题学习(二)----倾角和方位角的动态测量方法基于磁场的测量系统 课题学习(三)----倾角和方位角的动态测量方法基于陀螺仪的测量系统 课题学习(四)----四元数解法 课题学习(五)----阅读论文《抗差自适应滤波的导向钻具动态姿态测量方法》 课题学习(六)----安装误差校准、实验方法 课题学习(七)----粘滑运动的动态算法 课题学习(八)----卡尔曼滤波动态求解倾角、方位角 课题学习(九)----阅读《导向钻井工具姿态动态测量的自适应滤波方法》论文笔记 课题学习(十)----阅读《基于数据融合的近钻头井眼轨迹参数动态测量方法》论文笔记 课题学习(十一)----阅读《Attitude Determination with Magnetometers and Accelerometers to Use in Satellite》 课题学习(十二)----阅读《Extension of a Two-Step Calibration Methodology to Include Nonorthogonal Sensor Axes》 课题学习(十三)----阅读《Calibration of Strapdown Magnetometers in Magnetic Field Domain》论文笔记 课题学习(十四)----三轴加速度计三轴陀螺仪传感器-ICM20602 课题学习(十五)----阅读《测斜仪旋转姿态测量信号处理方法》论文 课题学习(十六)----阅读《Continuous Wellbore Surveying While Drilling Utilizing MEMS Gyroscopes Based…》论文 课题学习(十七)----姿态更新的四元数算法总结

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

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

相关文章

课程网站建设发展趋势网站制作中文版

题目类型 链表反转 题目描述 给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点,且必须在不修改节点内部的值的情况下完成本题,即:只能进行节点交换 效果图 题目分析 如果原始顺序是 dummy(虚拟头节点) …

电商网站设计模板dw网站可以随便创建么

CrossOver 24是一款可以让mac用户能够自由运行和游戏windows游戏软件的虚拟机类应用,虽然能够虚拟windows但是却并不是一款虚拟机,也不需要重启系统或者启动虚拟机,类似于一种能够让mac系统直接运行windows软件的插件。它以其出色的跨平台兼容…

做个商城网站多少钱php网站后台教程

目录 一、HttpClient 1. 介绍 2. 入门案例 1 导入依赖(已有) 2 GET方式请求 2 POST方式请求 二、微信小程序开发 1. 介绍 2. 准备工作 1 注册小程序获取AppID 注册小程序 完善小程序信息 2 下载并安装开发者工具 3 设置小程序开发者工具(必做) 3. 入门案例 1 小…

三合一网站管理系统济南网站app开发

1、 答疑:【解析】分布式数据库系统按不同层次提供的分布透明性有:分片透明性;②位置透明性;③局部映像透明性,位置透明性是指数据分片的分配位置对用户是透明的,用户编写程序时只需 要考虑数据分片情况,不需要了解各分片在各个场地的分配情…

网站开发与应用就业方向网站备案是针对空间还是域名

简介: 女娲是飞天分布式系统中提供分布式协同的基础服务,支撑着阿里云的计算、网络、存储等几乎所有云产品。在女娲分布式协同服务中,一致性引擎是核心基础模块,支持了Paxos,Raft,EPaxos等多种一致性协议&a…

做空闲时间的网站dedecms使用教程

目录 一、概述什么是数据标准数据标准的作用什么是数据标准化数据标准的意义业务方面技术方面管理方面 二、数据标准管理的内容数据模型标准基础数据标准主数据和参考数据标准指标数据标准 三、数据标准管理流程数据标准梳理数据标准制定数据标准审查数据标准发布数据标准贯彻 …

读人形机器人20财富再分配

读人形机器人20财富再分配1. 全民基本收入 1.1. 随着机器人和AI系统接管从制造业到服务业的各种任务,许多传统工作面临淘汰 1.2. 机器人驱动型经济的到来带来了前所未有的生产力和效率 1.3. 随着经济向自动化过渡,社…

Java 与人工智能的深度融合:从数据到推理服务

一、引言 人工智能(AI)与机器学习(ML)已经成为推动产业升级与社会变革的重要引擎。虽然 Python 是学术界与研究人员的首选,但在 大规模工程落地、企业级应用、生产环境部署 中,Java 依然扮演着关键角色。凭借其 …

Java 与大数据实时处理:Kafka、Flink 与企业应用

一、引言 在互联网、金融、电商、物联网等行业,实时数据处理 已经成为刚需。用户行为日志、交易流水、传感器数据、监控日志,每一秒都在产生海量信息。如何对这些数据进行 毫秒级采集、分析和决策,直接决定了业务的…

Java 与企业级中间件:消息、缓存与数据库集成

一、引言 企业级应用离不开 中间件。无论是金融、电商、物流,还是政务、医疗系统,都需要通过 消息队列(MQ)实现异步解耦、缓存系统保障高性能、数据库集成支撑核心数据存储。Java 作为企业开发的主力语言,与这些中…

儿童网站模板阿里云 win wordpress 伪静态

接口与实现 接口 为了克服Java单继承的缺点,Java使用了接口,一个类可以实现多个接口。 使用关键字interface来定义一个接口。接口的定义和类的定义很相似,分为接口的声明和接口体。 接口通过使用关键字interface来声明 interface Printab…

青岛做网站皆赴青岛博采网络做效果图展板网站

基于web的花店销售系统的设计与实现(论文13000字)摘要:本系统是一个相对简单的基本应用系统,主要满足传统的花店运营需要,将自己的销售渠道扩展到网上,通过简单的管理,提供给最终消费者产品的展现、购物、订单处理等实…

蒙狼科技建设网站好不好最近最新手机中文大全10

1、MySQL体系结构 MySQL大致可以分为连接层、服务层、引擎层、存储层四个层,这里需要注意,索引的结构操作是在存储引擎层完成的,所以不同的存储引擎,索引的结构是不一样的。 (1)体系结构示意图 &#xff0…

代码需求网站设计网页机构

人本质上是喜欢清闲的生活的。所谓“清闲”,就是在为稻梁奔波的同时,还有一些可以用来喝酒、聊天、旅游的时间。 细细想来,一个人要活的惬意,光有生理上的清闲是不够的,还得有心灵的清闲。只是一个人要抵达生理上的清…

体育用品东莞网站建设wordpress 突然502

目录 一.最小生成树 1.生成树 2.无向图的生成树 3.最小生成树算法 二.最短路径 1.单源最短路径---Dijkstra(迪杰斯特拉)算法 2.所有顶点间的最短路径---Floyd(弗洛伊德)算法 三.有向无环图的应用 1.AOV网(拓扑…

重庆一般建一个网站需要多少钱浙江省住房和城乡建设厅网站首页

一、下载 首先从boost官方主页http://www.boost.org/下载最新版boost安装包,我用的版本是boost.1.49.0 二、新建文件夹 如果是使用下载的安装包,那么请将boost安装包解压至本地新建的目录,如:F:\boost 三、编译 (1&am…

成都犀牛网站建设公司自己做的网站怎样赚钱

Rust提供了信号量(Semaphore)机制,尽管它并没有直接提供类似于某些其他编程语言中的Semaphore类。然而,你可以使用std::sync::Mutex和std::sync::Condvar(条件变量)组合来实现信号量的功能。 信号量通常用…

网站上线多久才能百度我想在阿里巴巴网站开店_怎么做

背景 职责 团队是干什么的 初步自查团队 1.公司为什么给我团队?希望我产出什么?完成对除了c端健康领域探索的研发任务,产出技术类产品 2.团队存在的独特价值是什么?研发过lx健康这款基础app,研发能力强,熟悉硬件相关技…

多网站系统wordpress登入后缀

C#委托(delegate、Action、Func、predicate)和事件 - 园子的蜗牛 - 博客园 C#之委托 - 摸鱼王 - 博客园 C函数指针与C#委托之间有何联系 - 51CTO.COM 帮你理清 C# 委托、事件、Action、Func|func|调用|action|代码_网易订阅