STM32F103ZET6【标准库函数开发】------09 高级定时器TIM1输出7个PWM,三对为互补PWM

2023-11-07

在这里插入图片描述
只有高级定时器可以输出互补的PWM,所以只有TIM1和TIM8可以实现这个功能。
而TIM1又分为三种情况没有重映射部分重映射完全重映射
在这里插入图片描述

一、没有重映射

在这里插入图片描述
下面展示主要的time.cmain.c函数的代码

void TIM1_PWM_Init(u16 arr,u16 psc)
{
	GPIO_InitTypeDef         GPIO_InitStructure;	
	TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;	
	TIM_OCInitTypeDef       TIM_OCInitStructure;
	
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE);	  //使能定时器1时钟
 	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB , ENABLE);  //使能GPIO时钟

//GPIO配置
	//CH1 CH2 CH3 CH4	CH1N CH2N CH3N
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_11; 
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;  
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(GPIOA, &GPIO_InitStructure);

	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15; 
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;  
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(GPIOB, &GPIO_InitStructure);

//初始化TIM1
	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_TimeBaseInit(TIM1, &TIM_TimeBaseStructure); //初始化

//PWM参数设置
	TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2; //PWM模式2
 	TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; //正向通道使能
	TIM_OCInitStructure.TIM_OutputNState=TIM_OutputNState_Enable;//反向通道使能         	
	TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low; //正向输出极性
	TIM_OCInitStructure.TIM_OCNPolarity=TIM_OCNPolarity_Low;//反向的输出极性                 
	TIM_OCInitStructure.TIM_OCIdleState=TIM_OCIdleState_Reset;//正向空闲状态下的非工作状态下           
	TIM_OCInitStructure.TIM_OCNIdleState=TIM_OCNIdleState_Reset;//反向空闲状态下的非工作状态下
//使能,通道设置	
	TIM_Cmd(TIM1,ENABLE);//TIM1使能
	TIM_CtrlPWMOutputs(TIM1,ENABLE);//TIM1输出使能
	TIM_ARRPreloadConfig(TIM1, ENABLE);// 使能 TIM1 重载寄存器 ARR
 
	TIM_OC1Init(TIM1,&TIM_OCInitStructure);//初始化外设TIM1 OC1                       
	TIM_OC1PreloadConfig(TIM1, TIM_OCPreload_Enable);  //使能TIM1在CCR1上的预装载寄存器 

	TIM_OC2Init(TIM1,&TIM_OCInitStructure);//初始化外设TIM1 OC2  	                       
	TIM_OC2PreloadConfig(TIM1, TIM_OCPreload_Enable);  //使能TIM2在CCR2上的预装载寄存器  

	TIM_OC3Init(TIM1,&TIM_OCInitStructure);//初始化外设TIM1 OC2 	                       
	TIM_OC3PreloadConfig(TIM1, TIM_OCPreload_Enable);  //使能TIM3在CCR3上的预装载寄存器 

	TIM_OC4Init(TIM1,&TIM_OCInitStructure);//初始化外设TIM1 OC2 	                       
	TIM_OC4PreloadConfig(TIM1, TIM_OCPreload_Enable);  //使能TIM4在CCR4上的预装载寄存器  	
}
#include "timer.h" 
 int main(void)
 {		
	delay_init();	    	 //延时函数初始化	  
	TIM1_PWM_Init(999,71);	 //不分频。PWM频率=72000000/1000/72=1Khz   周期为1ms
	 while(1)
	{					
		TIM_SetCompare1(TIM1,200);	  //占空比20%
		TIM_SetCompare2(TIM1,300);	  //占空比30%
		TIM_SetCompare3(TIM1,400);	  //占空比40%
		TIM_SetCompare4(TIM1,500);	  //占空比50%		
	}
 }
二、部分重映射

在这里插入图片描述
同上展示主要的time.cmain.c函数的代码

void TIM1_PWM_Init(u16 arr,u16 psc)
{
	GPIO_InitTypeDef         GPIO_InitStructure;	
	TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;	
	TIM_OCInitTypeDef       TIM_OCInitStructure;
	
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1|RCC_APB2Periph_AFIO, ENABLE);	  //使能定时器1时钟,使能AFIO时钟
 	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB , ENABLE);  //使能GPIO时钟	
	GPIO_PinRemapConfig(GPIO_PartialRemap_TIM1, ENABLE);//部分重映射使能
