STM32入门笔记(03):STM32F103C8T6定时器的输入捕获模式和编码器模式(SPL库函数版)
目录
- 1.定时器的输入捕获模式
- 定时器输入捕获实验
- 代码实现
- 程序说明
- 实现思路
- 实现效果
- 知识要点
- 2.定时器的编码器模式
- 定时器编码器实验
- 代码实现
- 实验思路
- 知识要点
- 参考资料
先导知识
- [1] STM32入门笔记(02):定时器之定时器中断、输入捕获和PWM输出(SPL库函数版)
1.定时器的输入捕获模式
本实验以 STM32F103C8T6 捕获 PB0(TIM3_CH3
)引脚 高电平时间长度为例讲解定时器输入捕获。
按键一端接 PB0引脚,按键另一端接 3.3V 引脚,按键按下时 PB0引脚就会接通高电平。
定时器输入捕获实验
代码实现
TIMER.h
#ifndef __TIMER_H
#define __TIMER_H
#include "sys.h"
#include "stm32f10x_tim.h"void TIM3_Cap_Init(u16 arr,u16 psc);#endif
TIMER.c
#include "TIMER.h"
#include "usart.h"//定时器3通道3输入捕获配置初始化函数
void TIM3_Cap_Init(u16 arr,u16 psc)
{ //定义相关结构体GPIO_InitTypeDef GPIO_InitStructure; //定义一个GPIO初始化的结构体TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; //定义一个定时器初始化的结构体TIM_ICInitTypeDef TIM3_ICInitStructure; //定义一个定时器捕获输入初始化的结构体NVIC_InitTypeDef NVIC_InitStructure; //定义一个中断优先级初始化的结构体//使能相关时钟RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); //使能TIM3时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); //使能GPIOB时钟//初始化 GPIOB0GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; //PB0 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD; //下拉输入,默认低电平,可以被外部电压拉高为高电平GPIO_Init(GPIOB, &GPIO_InitStructure); //根据GPIO_InitStructure的参数初始化GPIOB0GPIO_ResetBits(GPIOB,GPIO_Pin_0); //初始化PB0为低电平//初始化定时器TIM3TIM_TimeBaseStructure.TIM_Period = arr; //设定计数器自动重装值 TIM_TimeBaseStructure.TIM_Prescaler =psc; //预分频器 TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; //设置时钟分割:TDTS = Tck_timTIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; //TIM向上计数模式TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); //根据TIM_TimeBaseInitStruct的参数初始化定时器TIM3//初始化TIM3输入捕获参数TIM3_ICInitStructure.TIM_Channel = TIM_Channel_3; //输入捕获通道3TIM3_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Rising; //上升沿捕获TIM3_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI; //映射到TI3上TIM3_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1; //配置输入分频为不分频,分频决定几个捕获事件触发中断服务函数TIM3_ICInitStructure.TIM_ICFilter = 0x00;//IC1F=0000 配置输入滤波器为不滤波TIM_ICInit(TIM3, &TIM3_ICInitStructure); //根TIM3_ICInitStructure参数初始化定时器TIM3输入捕获//中断分组初始化NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn; //TIM3中断NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 3; //先占优先级3级NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3; //从优先级3级NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //中断使能NVIC_Init(&NVIC_InitStructure); //根据NVIC_InitStruct中指定的参数初始化外设NVIC寄存器TIM_ITConfig(TIM3,TIM_IT_Update|TIM_IT_CC3,ENABLE);//允许TIM3更新中断|允许TIM3通道3捕获中断 TIM_Cmd(TIM3, ENABLE ); //使能定时器2
}u8 falling_flag=0; //下降沿捕获标志
u16 TIM3CH3_CAPTURE_VAL; //输入捕获计数值//定时器3中断服务程序
void TIM3_IRQHandler(void)
{ if(TIM_GetITStatus(TIM3, TIM_IT_CC3)&&falling_flag==0) //发生捕获事件&&捕获事件为上升沿(按键按下,B0接通高电平){ TIM_OC3PolarityConfig(TIM3,TIM_ICPolarity_Falling); //设置为下降沿捕获falling_flag=1; //更新标志TIM_SetCounter(TIM3,0); //清除计数 //TIM3->CNT=0; //清除计数} else if(TIM_GetITStatus(TIM3, TIM_IT_CC3)&&falling_flag==1) //发生捕获事件&&捕获事件为下降沿{ TIM3CH3_CAPTURE_VAL=TIM_GetCapture3(TIM3)/10; //统计上升沿事件后的高电平持续时间(按键长按时间),//计数器频率p=主频时钟(72M)/预分频系数(psc)=72*10^6/7200=10Khz,即0.0001s=0.1ms一次计数//计数值超过arr(本程序设置为65535)将重新计数printf("TIM3CH3_CAPTURE_VAL:%d ms\r\n",TIM3CH3_CAPTURE_VAL); //向串口调试助手发送统计时间,注意时间上限为6.5535秒,超过6.5535秒会重新计数TIM_OC3PolarityConfig(TIM3,TIM_ICPolarity_Rising); //设置为上升沿捕获falling_flag=0; //更新标志TIM_SetCounter(TIM3,0); //清除计数 //TIM3->CNT=0; //清除计数 }TIM_ClearITPendingBit(TIM3, TIM_IT_CC3|TIM_IT_Update);//每次进入中断都要清空中断标志,否则主函数将无法正常执行
}
main.c
#include "TIMER.h"
#include "usart.h"
#include "delay.h"int main(void)
{
// static u32 i = 0;NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);// 设置中断优先级分组2TIM3_Cap_Init(0xffff,7200); //定时器计数上限为0xffff,计数频率为72M/7200uart_init(9600);while(1){
// //本次例程无主函数,用户可自定义
// i++;
// delay_ms(200);}
}
程序说明
实现思路
- 编写定时器输入捕获初始化函数。
初始化 GPIO、定时器时钟→初始化 GPIO 引脚→初始化定时器→初始化定时器输入捕获→初始化中断分组→使能定时中断、输入捕获中断→使能定时器。
-
编写定时器中断服务函数。
按键按下产生上升沿,激活定时器输入捕获中断,进入中断服务函数,定时器重新计数,设置为下降沿捕获;
按键松开产生下降沿,进入中断服务函数,读取计数值,设置为上升沿捕获。 -
在主函数中定义相关初始化函数。
实现效果
- 工具 USB - TTL
- STM32F103C6T6 通过USB - TTL与串口监视助手通信,接线如下:
USB - TTL | STM32F103C6T6 |
---|---|
RX | TX(PA9) |
TX | RX(PA10) |
本实验以 STM32F103C8T6 捕获 PB0(TIM3_CH3
)引脚 高电平时间长度为例讲解定时器输入捕获。
按键一端接 PB0引脚,按键另一端接 3.3V 引脚,按键按下时 PB0引脚就会接通高电平。
知识要点
1.定时器输入捕获参数的初始化:选择输入捕获通道 3→选择捕获模式→选择映射方式→配置预分频→配置滤波。
2.重新设置捕获模式函数、获取计数值函数和清除计数值函数的使用。
2.定时器的编码器模式
在 STM32F103C8T6 中,编码器使用的是定时器接口,定时器 1,2,3,4 有编码器的功能。同时只有 CH1 和 CH2可以进行编码器模式。
本实验以 B6(TIM4CH1)、B7(TIM4CH2为例。
定时器编码器实验
代码实现
ENCODER.c
#include "ENCODER.h"/*TIM4初始化为编码器接口*/
void Encoder_Init_TIM4(u16 arr,u16 psc)
{GPIO_InitTypeDef GPIO_InitStructure; //定义一个引脚初始化的结构体 TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;//定义一个定时器初始化的结构体TIM_ICInitTypeDef TIM_ICInitStructure; //定义一个定时器编码器模式初始化的结构体// 使能 GPIO、定时器时钟RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4, ENABLE); //使能TIM4时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); //使能CPIOB时钟//初始化 GPIO引脚// B6(TIM4CH1) B7(TIM4CH2)GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_7; //PB6、PB7GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; //浮空输入GPIO_Init(GPIOB, &GPIO_InitStructure); //根据GPIO_InitStructure的参数初始化GPIOB0//初始化定时器TIM_TimeBaseStructure.TIM_Period = arr; //设定计数器自动重装值TIM_TimeBaseStructure.TIM_Prescaler = psc; // 预分频器 TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; //选择时钟分频:不分频TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; //TIM向上计数模式TIM_TimeBaseInit(TIM4, &TIM_TimeBaseStructure); //根据TIM_TimeBaseInitStruct的参数初始化定时器TIM4//初始化定时器编码器TIM_EncoderInterfaceConfig(TIM4, TIM_EncoderMode_TI12, TIM_ICPolarity_Rising, TIM_ICPolarity_Rising);//使用编码器模式3:CH1、CH2同时计数,四分频TIM_ICStructInit(&TIM_ICInitStructure); //把TIM_ICInitStruct 中的每一个参数按缺省值填入TIM_ICInitStructure.TIM_ICFilter = 10; //设置滤波器长度TIM_ICInit(TIM4, &TIM_ICInitStructure); //根TIM_ICInitStructure参数初始化定时器TIM4编码器模式//使能定时器TIM_Cmd(TIM4, ENABLE); //使能定时器4
}//读取编码器计数
int Read_Encoder_TIM4(void)
{int Encoder_TIM;Encoder_TIM=TIM4->CNT; //读取计数if(Encoder_TIM>0xefff)Encoder_TIM=Encoder_TIM-0xffff; //转化计数值为有方向的值,大于0正转,小于0反转。//TIM4->CNT范围为0-0xffff,初值为0。TIM4->CNT=0; //读取完后计数清零return Encoder_TIM; //返回值
}
ENCODER.h
#ifndef __TIMER_H
#define __TIMER_H
#include "sys.h"
#include "stm32f10x_tim.h"void Encoder_Init_TIM4(u16 arr,u16 psc);
int Read_Encoder_TIM4(void);#endif
mai.c
#include "ENCODER.h"
#include "usart.h"
#include "delay.h"int main(void)
{delay_init();uart_init(9600);Encoder_Init_TIM4(0xffff,0);while(1){ delay_ms(200); //每隔200ms读取一次编码器计数,即速度。//可以使用定时中断实现更精准的速度计算,用户可自定义printf("Encoder=%d\r\n", Read_Encoder_TIM4());}
}
实验思路
-
编写编码器初始化函数。
使能 GPIO、定时器时钟→初始化 GPIO(两个)引脚→初始化定时器→初始化定时器编码器→使能定时器。 -
编写读取编码器计数值函数。
读取编码器计数并判断方向正反,读取完后将计数值清零。 -
编写主函数。
调用相关初始化函数,在 while 循环中以一定周期读取并向串口调试助手发送编码器计数值(即电机速度),每次读取编码器计数会在读取函数中将编码器计数清零。 -
打开串口调试助手,调波特率为 9600 (
uart_init(9600);
),对应主程序的函数调用打开串口。
STM32F103的编码器模式读取不了计数是怎么回事?
知识要点
- 定时器编码器模式的初始化:选择编码器模式→编码器模式结构体默认初始化→设置滤波器长度→初始化。
- 编码器计数的读取与置 0。
参考资料
- [1] STM32F103C8T6系统板学习资料
相关文章:
STM32入门笔记(03):STM32F103C8T6定时器的输入捕获模式和编码器模式(SPL库函数版)
目录1.定时器的输入捕获模式定时器输入捕获实验代码实现程序说明实现思路实现效果知识要点2.定时器的编码器模式定时器编码器实验代码实现实验思路知识要点参考资料先导知识 [1] STM32入门笔记(02):定时器之定时器中断、输入捕获和PWM输出(SPL库函数版)…...
《网络安全》零基础教程-适合小白科普
《网络安全》零基础教程 目录 目录 《网络安全》零基础教程 第1章 网络安全基础 什么是网络安全 常见的网络安全威胁 网络安全的三个基本要素 网络安全的保障措施 第2章 网络攻击类型 病毒、蠕虫、木马、后门 DoS、DDoS攻击 SQL注入、XSS攻击 …...
微信小程序语言与web开发语言的区别
WXML与HTML的区别def:WXML是小程序框架设计的一套标签语言,用来构建小程序页面的结构,作用类似于web开发中的HTML区别:标签名称的不同如HTML中的div,span,img,a分别对应wxml中的view,…...
【2022-09-14】米哈游秋招笔试三道编程题
第一题:最短子串 题目描述 米小游拿到了一个字符串,她想截取一个连续子串,使得该子串中包含至少k个连续的“mihoyo”。 你可以帮米小游求出最短的子串长度,以及对应的子串位置吗? 输入描述 第一行输入两个正整数n…...
云监控能力介绍
传统监控介绍 监控系统必要性 监控系统的能力清单 市面上常见商业及开源监控工具集 传统监控体系的不足 云监控介绍 云监控(CloudMonitor)是一项针对云资源和互联网应用进行监控的服务。 云监控为云上用户提供开箱即用的企业级开放型一站式监控解决方…...
HTML 文档类型
<!DOCTYPE> 声明帮助浏览器正确地显示网页。 <!DOCTYPE> 声明 Web 世界中存在许多不同的文档。只有了解文档的类型,浏览器才能正确地显示文档。 HTML 也有多个不同的版本,只有完全明白页面中使用的确切 HTML 版本,浏览器才能完…...
【UML】软件设计说明书 (完结)
目录一. 🦁 前言1.1 编写目的1.2 背景1.3 定义1.4 参考资料二. 🦁 总体设计2.1需求规定2.1.1 系统描述2.1.2 系统用例图2.2 运行环境2.2.1 设备2.2.2 支持软件2.2.3 接口2.2.4 控制2.3 基本设计概念2.4 系统结构三. 🦁 用例分析与设计3.1 用户…...
MATLAB——FFT(快速傅里叶变换)
基础知识 FFT即快速傅里叶变换,利用周期性和可约性,减少了DFT的运算量。常见的有按时间抽取的基2算法(DIT-FFT)按频率抽取的基2算法(DIF-FFT)。 1.利用自带函数fft进行快速傅里叶变换 若已知序列x[4,3,2,6…...
力扣-进店却未进行过交易的顾客
大家好,我是空空star,本篇带大家了解一道简单的力扣sql练习题。 文章目录前言一、题目:1581. 进店却未进行过交易的顾客二、解题1.正确示范①提交SQL运行结果2.正确示范②提交SQL运行结果3.正确示范③提交SQL运行结果4.正确示范④提交SQL运行…...
一文解决vscode中借助CMake配置使用Opencv过程中的所有问题
vscode中借助CMake配置使用opencv过程中的问题 vscode编译工程的完整过程 编写好CMakeLists.txtvscode中 ctrlshiftp 选择cmake configurevscode中 ctrlshiftp 选择cmake build CMake问题 1. set OpenCV_FOUND to FALSE so package “OpenCV” is considered to be NOT FOU…...
Golang每日一练(leetDay0004)
10. 正则表达式匹配 Regular Expression Matching 给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 . 和 * 的正则表达式匹配。 . 匹配任意单个字符* 匹配零个或多个前面的那一个元素 所谓匹配,是要涵盖 整个 字符串 s的,而不是部分…...
手机忘记密码解锁的 6 大软件方法
您可能想要解锁手机的原因有很多。也许您正在海外旅行并想使用当地的 SIM 卡,或者您可能刚买了一部二手手机并且需要删除之前所有者的个人数据。您可能想知道如何获得可以免费解锁任何手机的软件。Android 用户可以使用他们的指纹、面部识别或 PIN。您也可以通过快速…...
MySQL数据库的基础语法总结(1)
MySql一.数据库,数据表的基本操作1.数据库的基本操作2. 数据表的基本操作2.1 数据库的数据类型2.1.1 整数类型2.1.2 浮点数类型和定点数类型2.1.3 字符串类型2.1.4 日期与时间类型2.2 数据表的基本操作2.2.1 创建一个数据表2.2.2 查看数据表2.2.3 查看表的基本信息的MySQL指令2…...
Linux之进程创建
本节目录1.fork函数初识2.fork函数返回值3.写时拷贝1.fork函数初识 在Linux中,fork函数是一个非常重要的函数,它从已存在的进程中创建一个新进程。新进程叫做子进程,而原进程叫做父进程。 #include <unistd.h> pid_t fork(void); 返回…...
DCL 管理用户与权限控制
目录 DCL 查询用户 案例 权限控制 案例 DCL DCL英文全称是Data Control Language(数据控制语言),用来管理数据库用户、控制数据库的访问权限。 查询用户 1、查询用户 select * from mysql.user; 2、创建用户 CREATE USER 用户名主机名 IDENTIFIED BY 密码;…...
如何使用 Python 检测和识别车牌(附 Python 代码)
文章目录创建Python环境如何在您的计算机上安装Tesseract OCR?技术提升磨砺您的Python技能车牌检测与识别技术用途广泛,可以用于道路系统、无票停车场、车辆门禁等。这项技术结合了计算机视觉和人工智能。 本文将使用Python创建一个车牌检测和识别程序。…...
[Python题解] CodeForces 1804 D. Accommodation
✅作者简介:人工智能专业本科在读,喜欢计算机与编程,写博客记录自己的学习历程。 🍎个人主页:小嗷犬的个人主页 🍊个人网站:小嗷犬的技术小站 🥭个人信条:为天地立心&…...
【设计模式】访问者模式
访问者模式 访问者模式被称为是最复杂的设计模式,比较难理解并且使用频率不高。 在 GoF 的《设计模式》⼀书中,访问者者模式(Visitor Design Pattern)是这么定义的: Allows for one or more operation to be applied to a set o…...
蓝桥杯刷题冲刺 | 倒计时27天
作者:指针不指南吗 专栏:蓝桥杯倒计时冲刺 🐾马上就要蓝桥杯了,最后的这几天尤为重要,不可懈怠哦🐾 文章目录1.递增序列2.等差素数列3.七段码4.亲戚5.连通块中点的数量1.递增序列 题目 链接:&am…...
RV1126_python人脸识别Retinaface+MobilefaceNet
RV1126_python人脸识别Retinaface+MobilefaceNet RV1126 具备RKNN 模块支持大部分如Pytorch、MXNet、Caffe、tensorflow、keras、onnx等常见框架,而且量化部署使用RKNN-toolkit非常方便。以下介绍通过RV1126实现的人脸识别过程。 首先人脸识别需要先做人脸检测>>人脸校正…...
HBase---HBase基础语法
HBase基础语法 文章目录HBase基础语法基本操作进入 HBase 客户端命令行查看命名空间查看命名空间下的表创建命名空间创建表查看表描述禁用/启用删除表新增列族删除列族更改列族存储版本的限制put 增加数据get 查看数据get条件查询删除指定列族下的指定列删除指定行全表扫描全表…...
2023年,PMP有多少含金量呢?
其实围绕以PMP含金量为中心的这个类似的小问题我好像也已经写了不少文章了。首先我肯定PMP的含金量,不管有多少质疑,这的确是事实。因为就是看中了他的价值考的,并且在项目的执行上收获了很多。 具体的可以看我接下来谈的PMP的价值&#x…...
vue动态路由
import Vue from vue import Router from vue-router import layout from ../components/layout Vue.use(Router) // 动态路由 export const asyncRouterMap = [ { path: /home, component: layout, name: home, meta: { title: 首页, icon: el-ic…...
被骗进一个很隐蔽的外包公司,入职一个月才发现,已经有了社保记录,简历污了,以后面试有影响吗?...
职场的套路防不胜防,一不留神就会掉坑,一位网友就被“骗”进了外包公司,他说公司非常隐蔽,入职一个月才发现是外包,但已经有了社保记录,简历污了,不知道对以后面试有影响吗?楼主说&a…...
华为OD机试 -租车骑绿岛(Java) | 机试题+算法思路+考点+代码解析 【2023】
租车骑绿岛 题目 部门组织绿岛骑行团建活动。租用公共双人自行车骑行,每辆自行车最多坐两人、做大载重M。 给出部门每个人的体重,请问最多需要租用多少双人自行车。 输入 第一行两个数字m、n,自行车限重m,代表部门总人数n。 第二行,n个数字,代表每个人的体重。体重都…...
【Java|基础篇】用思维导图理解逻辑控制
文章目录顺序结构分支结构if单分支语句if else双分支语句if else if else多分支语句switch语句循环语句for循环while循环do while循环continuebreak总结顺序结构 顺序结构是指代码按照从上往下的顺序依次执行 分支结构 选择语句是条件成立时,才会执行的语句.共有三种.分为是if…...
Go单元测试基础
Go单元测试基础1.go test工具2.单元测试函数3.go test -v/go test -run4.跳过某些测试用例5.子测试6.表格驱动测试7.并行测试8.使用工具生成测试代码9.测试覆盖率1.go test工具 Go语言中的测试依赖go test命令。编写测试代码和编写普通的Go代码过程是类似的,并不需…...
华为OD机试 -执行时长(Java) | 机试题+算法思路+考点+代码解析 【2023】
执行时长 题目 为了充分发挥GPU算力,需要尽可能多的将任务交给GPU执行,现在有一个任务数组,数组元素表示在这1秒内新增的任务个数且每秒都有新增任务,假设GPU最多一次执行n个任务,一次执行耗时1秒,在保证GPU不空闲情况下,最少需要多长时间执行完成 输入描述: 第一个…...
互联网检测服务器
互联网检测服务器 1. 题目要求2. 试题解析1. 题目要求 题目: 为了模拟 Internet 访问测试,请搭建网卡互联网检测服务。 2. 试题解析 根据windows的官方文档,互联网检测服务有专门的域名,通过注册表可以找到检测域名字符串的写法(字符串为www.msftconnecttest.com),具体位…...
YOLO系列模型改进指南
YOLO系列模型改进指南 目前包含yolov5,yolov7,yolov8模型的众多改进方案,效果因数据集和参数而定,仅供参考。 如果需要改进模型,建议baseline和改进模型也不要载入预训练权重,不然的话,他们的起…...
手机模板网站制作/建网站建设
Linux时间概念 Linux的时间分两种:系统时间、硬件时间 在Linux运行过程中,系统时间和硬件时间以异步的方式运行,互不干扰。 硬件时间的运行,是靠Bios电池来维持,而系统时间,是用CPU tick来维持的。 在系统…...
网站建设预算和维护/脚本外链生成工具
效果: 步骤 1.参数设定及图片导入 可以只更改背景图片其实 bkgPicimread(‘test.jpg’);%图片地址 lineDensity0.6; %故障线条出现概率 lineLenRange[50,80]; %故障线条长度范围 greenMoveLen10; %绿移距离 原始图片: 2.图片灰度化及红蓝背景构造…...
在线表白网页/网站搜索引擎优化的步骤
闭包(Closure)是前端开发者经常会听到的一个概念,也是我们在求职面试中经常会遇到的题目之一。透过表象去理解闭包的本质,对前端开发者来说是进阶的必经之路。 闭包跟执行上下文中的变量对象和作用域链有着千丝万缕的关系…...
wordpress posts_nav_link/湖南专业seo优化
我执行了一个impdp,但它没有完成,因为表空间中没有空间。我停止了impdb,现在我需要删除新建用户及其下的对象:SQL> drop user TEST cascade;drop user TGK_EXOR_IFIL_008_432 cascade*ERROR at line 1:ORA-00604: error occurr…...
网站注册页面模板/国家免费技能培训平台
在自己做网站时,往往需要获取当前网页的URL网址,之前的建站教程中介绍了PHP怎么获取当前网页URL地址,这个教程,学做网站论坛介绍一下jquery怎么获取当前页面的URL网址。jquery获取当前页面的URL网址使用:window.locati…...
网站建设中 很快回来/双11各大电商平台销售数据
工作中常会用到数据分析,可能是月数据分析,也可能是年,因为从事的岗位是运营,所以运营少不了都会汇总数据,然后通过数据分析,得出结论,再根据结论思考运营的新方向。所以几乎每日,每…...