中颖51芯片学习3. 定时器
中颖51芯片学习3. 定时器
- 一、SH79F9476定时器简介
- 1. 简介
- 2. 定时器运行模式
- 二、定时器2
- 1. 说明
- (1)时钟
- (2)工作模式
- 2. 寄存器
- (1)控制寄存器 T2CON
- (2)定时器2模式控制寄存器 T2MOD
- 3. 工作方式0
- (1)16位捕获说明
- (2)代码实现
- 4. 工作方式1
- (1)16位自动重载定时器说明
- 当DCEN = 0,通过在T2CON中的EXEN2位选择两个选项。
- 设置DCEN位允许定时器2递增计数或递减计数。当DCEN = 1时,T2EX引脚控制计数的方向,而EXEN2控制无效。
- (2)代码实现
- 5. 工作方式2 可编程时钟输出
- (1)功能介绍
- (2)软件实现
- 三、其它定时器介绍
- 1. 定时器3
- 2. 定时器4
- 启用 TIMER4_OUT
- 启用 TIMER4_EDGETRIG
- 3. 定时器5
一、SH79F9476定时器简介
1. 简介
SH79F9476芯片具有多个定时器模块,包括定时器/计数器、PWM(脉冲宽度调制)定时器等,定时器可以配置为在计时达到特定值时触发中断,以便处理紧急事件或执行特定的任务。
2. 定时器运行模式
- MODE0 16位捕捉模式;
- MODE1 16位重载方式;
- MODE2 可编程时钟输出模式
- 上升沿多次触发模式
具体地看,SH79F9476 有定时器 2,定时器 3,定时器 4 和定时器 5 四个定时器,其中:
- 定时器 2 可配置为 16 位捕捉功能、16 位重载方式或可编程时钟输出方式;
- 定时器 3 可配置为 16 位自动重载定时/计数器,且可以工作在掉电模式;
- 定时器 4 可配置为 16 位自动重载定时器或带边沿触发的 16 位自动重载定时器;两个数据寄存器TH4和TL4可作为一个16位寄存器来访问;
- 定时器 5 可配置为 16 位的自动重载定时器。
二、定时器2
1. 说明
定时器2有两个数据寄存器TH2和TL2,可以作为一个16位寄存器来使用,由寄存器T2CON和T2MOD控制;
定时器2的中断使能位是: IEN0寄存器中的ET2位。
(1)时钟
C/T2选择系统时钟(定时器)或外部引脚 T2 (计数器)作为定时器时钟输入。通过所选的引脚设置TR2允许定时器2/计数器2数据寄存器计数。
可配置寄存器T2MOD中的TCLKP2位选择系统时钟或系统时钟的1/12作为定时器2的时钟源。
(2)工作模式
定时器2支持3种工作方式:
- 捕获/重载
- 带递增或递减计数器的自动重载方式
- 可编程时钟输出
可以通过寄存器配置定时器2的工作方式:
C/T2 | T2OE | DCEN | TR2 | CP/RL2 | 方式 | 描述 |
---|---|---|---|---|---|---|
X | 0 | X | 1 | 1 | 0 | 16位捕获 |
X | 0 | 0 | 1 | 0 | 1 | 16位自动重载定时器 |
X | 0 | 1 | 1 | 0 | 1 | 16位自动重载定时器 |
0 | 1 | X | 1 | X | 2 | 可编程时钟 |
1 | 1 | X | 1 | X | 不推荐使用 | |
X | X | X | 0 | X | X | 定时器2停止,T2EX通路仍旧允许 |
2. 寄存器
(1)控制寄存器 T2CON
C8H | 第7 位 | 第6 位 | 第5 位 | 第4 位 | 第3 位 | 第2 位 | 第1 位 | 第0 位 |
---|---|---|---|---|---|---|---|---|
T2CON | TF2 | EXF2 | - | - | EXEN2 | TR2 | C/T2 | CP/RL2 |
读/ 写 | 读/写 | 读/写 | - | - | 读/写 | 读/写 | 读/写 | 读/写 |
复位值(POR/WDT/LVR/PIN) | 0 | 0 | - | - | 0 | 0 | 0 | 0 |
位功能:
位编号 | 位符号 | 说明 |
---|---|---|
7 | TF2 | 定时器2 溢出标志位 0:无溢出(必须由软件清0) 1:溢出(由硬件设1) |
6 | EXF2 | T2EX 引脚外部事件输入(下降沿)被检测到的标志位 0:无外部事件输入(必须由软件清0) 1:检测到外部输入(如果EXEN2 = 1,由硬件设1) |
3 | EXEN2 | T2EX 引脚上的外部事件输入(下降沿)用作重载/ 捕获触发器允许/ 禁止控制位 0:忽略T2EX引脚上的事件 1:检测到T2EX引脚上一个下降沿,产生一个捕获或重载 |
2 | TR2 | 定时器2 开始/ 停止控制位 0:停止定时器2 1:开始定时器2 |
1 | C/T2 | 定时器2 定时器/ 计数器方式选定位 0:定时器方式,T2引脚用作I/O端口 1:计数器方式,内部上拉电阻被打开 |
0 | CP/RL2 | 捕获/ 重载方式选定位 0:16位带重载功能的定时器/计数器 1:16位带捕获功能的定时器/计数器 |
(2)定时器2模式控制寄存器 T2MOD
C9H | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|---|
T2MOD | TCLKP2 | - | - | - | - | T2OE | DCEN | |
读/写 | 读/写 | 读/写 | - | - | - | - | 读/写 | 读/写 |
复位值(POR/WDT/LVR/PIN) | 0 | - | - | - | - | - | 0 | 0 |
位定义:
位编号 | 位符号 | 说明 |
---|---|---|
7 | TCLKP2 | 分频选择控制位 0:选择系统时钟的1/12作为定时器2的时钟源 1:系统时钟作为定时器2的时钟源 |
1 | T2OE | 定时器2 输出允许位 0:设置P1.3/T2作为时钟输入或I/O端口 1:设置P1.3/T2作为时钟输出 |
0 | DCEN | 递减计数允许位 0:禁止定时器2作为递增/递减计数器,定时器2仅作为递增计数器 1:允许定时器2作为递增/递减计数器 |
3. 工作方式0
(1)16位捕获说明
16位的捕获模式下,T2CON按制寄存器的EXEN2位有两个选项:
- 0:定时器2作为16位定时器或计数器,如果ET2被允许,定时器2能设置TF2溢出产生一个中断;
- 1:定时器操作与上相同,另外在外部输入T2EX上的下降沿也能引起在TH2和TL2中的当前值分别被捕获到RCAP2H和RCAP2L中;此外,在T2EX上的下降沿也能引起在T2CON中的EXF2被设置; 如果ET2被允许,EXF2位也像TF2一样产生一个中断。
流程框图:
(2)代码实现
下面的测试让TIMER2工作在16位捕获模式,系统时钟 Option 选择“内部 128kHz RC 振荡器作为振荡器 1,24MHz 内部 RC 作为振荡器 2”,如图所示:
测试代码:
#include "SH79F9476.h"
#include "cpu.h"
#include "intrins.h"
#include "api_ext.h"void main()
{// 时钟设置高速模式CLKCON = 0x08;Delay();CLKCON |= 0x04;// P0.0,P0.1设置为输出P0CR = 0x03;P0 = 0x00;// TIMER2 16位捕获模式// 允许所有中断IEN0 |= 0x80;// 打开定时器2中断IEN1 |= 0x04;// 检测到T2EX 引脚上一个下降沿,产生一个捕获或重载T2CON = 0x08;// 设置定时器2工作在捕获模式T2CON |= 0x01;// 设置系统时钟12分频作为定时器时钟源T2MOD = 0x00;TL2 = 0x00;TH2 = 0x00;// BIT2 启动定时器T2CON |= 0x04; while(1);
}
// TIMER2的中断
void INT_TIMER2(void) interrupt 9{_push_(INSCON);Select_Bank0();// 定时器溢出if(T2CON & 0x80){// 溢出标志位清0T2CON &= 0x7F;// 翻转P0_0P0_0 = ~P0_0;} // 检测到外部事件下降沿if(T2CON & 0x40){// 1011 1111, T2EX引脚外部事件被检测到的标志位清0T2CON &= 0xBF;// 翻转P0_1P0_1 = ~P0_1;}_pop_(INSCON);
}
测试代码中启动 T2EX(P1_1) 下降沿捕捉功能;全速运行后,T2EX(P1_1)口灌 1kHz 座号,观察:
- P1_1 的下降沿 P0_1 状态会发生改变,频率为 500Hz。
- P0_0 频率1000/0xFFFF(即65535),约为15.259Hz。
输入信号:
P0_1输出信号:
P0_0输出信号:
4. 工作方式1
(1)16位自动重载定时器说明
在16位自动重载方式下,定时器2可以被选为递增计数或递减计数。这个功能通过T2MOD中的DCEN位(递减计数允许)选择。
系统复位后,DCEN位复位值为0,定时器2默认递增计数。当设置DCEN时,定时器2递增计数或递减计数取决于T2EX引脚上的电平。
当DCEN = 0,通过在T2CON中的EXEN2位选择两个选项。
- 如果EXEN2 = 0,定时器2递增到0FFFFH,在溢出后置起TF2位,同时定时器自动将用户软件写好的寄存器RCAP2H和
RCAP2L的16位值装入TH2和TL2寄存器。 - 如果EXEN2 = 1,溢出或在外部输入T2EX上的下降沿都能触发一个16位重载,置起EXF2位。如果ET2被使能,TF2和EXF2
位都能产生一个中断。
设置DCEN位允许定时器2递增计数或递减计数。当DCEN = 1时,T2EX引脚控制计数的方向,而EXEN2控制无效。
- T2EX置1可使定时器2递增计数。定时器向0FFFFH溢出,然后设置TF2位。溢出也能分别引起RCAP2H和RCAP2L上的16
位值重载入定时器寄存器。 - T2EX清0可使定时器2递减计数。当TH2和TL2的值等于RCAP2H和RCAP2L的值时,定时器溢出。置起TF2位,同时0FFFFH
重载入定时器寄存器。
无论定时器2溢出,EXF2位都被用作结果的第17位。在此工作方式下,EXF2不作为中断标志。
(2)代码实现
下面代码示例中,系统时钟 Option 选择“内部 128kHz RC 振荡器作为振荡器 1,24MHz 内部 RC 作为振荡器 2”,启动自动重载功能;
程序启动后,在P0_0引脚输出1k频率方波。
P0 端口翻转一次的时间为:
t = (0xFFFF-TH2TL2)1/24 us。
计算频率为: 1/(t2) Hz
#include "SH79F9476.h"
#include "cpu.h"
#include "intrins.h"
#include "api_ext.h"void main()
{// 时钟设置高速模式CLKCON = 0x08;Delay();CLKCON |= 0x04;// P0.0,P0.1设置为输出P0CR = 0x03;P0 = 0x00;// 允许所有中断IEN0 |= 0x80;// 打开定时器2中断 IEN1 |= 0x04;// 设置定时器工作在重载模式,忽略T2EX引脚检测T2CON = 0; // 选择定时器为递增定时器,时钟源为系统时钟(未使用1/12分频)T2MOD = 0x80; // 这里 0xD11F递增到0xFFFF溢出,差值12000,下面公式里24是频率24M// 定时12000*1/24=500usTL2 = 0x1F; TH2 = 0xD1;// 重载计数器 ValueRCAP2L = 0x1F; RCAP2H = 0xD1;// 启动定时器T2CON |= 0x04; while (1);
}
// TIMER2的中断
void INT_TIMER2(void) interrupt 9
{_push_(INSCON);Select_Bank0();// 定时器溢出if (T2CON & 0x80){// 溢出标志位清0T2CON &= 0x7F;// 翻转P0_0P0_0 = ~P0_0;}// 检测到外部事件下降沿if (T2CON & 0x40){// 1011 1111, T2EX引脚外部事件被检测到的标志位清0T2CON &= 0xBF;// 翻转P0_1P0_1 = ~P0_1;}_pop_(INSCON);
}
5. 工作方式2 可编程时钟输出
(1)功能介绍
T2端口可以编程输出50%的占空比时钟周期。清C/T2位和置T2OE位,使定时器2作为时钟发生器。TR2位启动和中止定时器。
时钟频率为:
F = 1 2 ∗ 2 ∗ f S Y S 65536 − [ R C A P 2 H , R C A P 2 L ] F = \frac{1}{2*2} * \frac{f_{SYS}}{65536-[RCAP2H,RCAP2L]} F=2∗21∗65536−[RCAP2H,RCAP2L]fSYS
定时器2溢出不产生中断,所以定时器2可以作时钟输出。
功能框图:
(2)软件实现
下面示例中,系统时钟 Option 选择“内部 128kHz RC 振荡器作为振荡器 1,24MHz 内部 RC 作为振荡器 2”。
#include "SH79F9476.h"
#include "cpu.h"
#include "intrins.h"
#include "api_ext.h"void main()
{// 时钟设置高速模式CLKCON = 0x08;Delay();CLKCON |= 0x04;// P0.0,P0.1设置为输出P0CR = 0x03;P0 = 0x00;// 关闭定时器2中断IEN1 &= 0xFB; T2CON = 0;// P13作为T2输出T2MOD = 0x82; // 系统时钟为24M,可产生100Hz的时钟 f=(1/4)*(Fsys/(65536-[RCAP2H,RCAP2L]))RCAP2L = 0xA0; RCAP2H = 0x15;TL2 = 0xA0;TH2 = 0x15;// 启动定时器T2CON |= 0x04; while (1);
}
// TIMER2的中断
void INT_TIMER2(void) interrupt 9
{_push_(INSCON);Select_Bank0();// 定时器溢出if (T2CON & 0x80){// 溢出标志位清0T2CON &= 0x7F;// 翻转P0_0P0_0 = ~P0_0;}// 检测到外部事件下降沿if (T2CON & 0x40){// 1011 1111, T2EX引脚外部事件被检测到的标志位清0T2CON &= 0xBF;// 翻转P0_1P0_1 = ~P0_1;}_pop_(INSCON);
}
程序运行后,T2 输出口(P1_3)输出 100Hz 频率时钟。
输出波形如下图所示:
三、其它定时器介绍
1. 定时器3
定时器3是16位自动重载定时器,通过两个数据寄存器TH3和TL3访问,由T3CON寄存器控制。IEN0寄存器的ET3位置1允许定时器3中断。
定时器3只有一种工作方式: 16位自动重载计数器/定时器。
代码示例:
IEN0 |= 0xA0; //打开定时器3中断_push_(INSCON);Select_Bank1();T3CON = 0x02; //外部32.768kHz/128kHz为时钟源,1分频//配置定时器的初值为0xfffe,溢出时间为2个128kHz时钟TL3 = 0xfe; TH3 = 0xff;T3CON |=0x04; //启动定时器3_pop_(INSCON);void INT_TIMER3(void) interrupt 5
{ _push_(INSCON);Select_Bank0();P0_0 = ~P0_0;_pop_(INSCON);
}
系统时钟 Option 选择“内部 128kHz RC 振荡器作为振荡器 1,24MHz内部 RC 作为振荡器 2”,全速运行后,T3 时钟为低频 128k 时钟,P0_0 引脚输出 32k 频率方波。
2. 定时器4
定时器4是16位自动重载定时器。通过两个数据寄存器TH4和TL4访问,由T4CON寄存器控制。IEN1寄存器的ET4位置1允许定时器4中断。
定时器4有2种工作方式: 16位自动重载定时器和有T4边沿触发的16位自动重载定时器。
官方代码示例:
void init_timer4()
{IEN0 |= 0x84; //EA,ET4,中断使能_push_(INSCON);Select_Bank1();#ifdef TIMER4_OUTT4CON = 0x40; //T4引脚输出//配置定时器的初值为0x8000,T4引脚输出周期为2*0x8000个系统时钟的方波TL4 = 0x00; TH4 = 0x80;#endif#ifdef TIMER4_EDGETRIGT4CON = 0x48; //T4上升沿触发,且可以多次触发TL4 = 0x00;TH4 = 0x00;#endifT4CON |=0x02; //启动定时器4Select_Bank0();_pop_(INSCON);
}void INT_TIMER4(void) interrupt 2
{ _push_(INSCON);Select_Bank0();P0_0 = ~P0_0;_pop_(INSCON);
}
启用 TIMER4_OUT
系统时钟 Option 选择“内部 128kHz RC振荡器作为振荡器1,24MHz内部RC作为振荡器2”,全速运行后,时钟为系统时钟,T4引脚(P1_1)输出周期为 2.7302ms 方波。
启用 TIMER4_EDGETRIG
系统时钟 Option 选择“内部 128kHzRC 振荡器作为振荡器 1,24MHz 内部 RC 作为振荡器 2”,全速运行后:
向 T4(P1_1)输入一个上升沿,P0.0状态翻转一次;向T4 (P1_1)输入周期性的上升沿,若周期小于T4定时时间(2.7302ms),
T4 将一直处于重新计时状态,P0.0 将无波形输出;若周期大于 T4 定时时间(2.7302ms),P0.0输出方波。
3. 定时器5
定时器5是16位自动重载定时器。通过两个数据寄存器TH5和TL5访问,由T5CON寄存器控制。IEN0寄存器的ET5位置1允许定时器5中断。
定时器5有一种工作方式:16位自动重载定时器。
官方代码示例:
void init_timer5()
{IEN0 |= 0x88; //EA, ET5_push_(INSCON);Select_Bank1();//配置定时器的初值为0xD120,溢出时间为0x2EE0个系统时钟TL5 = 0x20; TH5 = 0xD1;T5CON |=0x02; //启动定时器5_pop_(INSCON);
}void INT_TIMER5(void) interrupt 3
{ _push_(INSCON);Select_Bank0();P0_0 = ~P0_0;_pop_(INSCON);
}
系统时钟 Option 选择“内部 128kHz RC 振荡器作为振荡器 1,24MHz
内部 RC 作为振荡器 2”,运行后时钟为系统时钟,P0_0 引脚输出 1kHz 频率方波。
本文学习资源来自中颖官网芯片文档
本文代码开源地址: https://gitee.com/xundh/learn-sinowealth-51
相关文章:

