当前位置: 首页 > news >正文

STM32标准库开发——PWM驱动代码

PWM驱动初始化代码

在这里插入图片描述
使能定时器二时钟

RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE);

设置定时器时钟源

TIM_InternalClockConfig(TIM2);

配置定时器二的时基单元

TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStruct;
TIM_TimeBaseInitStruct.TIM_ClockDivision=TIM_CKD_DIV1;
TIM_TimeBaseInitStruct.TIM_CounterMode=TIM_CounterMode_Up;
TIM_TimeBaseInitStruct.TIM_Period=100-1; //ARR寄存器的值
TIM_TimeBaseInitStruct.TIM_Prescaler=720-1; //预分频寄存器的值
TIM_TimeBaseInitStruct.TIM_RepetitionCounter=0;//高级寄存器才有
TIM_TimeBaseInit(TIM2,&TIM_TimeBaseInitStruct);

初始化定时器二的一二三通道引脚,使用复用推挽输出模式

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
GPIO_InitTypeDef GPIO_InitStruct;
GPIO_InitStruct.GPIO_Mode=GPIO_Mode_AF_PP;
GPIO_InitStruct.GPIO_Pin=GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_3;
GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOA,&GPIO_InitStruct);

配置定时器输出比较寄存器

TIM_OCInitTypeDef TIM_OCInitStruct;
TIM_OCStructInit(&TIM_OCInitStruct); //对OC结构体进行一个默认的初始化
TIM_OCInitStruct.TIM_OCMode=TIM_OCMode_PWM1;//设置为OC模式为PWM1模式
TIM_OCInitStruct.TIM_OCPolarity=TIM_OCPolarity_High;//设置为高电平有效,即不翻转电平
TIM_OCInitStruct.TIM_OutputState=TIM_OutputState_Enable;//输出使能
TIM_OCInitStruct.TIM_Pulse=10;
TIM_OC1Init(TIM2,&TIM_OCInitStruct);
TIM_OC2Init(TIM2,&TIM_OCInitStruct);
TIM_OC3Init(TIM2,&TIM_OCInitStruct);

使能定时器二

TIM_Cmd(TIM2,ENABLE);

TIM2 引脚重映射功能

//引脚重映射,由于PA15也可以作为TIM2通道0的输出口,所以可以将引脚映射到15号引脚上
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);
GPIO_PinRemapConfig(GPIO_PartialRemap1_TIM2,ENABLE);
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);

在这里插入图片描述

http://www.lryc.cn/news/285802.html

相关文章:

  • postman导入https证书
  • Spark UI中 Shuffle Exchange 和 BroadcastExchange 中的 dataSize 值为什么不一样
  • 阿里云优惠券领取入口、使用方法和限制条件,2024最新
  • 自己构建webpack+vue3+ts
  • 【AI】小白入门笔记
  • GPT应用开发:编写插件获取实时天气信息
  • 揭开Spring MVC的真面目
  • AI大模型开发架构设计(3)——如何打造自己的大模型
  • Linux C语言开发(三)运算符和表达式
  • Spring-AOP入门案例
  • 中仕教育:国考调剂和补录的区别是什么?
  • ESP32-TCP服务端(Arduino)
  • HCIA-HarmonyOS设备开发认证-序
  • Med-YOLO:3D + 医学影像 + 检测框架
  • Docker部署Golang服务
  • C#,字符串匹配(模式搜索)Sunday算法的源代码
  • makefile 编译动态链接库使用(.so库文件)
  • Hive 数仓及数仓设计方案
  • Ubuntu使用docker-compose安装redis
  • 大数据安全 | 期末复习(上)| 补档
  • Kylin 安装novnc 远程访问
  • 神经网络算法与逻辑回归:优势与差异
  • 【蓝桥杯冲冲冲】动态规划初步[USACO2006 OPEN] 县集市
  • C#,入门教程(30)——扎好程序的笼子,错误处理 try catch
  • 操作教程|JumpServer堡垒机结合Ansible进行批量系统初始化
  • 序列化VS反序列化
  • 新数智空间:阿里云边缘云持续保持中国公有云市场第一
  • 【开源】基于JAVA语言的陕西非物质文化遗产网站
  • C++(Qt)软件调试---静态分析工具clang-tidy(18)
  • 2401llvm,clang的重构引擎