//GPIO配置
	//CH1 CH2 CH3 CH4	
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_11; 
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;  
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(GPIOA, &GPIO_InitStructure);
	//CH1N CH2N CH3N
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1; 
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;  
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(GPIOB, &GPIO_InitStructure);

	TIM_DeInit(TIM1);//TIM1复位
   //初始化TIM1
	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_TimeBaseInit(TIM1, &TIM_TimeBaseStructure); //初始化

//PWM参数设置
	TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2; //PWM模式2
 	TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; //正向通道使能
	TIM_OCInitStructure.TIM_OutputNState=TIM_OutputNState_Enable;//反向通道使能         	
	TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low; //正向输出极性
	TIM_OCInitStructure.TIM_OCNPolarity=TIM_OCNPolarity_Low;//反向的输出极性                 
	TIM_OCInitStructure.TIM_OCIdleState=TIM_OCIdleState_Reset;//正向空闲状态下的非工作状态下           
	TIM_OCInitStructure.TIM_OCNIdleState=TIM_OCNIdleState_Reset;//反向空闲状态下的非工作状态下
//使能,通道设置	
	TIM_Cmd(TIM1,ENABLE);//TIM1使能
	TIM_CtrlPWMOutputs(TIM1,ENABLE);//TIM1输出使能
	TIM_ARRPreloadConfig(TIM1, ENABLE);// 使能 TIM1 重载寄存器 ARR
 
	TIM_OC1Init(TIM1,&TIM_OCInitStructure);//初始化外设TIM1 OC1                       
	TIM_OC1PreloadConfig(TIM1, TIM_OCPreload_Enable);  //使能TIM1在CCR1上的预装载寄存器 

	TIM_OC2Init(TIM1,&TIM_OCInitStructure);//初始化外设TIM1 OC2  	                       
	TIM_OC2PreloadConfig(TIM1, TIM_OCPreload_Enable);  //使能TIM2在CCR2上的预装载寄存器  

	TIM_OC3Init(TIM1,&TIM_OCInitStructure);//初始化外设TIM1 OC2 	                       
	TIM_OC3PreloadConfig(TIM1, TIM_OCPreload_Enable);  //使能TIM3在CCR3上的预装载寄存器 

	TIM_OC4Init(TIM1,&TIM_OCInitStructure);//初始化外设TIM1 OC2 	                       
	TIM_OC4PreloadConfig(TIM1, TIM_OCPreload_Enable);  //使能TIM4在CCR4上的预装载寄存器  	
}
#include "timer.h" 
 int main(void)
 {		
	delay_init();	    	 //延时函数初始化	  
	TIM1_PWM_Init(999,71);	 //不分频。PWM频率=72000000/1000/72=1Khz   周期为1ms
	 while(1)
	{					
		TIM_SetCompare1(TIM1,200);	  //占空比20%
		TIM_SetCompare2(TIM1,300);	  //占空比30%
		TIM_SetCompare3(TIM1,400);	  //占空比40%
		TIM_SetCompare4(TIM1,500);	  //占空比50%		
	}
 }
三、完全重映射

在这里插入图片描述

同上展示主要的time.cmain.c函数的代码

#include "timer.h"

void TIM1_PWM_Init(u16 arr,u16 psc)
{
	GPIO_InitTypeDef         GPIO_InitStructure;	
	TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;	
	TIM_OCInitTypeDef       TIM_OCInitStructure;
	
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1|RCC_APB2Periph_AFIO, ENABLE);	  //使能定时器1时钟,使能AFIO时钟
 	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE , ENABLE);  //使能GPIO时钟	
	GPIO_PinRemapConfig(GPIO_FullRemap_TIM1, ENABLE);//部分重映射使能
//GPIO配置
	//CH1 CH2 CH3 CH4	CH1N CH2N CH3N
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_11|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14; 
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;  
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(GPIOE, &GPIO_InitStructure);

	TIM_DeInit(TIM1);//TIM1复位
   //初始化TIM1
	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_TimeBaseInit(TIM1, &TIM_TimeBaseStructure); //初始化

//PWM参数设置
	TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2; //PWM模式2
 	TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; //正向通道使能
	TIM_OCInitStructure.TIM_OutputNState=TIM_OutputNState_Enable;//反向通道使能         	
	TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low; //正向输出极性
	TIM_OCInitStructure.TIM_OCNPolarity=TIM_OCNPolarity_Low;//反向的输出极性                 
	TIM_OCInitStructure.TIM_OCIdleState=TIM_OCIdleState_Reset;//正向空闲状态下的非工作状态下           
	TIM_OCInitStructure.TIM_OCNIdleState=TIM_OCNIdleState_Reset;//反向空闲状态下的非工作状态下
