程序的功能是:

1,在 EPWMA1 口发出频率 10K 和 占空比为0.5 的方波

2,在GPIO34口设置捕获功能,检测发出的方波

3,freq 输出检测频率,duty输出检测占空比

main.c部分

#include "DSP2833x_Device.h"     // DSP2833x Headerfile Include File
#include "DSP2833x_Examples.h"   // DSP2833x Examples Include Filevoid ChoseCap(void);
void EPwmSetup();
void SetCap1Mode(void);
void SetCap2Mode(void);Uint32 t1=0,t2=0,t3=0,t4=0,T1=0,T2=0,t5,t6,t7,t8,T3,T4,i,led=0,freq=0,duty=1,T1_temp=1,T2_temp=1;
interrupt void ISRCap1(void);
interrupt void ISRCap2(void);
void InitCapl();void main(void)
{InitSysCtrl();InitXintf16Gpio();   //zqDINT;InitPieCtrl();IER = 0x0000;IFR = 0x0000;InitPieVectTable();EALLOW;  // This is needed to write to EALLOW protected registersPieVectTable. ECAP1_INT = &ISRCap1;//  PieVectTable. ECAP2_INT = &ISRCap2;//PieVectTable.XINT13 = &cpu_timer1_isr;//PieVectTable.TINT2 = &cpu_timer2_isr;EDIS;    // This is needed to disable write to EALLOW protected registers//EALLOW;GpioCtrlRegs.GPAMUX2.bit.GPIO26 = 0;GpioCtrlRegs.GPADIR.bit.GPIO26= 1;EDIS;GpioDataRegs.GPACLEAR.bit.GPIO26=1;InitCapl();EPwmSetup();IER |= M_INT4;//IER |= M_INT13;//IER |= M_INT14;// Enable TINT0 in the PIE: Group 4 interrupt1PieCtrlRegs.PIEIER4.bit.INTx1 = 1;//   PieCtrlRegs.PIEIER4.bit.INTx2 = 1;EINT;   // Enable Global interrupt INTMERTM;   // Enable Global realtime interrupt DBGMi=0;for(; ;){}}interrupt void ISRCap1(void)
{// Acknowledge this interrupt to receive more interrupts from group 1PieCtrlRegs.PIEACK.all = PIEACK_GROUP4;ECap1Regs.ECCLR.all=0xFFFF;//clare all flagled++;t1= ECap1Regs.CAP1;t2= ECap1Regs.CAP2;t3= ECap1Regs.CAP3;t4= ECap1Regs.CAP4;T1=t2-t1;T2=t4-t3;if(led>100){T1_temp=T1;T2_temp=T2*10;freq = (150000/T1_temp)*1000;duty = (T2_temp/T1_temp)*10;led=0;}}

EPWM.c 部分


#include "DSP2833x_Device.h"     // DSP2833x Headerfile Include File
#include "DSP2833x_Examples.h"   // DSP2833x Examples Include File#if (CPU_FRQ_150MHZ)#define CPU_CLK   150e6
#endif
#if (CPU_FRQ_100MHZ)#define CPU_CLK   100e6
#endif
#define PWM_CLK   10e3                // If diff freq. desired, change freq here.
#define SP        CPU_CLK/(2*PWM_CLK)
#define TBCTLVAL  0x200E              // Up-down cnt, timebase = SYSCLKOUTvoid EPwmSetup()
{InitEPwm1Gpio();// InitEPwm();
//  EPwm1Regs.TBSTS.all=0;EPwm1Regs.TBPHS.half.TBPHS=0;        //所有相位清零EPwm1Regs.TBCTR=0;                   //时基计数器清零EPwm1Regs.TBPRD = 750;EPwm1Regs.CMPA.half.CMPA = 375;EPwm1Regs.CMPB = 300;EPwm1Regs.TBCTL.bit.CTRMODE = 2;         //增计数EPwm1Regs.TBCTL.bit.PHSEN = TB_DISABLE;       //禁止相位控制EPwm1Regs.TBCTL.bit.PRDLD = TB_SHADOW;  // 采用影子寄存器模式EPwm1Regs.TBCTL.bit.SYNCOSEL = TB_SYNC_DISABLE; //关闭同步信号EPwm1Regs.TBCTL.bit.HSPCLKDIV = 0x05;EPwm1Regs.TBCTL.bit.CLKDIV = 0x0;EPwm1Regs.CMPCTL.bit.SHDWAMODE = CC_SHADOW;EPwm1Regs.CMPCTL.bit.SHDWBMODE = CC_SHADOW;EPwm1Regs.CMPCTL.bit.LOADAMODE = CC_CTR_ZERO;EPwm1Regs.CMPCTL.bit.LOADBMODE = CC_CTR_ZERO;EPwm1Regs.AQCTLA.bit.CAU = AQ_SET;   // CTR = 0  epwm A 置1EPwm1Regs.AQCTLA.bit.CAD = AQ_CLEAR; // CTR = CMPA epwm A 置0EPwm1Regs.AQCTLB.bit.CBU = AQ_SET;EPwm1Regs.AQCTLB.bit.CBD = AQ_CLEAR;//   EPwm1Regs.AQCTLB.all=0;
//  EPwm1Regs.AQSFRC.all=0;
//  EPwm1Regs.AQCSFRC.all=0;EPwm1Regs.DBCTL.all=0xb;          // EPWMxB is invertedEPwm1Regs.DBRED=0;EPwm1Regs.DBFED=0;EPwm1Regs.TZSEL.all=0;EPwm1Regs.TZCTL.all=0;EPwm1Regs.TZEINT.all=0;EPwm1Regs.TZFLG.all=0;EPwm1Regs.TZCLR.all=0;EPwm1Regs.TZFRC.all=0;EPwm1Regs.ETSEL.all=0;            // Interrupt when TBCTR = 0x0000EPwm1Regs.ETFLG.all=0;EPwm1Regs.ETCLR.all=0;EPwm1Regs.ETFRC.all=0;EPwm1Regs.PCCTL.all=0;}

 ECAP.C 部分

// TI File $Revision: /main/7 $
// Checkin $Date: September 20, 2007   13:30:31 $
//###########################################################################
//
// FILE:   DSP2833x_Cap_Init.c
//
// TITLE:  DSP2833x Device System Control Initialization & Support Functions.
//
// DESCRIPTION:
//
//         Example initialization of system resources.
//
//###########################################################################
// $TI Release: DSP2833x Header Files V1.01 $
// $Release Date: September 26, 2007 $
//############################################################################include "DSP2833x_Device.h"     // Headerfile Include File
#include "DSP2833x_Examples.h"   // Examples Include File
void ChoseCap(void);
void InitECapGpio();
void SetCap1Mode(void);
void SetCap2Mode(void);
void InitCapl(void);// Functions that will be run from RAM need to be assigned to
// a different section.  This section will then be mapped to a load and
// run address using the linker cmd file.#pragma CODE_SECTION(InitFlash, "ramfuncs");//---------------------------------------------------------------------------
// InitSysCtrl:
//---------------------------------------------------------------------------
// This function initializes the System Control registers to a known state.
// - Disables the watchdog
// - Set the PLLCR for proper SYSCLKOUT frequency
// - Set the pre-scaler for the high and low frequency peripheral clocks
// - Enable the clocks to the peripheralsvoid InitCapl(void)
{ChoseCap();InitECap1Gpio();
// InitECap2Gpio();SetCap1Mode();
// SetCap2Mode();
}
void ChoseCap(void)
{ SysCtrlRegs.PCLKCR1.bit.ECAP1ENCLK=1;//enable clock to Cap1//SysCtrlRegs.PCLKCR1.bit.ECAP2ENCLK=1;//SysCtrlRegs.PCLKCR1.bit.ECAP3ENCLK=1;//SysCtrlRegs.PCLKCR1.bit.ECAP4ENCLK=1;//SysCtrlRegs.PCLKCR1.bit.ECAP5ENCLK=1;//SysCtrlRegs.PCLKCR1.bit.ECAP6ENCLK=1;}
void InitECapGpio()
{InitECap1Gpio();
#if (DSP28_ECAP2)InitECap2Gpio();
#endif // endif DSP28_ECAP2
#if (DSP28_ECAP3)InitECap3Gpio();
#endif // endif DSP28_ECAP3
#if (DSP28_ECAP4)InitECap4Gpio();
#endif // endif DSP28_ECAP4
#if (DSP28_ECAP5)InitECap5Gpio();
#endif // endif DSP28_ECAP5
#if (DSP28_ECAP6)InitECap6Gpio();
#endif // endif DSP28_ECAP6
}void InitECap1Gpio(void)
{EALLOW;
/* Enable internal pull-up for the selected pins */
// Pull-ups can be enabled or disabled by the user.
// This will enable the pullups for the specified pins.
// Comment out other unwanted lines.// GpioCtrlRegs.GPAPUD.bit.GPIO5 = 0;      // Enable pull-up on GPIO5 (CAP1)//GpioCtrlRegs.GPAPUD.bit.GPIO24 = 0;     // Enable pull-up on GPIO24 (CAP1)GpioCtrlRegs.GPBPUD.bit.GPIO34 = 0;     // Enable pull-up on GPIO34 (CAP1)// Inputs are synchronized to SYSCLKOUT by default.
// Comment out other unwanted lines.//  GpioCtrlRegs.GPAQSEL1.bit.GPIO5 = 0;    // Synch to SYSCLKOUT GPIO5 (CAP1)//GpioCtrlRegs.GPAQSEL2.bit.GPIO24 = 0;   // Synch to SYSCLKOUT GPIO24 (CAP1)GpioCtrlRegs.GPBQSEL1.bit.GPIO34 = 0;   // Synch to SYSCLKOUT GPIO34 (CAP1)/* Configure eCAP-1 pins using GPIO regs*/
// This specifies which of the possible GPIO pins will be eCAP1 functional pins.
// Comment out other unwanted lines.//  GpioCtrlRegs.GPAMUX1.bit.GPIO5 = 3;     // Configure GPIO5 as CAP1//   GpioCtrlRegs.GPAMUX2.bit.GPIO24 = 1;    // Configure GPIO24 as CAP1GpioCtrlRegs.GPBMUX1.bit.GPIO34 = 1;    // Configure GPIO24 as CAP1EDIS;
}#if DSP28_ECAP2
void InitECap2Gpio(void)
{EALLOW;
/* Enable internal pull-up for the selected pins */
// Pull-ups can be enabled or disabled by the user.
// This will enable the pullups for the specified pins.
// Comment out other unwanted lines.//  GpioCtrlRegs.GPAPUD.bit.GPIO7 = 0;     // Enable pull-up on GPIO7 (CAP2)GpioCtrlRegs.GPAPUD.bit.GPIO25 = 0;    // Enable pull-up on GPIO25 (CAP2)
// GpioCtrlRegs.GPBPUD.bit.GPIO37 = 0;    // Enable pull-up on GPIO37 (CAP2)// Inputs are synchronized to SYSCLKOUT by default.
// Comment out other unwanted lines.// GpioCtrlRegs.GPAQSEL1.bit.GPIO7 = 0;    // Synch to SYSCLKOUT GPIO7 (CAP2)
GpioCtrlRegs.GPAQSEL2.bit.GPIO25 = 0;   // Synch to SYSCLKOUT GPIO25 (CAP2)
// GpioCtrlRegs.GPBQSEL1.bit.GPIO37 = 0;   // Synch to SYSCLKOUT GPIO37 (CAP2)/* Configure eCAP-2 pins using GPIO regs*/
// This specifies which of the possible GPIO pins will be eCAP2 functional pins.
// Comment out other unwanted lines.//  GpioCtrlRegs.GPAMUX1.bit.GPIO7 = 3;    // Configure GPIO7 as CAP2GpioCtrlRegs.GPAMUX2.bit.GPIO25 = 1;   // Configure GPIO25 as CAP2
// GpioCtrlRegs.GPBMUX1.bit.GPIO37 = 3;   // Configure GPIO37 as CAP2EDIS;
}
#endif // endif DSP28_ECAP2#if DSP28_ECAP3
void InitECap3Gpio(void)
{EALLOW;/* Enable internal pull-up for the selected pins */
// Pull-ups can be enabled or disabled by the user.
// This will enable the pullups for the specified pins.
// Comment out other unwanted lines.GpioCtrlRegs.GPAPUD.bit.GPIO9 = 0;      // Enable pull-up on GPIO9 (CAP3)
// GpioCtrlRegs.GPAPUD.bit.GPIO26 = 0;     // Enable pull-up on GPIO26 (CAP3)// Inputs are synchronized to SYSCLKOUT by default.
// Comment out other unwanted lines.GpioCtrlRegs.GPAQSEL1.bit.GPIO9 = 0;    // Synch to SYSCLKOUT GPIO9 (CAP3)
// GpioCtrlRegs.GPAQSEL2.bit.GPIO26 = 0;   // Synch to SYSCLKOUT GPIO26 (CAP3)/* Configure eCAP-3 pins using GPIO regs*/
// This specifies which of the possible GPIO pins will be eCAP3 functional pins.
// Comment out other unwanted lines.GpioCtrlRegs.GPAMUX1.bit.GPIO9 = 3;     // Configure GPIO9 as CAP3
// GpioCtrlRegs.GPAMUX2.bit.GPIO26 = 1;    // Configure GPIO26 as CAP3EDIS;
}
#endif // endif DSP28_ECAP3#if DSP28_ECAP4
void InitECap4Gpio(void)
{EALLOW;/* Enable internal pull-up for the selected pins */
// Pull-ups can be enabled or disabled by the user.
// This will enable the pullups for the specified pins.
// Comment out other unwanted lines.GpioCtrlRegs.GPAPUD.bit.GPIO11 = 0;   // Enable pull-up on GPIO11 (CAP4)
// GpioCtrlRegs.GPAPUD.bit.GPIO27 = 0;   // Enable pull-up on GPIO27 (CAP4)// Inputs are synchronized to SYSCLKOUT by default.
// Comment out other unwanted lines.GpioCtrlRegs.GPAQSEL1.bit.GPIO11 = 0; // Synch to SYSCLKOUT GPIO11 (CAP4)
// GpioCtrlRegs.GPAQSEL2.bit.GPIO27 = 0; // Synch to SYSCLKOUT GPIO27 (CAP4)/* Configure eCAP-4 pins using GPIO regs*/
// This specifies which of the possible GPIO pins will be eCAP4 functional pins.
// Comment out other unwanted lines.GpioCtrlRegs.GPAMUX1.bit.GPIO11 = 3;  // Configure GPIO11 as CAP4
// GpioCtrlRegs.GPAMUX2.bit.GPIO27 = 1;  // Configure GPIO27 as CAP4EDIS;
}
#endif // endif DSP28_ECAP4#if DSP28_ECAP5
void InitECap5Gpio(void)
{EALLOW;/* Enable internal pull-up for the selected pins */
// Pull-ups can be enabled or disabled by the user.
// This will enable the pullups for the specified pins.
// Comment out other unwanted lines.GpioCtrlRegs.GPAPUD.bit.GPIO3 = 0;     // Enable pull-up on GPIO3 (CAP5)
// GpioCtrlRegs.GPBPUD.bit.GPIO48 = 0;    // Enable pull-up on GPIO48 (CAP5)// Inputs are synchronized to SYSCLKOUT by default.
// Comment out other unwanted lines.GpioCtrlRegs.GPAQSEL1.bit.GPIO3 = 0;  // Synch to SYSCLKOUT GPIO3 (CAP5)
// GpioCtrlRegs.GPBQSEL2.bit.GPIO48 = 0; // Synch to SYSCLKOUT GPIO48 (CAP5)/* Configure eCAP-5 pins using GPIO regs*/
// This specifies which of the possible GPIO pins will be eCAP5 functional pins.
// Comment out other unwanted lines.GpioCtrlRegs.GPAMUX1.bit.GPIO3 = 2;   // Configure GPIO3 as CAP5
// GpioCtrlRegs.GPBMUX2.bit.GPIO48 = 1;  // Configure GPIO48 as CAP5EDIS;
}
#endif // endif DSP28_ECAP5#if DSP28_ECAP6
void InitECap6Gpio(void)
{EALLOW;/* Enable internal pull-up for the selected pins */
// Pull-ups can be enabled or disabled by the user.
// This will enable the pullups for the specified pins.
// Comment out other unwanted lines.GpioCtrlRegs.GPAPUD.bit.GPIO1 = 0;     // Enable pull-up on GPIO1 (CAP6)
// GpioCtrlRegs.GPBPUD.bit.GPIO49 = 0;    // Enable pull-up on GPIO49 (CAP6)// Inputs are synchronized to SYSCLKOUT by default.
// Comment out other unwanted lines.GpioCtrlRegs.GPAQSEL1.bit.GPIO1 = 0;  // Synch to SYSCLKOUT GPIO1 (CAP6)
// GpioCtrlRegs.GPBQSEL2.bit.GPIO49 = 0; // Synch to SYSCLKOUT GPIO49 (CAP6)/* Configure eCAP-5 pins using GPIO regs*/
// This specifies which of the possible GPIO pins will be eCAP6 functional pins.
// Comment out other unwanted lines.GpioCtrlRegs.GPAMUX1.bit.GPIO1 = 2;   // Configure GPIO1 as CAP6
// GpioCtrlRegs.GPBMUX2.bit.GPIO49 = 1;  // Configure GPIO49 as CAP6EDIS;
}
#endif // endif DSP28_ECAP6
void SetCap1Mode(void)
{ECap1Regs.ECCTL1.bit.CAP1POL = EC_RISING;ECap1Regs.ECCTL1.bit.CAP2POL = EC_RISING;ECap1Regs.ECCTL1.bit.CAP3POL = EC_RISING;ECap1Regs.ECCTL1.bit.CAP4POL = EC_FALLING;ECap1Regs.ECCTL1.bit.CTRRST1 = EC_ABS_MODE;ECap1Regs.ECCTL1.bit.CTRRST2 = EC_ABS_MODE;ECap1Regs.ECCTL1.bit.CTRRST3 = EC_ABS_MODE;ECap1Regs.ECCTL1.bit.CTRRST4 = EC_ABS_MODE;ECap1Regs.ECCTL1.bit.CAPLDEN = EC_ENABLE;ECap1Regs.ECCTL1.bit.PRESCALE = EC_DIV1;ECap1Regs.ECCTL2.bit.CAP_APWM = EC_CAP_MODE;ECap1Regs.ECCTL2.bit.CONT_ONESHT = EC_CONTINUOUS;ECap1Regs.ECCTL2.bit.SYNCO_SEL = EC_SYNCO_DIS;ECap1Regs.ECCTL2.bit.SYNCI_EN = EC_DISABLE;ECap1Regs.ECEINT.all=0x0000;//stop all interruptECap1Regs.ECCLR.all=0xFFFF;//clare all flagECap1Regs.ECCTL2.bit.TSCTRSTOP = EC_RUN;// 启动ECap1Regs.ECEINT.bit.CEVT4=1;// Enable cevt4 interrupt
}void SetCap2Mode(void)
{ECap2Regs.ECCTL1.bit.CAP1POL = EC_FALLING;ECap2Regs.ECCTL1.bit.CAP2POL = EC_FALLING;ECap2Regs.ECCTL1.bit.CAP3POL = EC_FALLING;ECap2Regs.ECCTL1.bit.CAP4POL = EC_FALLING;ECap2Regs.ECCTL1.bit.CTRRST1 = EC_ABS_MODE;ECap2Regs.ECCTL1.bit.CTRRST2 = EC_ABS_MODE;ECap2Regs.ECCTL1.bit.CTRRST3 = EC_ABS_MODE;ECap2Regs.ECCTL1.bit.CTRRST4 = EC_ABS_MODE;ECap2Regs.ECCTL1.bit.CAPLDEN = EC_ENABLE;ECap2Regs.ECCTL1.bit.PRESCALE = EC_DIV1;ECap2Regs.ECCTL2.bit.CAP_APWM = EC_CAP_MODE;ECap2Regs.ECCTL2.bit.CONT_ONESHT = EC_CONTINUOUS;ECap2Regs.ECCTL2.bit.SYNCO_SEL = EC_SYNCO_DIS;ECap2Regs.ECCTL2.bit.SYNCI_EN = EC_DISABLE;ECap2Regs.ECEINT.all=0x0000;//stop all interruptECap2Regs.ECCLR.all=0xFFFF;//clare all flagECap2Regs.ECCTL2.bit.TSCTRSTOP = EC_RUN;// 启动ECap2Regs.ECEINT.bit.CEVT4=1;// Enable cevt4 interrupt
}
//===========================================================================
// End of file.
//===========================================================================

F28335 eCAP配置代码(自发自检)相关推荐

  1. 支付宝支付 第十二集:狂神、飞哥支付宝支付配置代码(免费资源,拿走不谢)

    支付宝支付 第十二集:狂神.飞哥支付宝支付配置代码(免费资源,拿走不谢) 一.资源 链接:https://pan.baidu.com/s/1S-VAAMxiaPkgb2XZMQYEjA 提取码:091 ...

  2. Maven 配置文件 POM 的常用插件配置代码

    Maven 配置文件 POM 的常用插件配置代码 普通 将 Maven 多模块依赖集成打进一个 JAR 包(方法 1) 将 Maven 多模块依赖集成打进一个 JAR 包(方法 2) 生成单入口类 J ...

  3. Maven 配置文件 POM 的常用依赖配置代码

    Maven 配置文件 POM 的常用依赖配置代码 Lombok 测试 Junit 5 日志 Log4j2 & SLF4J & Lombok Spring Bean Spring Boo ...

  4. thinkphp 关联模型配置代码

    原文:thinkphp 关联模型配置代码 <?php /*** 公司与部门关联模型*/ class CompanyRelationModel extends RelationModel{//主表 ...

  5. 小白求答疑,在vs连接数据库的一段配置代码有问题

    小白求答疑解难 vs连接数据库的一段配置代码有问题 图片:

  6. STM32 外部中断详解(原理+配置代码)

    本文介绍了STM32基于标准外设库的外部中断配置,以及基于参考手册如何更加寄存器配置外部中断 文章目录 1 前言 2 STM32的外部中断 3 中断服务函数的映射关系 4 外部中断的配置 5 寄存器的 ...

  7. jupyter 安装与配置代码提示功能

    jupyter 安装与配置代码提示功能 先进行jupyter 安装 pip install jupyter 测试是否安装成功,运行jupyter jupyter notebook jupyter安装提 ...

  8. OV4689摄像头(MIPI)配置代码

    OV4689配置代码 ,芯片规格书,OV4689,400万像素. OV4689摄像头(MIPI) Copyright o2o13 OmniVision Technologies, Inc.Allrig ...

  9. STM32+BM8563时钟芯片不走时问题解决(含配置代码)

    STM32+BM8563时钟芯片不走时问题解决(含配置代码) 一.寄存器 BM8563是一款低功耗CMOS实时时钟/日历芯片,它提供一个可编程的时钟输出,一个中断输出和一个掉电检测器,所有的地址和数据 ...

  10. 饥荒联机版Mod开发——配置代码环境(二)

    饥荒联机版Mod开发--配置代码环境(二) 前言 下载VS Code和Lua插件 建立工作区 配置Lua插件 Git和GitHub(可选) 排除多余文件 删除scripts里多余文件 VS Code快 ...

最新文章

  1. 解读 | 2019年10篇计算机视觉精选论文(中)
  2. 我的世界java版幻翼_我的世界:熬夜3天能见到“幻翼”?你错了,还要满足这7个条件!...
  3. 小程序---模板的引用与使用
  4. 树状数组c语言模板,【树状数组】Cows (POJ2481) PASCAL 解题报告
  5. VDP文件级恢复需要在用VDP备份的机器上浏览
  6. https://zeplin.io/ 设计图标注及切图
  7. POJ-1384 Piggy-Bank 多重背包变形
  8. Linux 进程后台运行
  9. 2016/9/23总结电脑内容
  10. mysql查询语句有点难_Mysql惯用函数,难点,注意_mysql
  11. 27muduo_net库源码分析(三)
  12. Tomcat(Install)
  13. python列表字典元祖_python列表,字典,元组常用方法和集合
  14. 语言文件怎么放电脑c盘,电脑c盘怎么格式化
  15. 我的NVIDIA开发者之旅——Caffe教程(2)[Jetson TK1]Caffe工具环境(Linux)搭建实例
  16. [黑苹果]黑苹果折腾记 -- 升级10.14.6 macOS Mojave
  17. 实测分析免费建站软件有哪些?哪个最好?
  18. 使用金蝶云星空(以前叫:金蝶K3 CLOUD)后,感觉像踩进了一个坑
  19. 大数据分析师的报考条件是什么?
  20. windows bat脚本实现ftp自动下载 删除

热门文章

  1. 大连新知源09年3月RHCE考试通过率90.9% —— 注重能力培养
  2. C++ GBD调试
  3. lwIP配置宏整理(部分)
  4. OKR-Periods of Words
  5. tomcat 配置文件 conf/server.xml 中的 appBase和docBase
  6. 【OpenCV入门教程之五】 分离颜色通道 多通道图像混合
  7. python基础----Day07
  8. 005_软件安装之_常用办公软件
  9. win10系统启动wifi服务器,windows10系统下开启wifi共享的两种方法
  10. 2021年全国职业院校技能大赛 “大数据技术与应用”—模拟赛题(四)