中颖51芯片学习3. 定时器
中颖51芯片学习3. 定时器 一、SH79F9476定时器简介1. 简介2. 定时器运行模式 二、定时器21. 说明(1)时钟(2)工作模式 2. 寄存器(1)控制寄存器 T2CON(2)定时器2模式控制寄存器 T2MOD …...

[python] Numpy库用法(持续更新)
先导入一下 import numpy as np 一、np.random用法 生成随机整数:np.random.randint(low, high, size) low: 最小值high: 最大值size: 生成的数组大小(可以是多维,下面同理) 生成随机浮点数:np.random.uniform(low, …...

vue快速入门(十七)v-model数据双向绑定修饰符
注释很详细,直接上代码 上一篇 新增内容 v-model.trim 自动去除首尾空格v-model.number 自动转换成数字类型 源码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" con…...

2024-2025年申报各类科研项目基金撰写及技巧
随着社会经济发展和科技进步,基金项目对创新性的要求越来越高。申请人需要提出独特且有前瞻性的研究问题,具备突破性的科学思路和方法。因此,基金项目申请往往需要进行跨学科的技术融合。申请人需要与不同领域结合,形成多学科交叉…...

Python基于Django的微博热搜、微博舆论可视化系统,附源码
博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…...

【Linux学习】初识Linux指令(一)
文章目录 1.指令操作与图形化界面操作1.什么是指令操作,什么是图形化界面操作? 2.Linux下基本指令1.Linux下的复制粘贴2.Linux两个who命令3.补充知识4.pwd指令5. ls 指令6.cd 指令1.目录树2.相对路径与绝对路劲3.常用cd指令 7.tree指令8. touch指令9.sta…...

基于Python实现盈利8371%的交易策略
本文介绍了通过Python和Benzinga API构建自动化交易策略的方法,帮助交易者方便的回测交易策略。原文: An Algo Trading Strategy which made 8,371%: A Python Case Study Behnam Norouzi Unsplash 导言 传统自动化交易策略(如均线交叉或 RSI 临界点突破策略)已被证…...

如何在Linux中找到正在运行的Java应用的JAR文件
当你在Linux服务器上工作时,可能需要找到某个正在运行的Java应用的JAR文件位置。这对于诊断问题、更新应用或理解部署结构非常有用。以下是一个步骤详细的指南,帮助你找到这些信息。 1. 确定Java进程 首先,你需要确定正在运行的Java应用的进…...

几分钟学会TypeScript
目录 一、类型推断和类型注解二.类型注解,声明时指定类型三、类型断言四、基础类型和联合类型字符串数字和浮点类型布尔空和undefined多类型值限定 五、数组 元组 枚举数组元组,?代表可选参数枚举枚举使用 六、函数函数作为参数 七、类、接口与抽象类类访问修饰符类…...

最新版手机软件App下载排行网站源码/App应用商店源码
内容目录 一、详细介绍二、效果展示1.部分代码2.效果图展示 三、学习资料下载 一、详细介绍 一款简洁蓝色的手机软件应用app下载排行,app下载平台,最新手机app发布网站响应式织梦模板。 主要有:主页、app列表页、app介绍详情页、新闻资讯列…...

R语言计算:t分布及t检验
t分布理论基础 t分布也称Student’s t-distribution,主要出现在小样本统计推断中,特别是当样本量较小且总体标准差未知时,用于估计正态分布的均值。其定义基于正态分布和 X 2 X^{2} X2分布(卡方分布)。如果随机变量X服…...

uni-app的地图定位与距离测算功能的实现
文章目录 一、引言二、uni-app地图定位实现三、距离测算技术四、完整代码五、结论本文着重探讨了如何在uni-app中实现地图定位,以及如何计算当前定位与目标位置之间的距离。 一、引言 在移动应用开发中,地图定位与距离测算是常见的功能需求。无论是出行导航、位置签到,还是…...

如何从应用商店Microsoft Store免费下载安装HEVC视频扩展插件
在电脑上打开一张HEIC类型的图片提示缺少HEVC解码器,无法打开查看,现象如下: 这种情况一般会提示我们需要下载安装HEVC解码器,点击“立即下载并安装”会跳转到应用商店,但是我们发现需要付费7元才能下载安装 免费安装…...

【vue】v-if 条件渲染
v-if 不适用于频繁切换显示模式的场景 修改web.user,可看到条件渲染的效果 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initi…...

Day37:LeedCode 738.单调递增的数字 968.监控二叉树 蓝桥杯 翻转
738. 单调递增的数字 当且仅当每个相邻位数上的数字 x 和 y 满足 x < y 时,我们称这个整数是单调递增的。 给定一个整数 n ,返回 小于或等于 n 的最大数字,且数字呈 单调递增 。 示例 1: 输入: n 10 输出: 9 思路: 假设这个数是98,…...

详解Qt元对象系统
Qt库作为一款流行的跨平台C应用程序开发框架,其中的元对象系统是其核心特性之一。Qt元对象系统不仅提供了诸如信号槽(Signals & Slots)、属性系统(Property System)等功能,还实现了对C对象的运行时类型…...

无法用raven-js,如何直接使用TraceKit标准化错误字符串(一次有趣的探索)
引子:网上三年前(2020)的文章介绍了一个raven-js 简单说就是把堆栈信息格式化兼容各浏览器,便于查看错误来源。 **but:**到处找了一下raven-js,已经没有官方出处了,只在Sentry的源码仓库里发现…...

Docker学习笔记(二):在Linux中部署Docker(Centos7下安装docker、环境配置,以及镜像简单使用)
一、前言 记录时间 [2024-4-6] 前置文章:Docker学习笔记(一):入门篇,Docker概述、基本组成等,对Docker有一个初步的认识 在上文中,笔者进行了Docker概述,介绍其历史、优势、作用&am…...

uniapp 检查更新
概览 在uniapp中检查并更新应用,可以使用uni-app自带的更新机制。以下是一个简单的示例代码,用于在应用启动时检查更新: // 在App.vue或者其他合适的地方调用 onLaunch: function() {// 当uni-app初始化完成时执行// 判断平台const platfor…...

(Java)数据结构——正则表达式
前言 本博客是博主用于复习数据结构以及算法的博客,如果疏忽出现错误,还望各位指正。 正则表达式概念 正则表达式,又称规则表达式(Regular Expression),是一种文本模式,包括普通字符…...

第6章 6.3.1 正则表达式的语法(MATLAB入门课程)
讲解视频:可以在bilibili搜索《MATLAB教程新手入门篇——数学建模清风主讲》。 MATLAB教程新手入门篇(数学建模清风主讲,适合零基础同学观看)_哔哩哔哩_bilibili 正则表达式可以由一般的字符、转义字符、元字符、限定符等元素组…...

RX8130CE为用户提供带复位延迟和主备电管理的解决方案
实时时钟作为设备的精确时钟来源,其作用如同人的心脏,为设备提供准确稳定的心跳.而便携式设备由于应用场景多变,所以对内部元器件要求也相对较高,这就对作为核心器件的实时时钟模块提出不少挑战。EPSON实时钟模块产品线拥有丰富的…...

JS文件导出变量
如果 config.js 文件中有多个变量要导出,你可以按照以下步骤进行: 1. 在 config.js 文件中定义多个变量,并使用 export 导出它们。 // config.js const baseUrl "http://localhost:8081"; const apiKey "your_api_key&quo…...

已知私钥和密文,如何用python进行RSA解密
要使用Python进行RSA解密,你可以使用pycryptodome库。下面是一个简单的示例,展示了如何使用已知的私钥和密文进行RSA解密: 首先,确保你已经安装了pycryptodome库。如果没有安装,你可以通过运行pip install pycryptodome来安装它。 然后,你可以使用以下代码进行RSA解密:…...

vue2-vue3面试
v-text/v-html/v-once/v-show/v-if/v-for/v-bind/v-on beforeCreate() 已有DOM节点:可以data选项:不可以虚拟DOM节点:不可以 created():掌握 已有DOM节点:可以data选项:可以虚拟DOM节点:不可以 beforeMount…...

jmeter生成随机数的详细步骤及使用方式
Apache JMeter 是一个用于测试性能的开源工具,它可以模拟多种类型的负载并测量应用程序的性能。在 JMeter 中生成随机数可以通过使用预定义的函数来实现。以下是生成随机数的详细步骤及使用方式: 安装 JMeter: 首先,你需要在你的计…...

速盾:为什么会出现高防cdn?它适合哪些行业?
随着互联网的不断发展和普及,网络安全问题也变得日益突出。由于互联网的特性,许多企业和组织的在线业务往往面临来自网络攻击的威胁,如DDoS攻击、恶意爬虫等。为了保护在线业务的正常运行和用户数据的安全,高防CDN应运而生。 高防…...

GB∕T 25058-2019 信息安全技术 网络安全等级保护实施指南
GB∕T 25058-2019 信息安全技术 网络安全等级保护实施指南...

使用Nodejs + express连接数据库mongoose
文章目录 先创建一个js文档安装 MongoDB 驱动程序:引入 MongoDB 模块:设置数据库连接:新建一个表试试执行数据库操作:关闭数据库连接: 前面需要准备的内容可看前面的文章: Express框架搭建项目 node.js 简单…...

朗致集团面试-Java架构师
总结 三轮面试,第一轮是逻辑测试性格测试,第二轮是技术面试(面试官-刘老师),第三轮是CTO面试(面试官-屠老师)。如果第三轮面试通过,考官会问你薪资意向,如果满意的话HR就…...