//使能,通道设置	
	TIM_Cmd(TIM1,ENABLE);//TIM1使能
	TIM_CtrlPWMOutputs(TIM1,ENABLE);//TIM1输出使能
	TIM_ARRPreloadConfig(TIM1, ENABLE);// 使能 TIM1 重载寄存器 ARR
 
	TIM_OC1Init(TIM1,&TIM_OCInitStructure);//初始化外设TIM1 OC1                       
	TIM_OC1PreloadConfig(TIM1, TIM_OCPreload_Enable);  //使能TIM1在CCR1上的预装载寄存器 

	TIM_OC2Init(TIM1,&TIM_OCInitStructure);//初始化外设TIM1 OC2  	                       
	TIM_OC2PreloadConfig(TIM1, TIM_OCPreload_Enable);  //使能TIM2在CCR2上的预装载寄存器  

	TIM_OC3Init(TIM1,&TIM_OCInitStructure);//初始化外设TIM1 OC2 	                       
	TIM_OC3PreloadConfig(TIM1, TIM_OCPreload_Enable);  //使能TIM3在CCR3上的预装载寄存器 

	TIM_OC4Init(TIM1,&TIM_OCInitStructure);//初始化外设TIM1 OC2 	                       
	TIM_OC4PreloadConfig(TIM1, TIM_OCPreload_Enable);  //使能TIM4在CCR4上的预装载寄存器  	
}
#include "timer.h" 
 int main(void)
 {		
	delay_init();	    	 //延时函数初始化	  
	TIM1_PWM_Init(999,71);	 //不分频。PWM频率=72000000/1000/72=1Khz   周期为1ms
	 while(1)
	{					
		TIM_SetCompare1(TIM1,200);	  //占空比20%
		TIM_SetCompare2(TIM1,300);	  //占空比30%
		TIM_SetCompare3(TIM1,400);	  //占空比40%
		TIM_SetCompare4(TIM1,500);	  //占空比50%		
	}
 }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

STM32F103ZET6【标准库函数开发】------09 高级定时器TIM1输出7个PWM,三对为互补PWM 的相关文章

  • 哪些变量类型/大小在 STM32 微控制器上是原子的?

    以下是 STM32 微控制器上的数据类型 http www keil com support man docs armcc armcc chr1359125009502 htm http www keil com support man d
  • RAM 存储二进制数和汇编语言的冒泡排序

    我必须使用 ARM v7 执行一个例程 在 RAM 内存中存储 10 个二进制数 然后使用冒泡排序对这些数字从高到低进行排序 我应该如何开始 func bubbleSortAscendingU32 ldr r3 r0 4 mov r1 9
  • ARM 中只有两个操作数的 ADD 或 SUB

    我正在学习ARM汇编语言 我读过 ADD 应该有 3 个操作数 然而 我见过很多案例 现实中只有两种 例如 STR R1 SP 0x20 var 1C LDR R1 a lua 0x1DE4E6 MOVS R0 R4 haystack AD
  • 为 ARM 交叉编译 zlib

    我尝试为arm poky linux gnueabi交叉编译zlib 但启动 make 时出现错误 zlib 1 2 11 AR HOST ar CC HOST gcc RANLIB HOST ranlib configure prefix
  • 尝试使用 qemu-arm 运行arm二进制文件时如何解决“加载共享库时出错”?

    我正在运行 Linux Mint 14 并安装了 qemu qemu user 和 gnueabi 工具链 我编译了 test carm linux gnueabi gcc test c o test 当我尝试跑步时qemu arm usr
  • M1 MacBook Pro 上的 Android Studio 无法使用 ABI armeabi-v7a 模拟系统映像

    我的 M1 Macbook Pro 上的 Android Studio 可以很好地模拟 ABI arm64 v8a 的所有系统映像 API 24 29 30 31 但是 它无法使用 ABI armeabi v7a 运行所有映像 例如 API
  • Beaglebone Black 的 U-boot 无法构建 - 目标 CPU 不支持 THUMB 指令

    我正在尝试按照 Chris Simmonds 的 掌握嵌入式 Linux 编程 中的说明为 Beagle Bone Black 构建 u boot 我已经构建了交叉工具链 现在正在尝试使用该工具链构建 Das U boot 但由于不支持 T
  • 使用 NEON 优化 Cortex-A8 颜色转换

    我目前正在执行颜色转换例程 以便从 YUY2 转换为 NV12 我有一个相当快的函数 但没有我预期的那么快 主要是由于缓存未命中 void convert hd uint8 t orig uint8 t result uint32 t wi
  • arm-linux-gnueabi 编译器选项

    我在用 ARM Linux gnueabi gcc在 Linux 中为 ARM 处理器编译 C 程序 但是 我不确定它编译的默认 ARM 模式是什么 例如 对于 C 代码 test c unsigned int main return 0x
  • ARM Chromebook 上的 Android 开发环境?

    我尝试了多次安装和使用安卓工作室 https developer android com studio index html on an ARM Chromebook C100P https archlinuxarm org platfor
  • 什么是遗留中断?

    我正在开发一个项目 试图弄清楚 ARM 架构的全局中断控制器中如何处理中断 我正在使用 pl390 中断控制器 我看到有一条线被称为传统中断 它绕过了分配器逻辑 假设有 2 个中断可以被编程为传统中断 任何人都可以帮助解释一下什么是遗留中断
  • GCC C++ (ARM) 和指向结构体字段的 const 指针

    假设有一个简单的测试代码 typedef struct int first int second int third type t define ADDRESS 0x12345678 define REGISTER type t ADDRE
  • arm64和armhf有什么区别?

    Raspberry Pi Type 3 具有 64 位 CPU 但其架构不是arm64 but armhf 有什么区别arm64 and armhf armhf代表 arm hard float 是给定的名称Debian 端口 https
  • 如何在WinMobile6上启用ARMv6非对齐访问?

    ARMv6 引入了一个很棒的功能 未对齐的内存访问 这使得代码中的某些事情变得更加简单和更快 但微软只在winCE6中提供了API 现在大多数 PDA 都基于 WinMobile6 基于 CE 5 x 默认情况下禁用未对齐访问 我尝试在 C
  • Android NDK 代码中的 SIGILL

    我在市场上有一个 NDK 应用程序 并获得了有关以下内容的本机崩溃报告 SIGILL信号 我使用 Google Breakpad 生成本机崩溃报告 以下是详细信息 我的应用程序是为armeabi v7a with霓虹灯支持 它在 NVIDI
  • ARM Cortex-M3 启动代码

    我试图了解 STM32 微控制器的 Keil realview v4 附带的初始化代码是如何工作的 具体来说 我试图了解堆栈是如何初始化的 In the 文档 http infocenter arm com help index jsp t
  • GCC:如何在 MCU 上完全禁用堆使用?

    我有一个在基于 ARM Cortex M 的 MCU 上运行并用 C 和 C 编写的应用程序 我用gcc and g 编译它并希望完全禁用任何堆使用 在 MCU 启动文件中 堆大小已设置为 0 除此之外 我还想禁止代码中意外使用堆 换句话说
  • aarch64 Linux 硬浮点或软浮点

    linux系统有arm64 有arm架构armv8 a 如何知道 Debian 运行的是硬浮动还是软浮动 符合 AAPCS64 GNU GCC for armv8仅提供硬浮动aarch64工具链 这与 armv7 a 的 GCC 不同 后者
  • A64 Neon SIMD - 256 位比较

    我想将两个小端 256 位值与 A64 Neon 指令 asm 进行有效比较 平等 为了平等 我已经有了解决方案 bool eq256 const UInt256 lhs const UInt256 rhs bool result 首先 将
  • 什么是 .axf 文件?

    我是arm架构的新手 我从事嵌入式软件工作 并试图了解我的项目二进制文件的调试文件夹中存在的 axf文件 发现它是链接器在构建过程中生成的arm可执行格式文件 用于调试崩溃 所以很明显它包含了一些调试信息 但不清楚具体是什么信息 而且deb

随机推荐

  • key-value数据库

    传统的文件系统中 需要维护目录的层次结构 使用dentry inode directory等复杂结构保存元数据的信息 而面对更多定制文件系统的需求 越来越多的系统考虑使用key value形式保存文件系统中的元数据信息 使用数据库来保存这些
  • Windows 安装完mysql 后 配置环境变量、重置密码、开启远程连接

    第一步 配置环境变量 系统变量 Path在最后一段添加 D ruanjian mysql 8 0 17 winx64 bin 这个是你安装mysql bin的位置 第二步用临时密码登录并重置密码 mysql gt mysql u root
  • yum默认安装位置及被占进程运行:/var/run/yum.pid 已被锁定,PID 为 4032 的另一个程序正在运行。

    yum install XX 默认安装位置是 usr lib64 在安装过程出现下面进程被占用 解决 rm f var run yum pid
  • 9个开源自动化测试框架,质量保证测试工程师用起来

    自动化测试框架由一组最佳实践 通用工具和库组成 可帮助测试人员评估多个Web和移动应用的功能 安全性 可用性和可访问性 而在 软件开发世界中有很多的自动化测试框架 该如何选择 虽然技术团队可以构建复杂的自动化测试框架 但是当可以选择现有的开
  • Git 补丁— diff 和 patch 使用详解

    Git 补丁 diff 和 patch 使用详解 1 diff 和 patch 的区别 2 生成patch 2 1 git diff 3 git format patch 3 应用patch 4 冲突解决 题外话 1 diff 和 patc
  • flutter 图片加载和预览实现

    注 本文只提供了思路 并无完整性demo 使用的是cached network image 因为版本变革经常头大 而且需要自己对源码做些修改 建议github fork一下 然后导入自己的地址 类似 dependencies cached
  • Spider(网络蜘蛛)之ajax爬取douban电影排行和kfc门店数据

    爬前注意 首先douban的接口请求方式是get简单一点 寻找规律可以爬取数据 kfc的接口方式是post data所需要parse urlencode data encode utf 8 需要编码 编码和解码是两个相反的过程 字节 lt
  • 分布式事务框架Seata

    分布式事务框架Seata sei达 一 分布式事务前言 1 数据库管理系统中事务 transaction 的四个特性 简称ACID 这种特性简称刚性事物 原子性 Atomicity 原子性是指事务是一个不可再分割的工作单元 事务中的操作要么
  • 特征选择--scikit-learn

    特征选择 Feature Selection choosing a subset of all the features the ones more informative 最终得到的特征选是原来特征的一个子集 特征选取是机器学习领域非常重
  • synchronized方法和代码块

    1 同步 由于多线程并发存在数据不安全问题 为了保证数据的安全性需要一些特殊的手段来维持 数据不安全主要是针对修改来说的 如果一个数据只能读不能修改几乎不会产生什么安全问题 只有修改数据的时候容易产生一些差错导致多线程并发造成数据不安全 从
  • 清理 Ubuntu 系统的 4 个简单步骤

    清理 Ubuntu 系统的 4 个简单步骤 现在 试试看这 4 个简单的步骤 来清理你的 Ubuntu 系统吧 这份精简指南将告诉你如何清理 Ubuntu 系统以及如何释放一些磁盘空间 如果你的 Ubuntu 系统已经运行了至少一年 尽管系
  • js类型检测

    1 检测是否是字符串 function isString obj return Object prototype toString call obj object String 2 检测是否是对象 function isObject obj
  • 《视觉SLAM十四讲》第一版源码slambook编译调试

    slambook master ch2 编译正常 log如下 slambook master ch2 mkdir build cd build cmake make j8 The C compiler identification is G
  • python中去除字符串中 表示的空格

    去掉 nbsp 硬空格 必须在unicode下替换才行 如下所示 text replace u xa0 其中text就是包含 nbsp 的一个变量
  • Unity3D中API常用方法和类详细讲解 (Transform类)

    目录 Transform类 点击这里进入官网 该类表示的是对象的位置 旋转和缩放 Properties Transform parent public Transform parent 让一个游戏物体成为另一游戏物体的子对象 那么该物体的
  • 计算机考研复试上机算法学习

    计算机考研复试上机算法学习 这篇博客是博主在准备可能到来的线下上机复试基于王道机试指南的学习 将各道习题链接和代码记录下来 这篇博客权且当个记录 文章目录 计算机考研复试上机算法学习 1 STL容器学习 1 1 vector动态数组 1 1
  • mongoDB 一些操作命令

    如果你想创建一个 myTest 的数据库 先运行use myTest命令 之后就做一些操作 如 db createCollection user 这样就可以创 建一个名叫 myTest 的数据库 一 数据库常用命令 1 Help查看命令提示
  • 微信小程序调用微信支付

    1 首先肯定是要去微信公众平台申请接入微信支付 2 申请成功之后就可以调用商户号的接口进行微信支付交易了 3 携带的参数肯定是从后端接口拿取的 我们回调的时候直接拉起支付就可以了 wx showLoading title 处理中 调用后端接
  • 将docker容器设置为宿主机同一网段

    本文主要讲述 将docker的容器ip设置为宿主机同一网段 并且允许宿主机以及局域网其它机器访问它 创建docker的虚拟网络 本人局域网的网段为192 168 1 0 24 网关为路由器的192 168 1 1 docker networ
  • STM32F103ZET6【标准库函数开发】------09 高级定时器TIM1输出7个PWM,三对为互补PWM

    只有高级定时器可以输出互补的PWM 所以只有TIM1和TIM8可以实现这个功能 而TIM1又分为三种情况没有重映射 部分重映射 完全重映射 一 没有重映射 下面展示主要的time c main c函数的代码 void TIM1 PWM In