目录

前言:

一、CS32L015中定时器及PWM硬件资源介绍:

二、以CS32L015为例配置PWM步骤:

三、完整代码及注释

四、如果这篇文章能帮助到你,请点个赞鼓励一下吧ξ( ✿>◡❛)~


前言:

        CS32L015 是一款内嵌 32 位 ARM® Cortex®-M0+内核的超低功耗微控制器,最高可运行在 24MHz,内置 64K 字节的嵌入式 Flash,8K 字节的 SRAM,集成了 12 位 1Msps 高精度 SAR 型 ADC、RTC、比较器、运算放大器、多路 UART、SPI、I2C、OWI 和 PWM 等丰富的外设接口,具有高整合度、高抗干扰、高可靠性的特点。

        当然,CS32L015最大的特点是性价比高,价格优惠使得它成为许多嵌入式产品的优先选择 。

一、CS32L015中定时器及PWM硬件资源介绍:

        - 3 个 16 位高级控制定时器 TIM1、7、8,,每个定时器支持 4 路比较输出/输入捕获/PWM 输出,其中 3 个 通道支持死区可控的互补 PWM 输出         。

        - 4 个 16 位通用定时器,每个定时器支持 4 路

比较输出/输入捕获/ PWM 输出

        - 1 个 16 位可编程数字阵列(PCA),支持 5 路输

入捕获/比较输出,PWM 输出

        - 2 个 16/32 位基础定时器/计数器

        - 1 个 16 位低功耗定时器

        - 1 个自动唤醒定时器(AWT)

        - 1 个独立看门狗定时器 (FWDT)

        - 1 个窗看门狗定时器 (WWDT):

        - 1 个系统时间定时器: 24 位自减型计数器

二、以CS32L015为例配置PWM步骤:

PWM配置步骤:

  1. 开启GPIO和TIM的RCC使能
  2. 初始化GPIO(选择复用功能)
  3. 初始化TIM
  4. 初始化TIMOC
  5. 开启TIM的PWM输出

三、完整代码及注释

TIM_HandleTypeDef htim7 = {0};	//PWM 输出TIM7CH1,对应R_PWM
/*****************************************************************************
[函数名称]MX_TIM7_MspInit
[函数功能]定时器7GPIO初始化
[参    数]
[备    注]
*****************************************************************************/
void MX_TIM7_MspInit()
{GPIO_InitTypeDef GPIOx = {0};		//创建GPIO的结构体__HAL_RCC_GPIOA_CLK_ENABLE();		//开启GPIOA时钟, PA3GPIOx.Pin = R_PWM_Pin;					//GPIO端口GPIOx.Mode = GPIO_MODE_AF;			//开启GPIO复用功能GPIOx.Alternate = GPIO_AF_MODE_3;	//配置GPIO复用功能模式GPIOx.OpenDrain = GPIO_PUSHPULL;	//配置推挽输出GPIOx.Pull = GPIO_NOPULL;				//无上拉电阻GPIOx.Debounce.Enable = GPIO_DEBOUNCE_DISABLE;	//关闭按键抖动GPIOx.DrvStrength = GPIO_DRV_STRENGTH_HIGH;			//强驱动GPIOx.SlewRate = GPIO_SLEW_RATE_HIGH;		//高速度HAL_GPIO_Init( R_PWM_GPIO_Port, &GPIOx );	//GPIO初始化
}/*****************************************************************************
[函数名称]MX_TIM7_Init
[函数功能]定时器7配置PWM初始化
[参    数]
[备    注]输出TIM7CH1,对应R_PWM,PA3
*****************************************************************************/
void MX_TIM7_Init()
{MX_TIM7_MspInit();	//定时器7配置GPIO__HAL_RCC_TIM7_CLK_ENABLE();	//开启TIM定时器的时钟使能htim7.Instance = TIM7;				//配置TIM7定时器htim7.Channel = TIM_CHANNEL_1;	//配置通道1htim7.Init.Period = 1000 - 1;		//配置ARR寄存器,控制周期频率htim7.Init.Prescaler = 24;			//预分频系数htim7.Init.CounterMode = TIM_COUNTERMODE_UP;		//计数模式,向上计数htim7.Init.ClockDivision = 0;		//时钟不分频htim7.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_ENABLE;	//自动重装开启htim7.Init.RepetitionCounter = 0;	//自动重装值为0HAL_TIM_PWM_Init(&htim7);	//定时器7初始化TIM_OC_InitTypeDef htimx_OC = {0};	//OC配置htimx_OC.OCMode = TIM_OCMODE_PWM1;	//配置OCMODE的模式htimx_OC.Pulse = 500;		//配置占空比htimx_OC.OCPolarity = TIM_OCPOLARITY_LOW;		//配置高低电平HAL_TIM_PWM_ConfigChannel( &htim7, &htimx_OC, TIM_CHANNEL_1 );	//初始化HAL_TIM_PWM_Start( &htim7, TIM_CHANNEL_1 );
}

四、如果这篇文章能帮助到你,请点个赞鼓励一下吧ξ( ✿>◡❛)~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/95675.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/95675.shtml
英文地址,请注明出处:http://en.pswp.cn/bicheng/95675.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

hive表不显示列注释column comment的问题解决

安装datasophon平台hive后,发现hive表的字段注释丢失了,表的注释没问题,csv格式的表没问题,只有parquet和orc的表有这个问题。查网上似乎没有这方面的问题。查看mysql表里面的中文注释也一切正常,后来经过多次研究才发…

【笔记】AI Agent发展趋势

前言 本章主要探讨了现在AI技术的发展趋势、大模型的一些局限性和小模型存在的必要性,然后引出了AI Agent的优势与发展趋势。 目标 学完本课程后,您将能够: 了解大模型的局限性; 了解小模型存在的必要性; 了解AI Agent的优势; 了解模型协同的技术。 目录 1.AI发…

ChatDOC工具测评:AI驱动PDF/Word文档处理,支持敏感内容隐私保护与表格提取分析

之前跟你们聊过用 Python 处理数据的 Pandas,今天换个更贴近日常办公的方向 —— 给你们安利一个 AI 文档处理工具「ChatDOC」,官网地址是https://www.chatdoc.com/,它能直接读取 PDF、Word 里的内容,你不用逐页翻文档找信息&…

Vue + fetchEventSource 使用 AbortController 遇到的“只能中止一次”问题解析与解决方案

前言 在前端项目中,使用 SSE(Server-Sent Events) 长连接去获取实时消息已经很常见了。像 fetchEventSource 这种封装好的工具,可以帮助我们轻松处理流式请求。 不过在实践中,我遇到了一个奇怪的问题:点击按…

Django get_or_create 方法详解

get_or_create 是 Django ORM 中的一个非常常用的方法,它用于获取数据库中的一个对象,如果该对象不存在,则创建一个新的对象并返回。 方法签名: Model.objects.get_or_create(defaultsNone, **kwargs)参数解释: defaul…

LangChain 文档问答系统中高级文本分割技术

告别语义断裂:LangChain 文档问答系统中高级文本分割技术深度指南 文章目录 引言:问题的根源——为何精准的文本分割是 RAG 系统的命脉? 第一部分:探本溯源——剖析 LangChain 默认分割器的“机械之困” 机制解析:语法驱动的“暴力”切分 问题场景化展示:语义、上下文与结…

Web2 vs Web3--差异一看就懂

互联网技术的浪潮不断推动着我们从Web2时代向Web3时代迈进。这两个时代在技术架构、用户体验、数据所有权等方面有着显著的差异。本文将为您详细解析Web2与Web3之间的差异,并探讨它们如何塑造我们的数字生活。 定义 Web2,即第二代互联网,以其…

深入解析MongoDB内部架构设计

MongoDB内部构造详解 MongoDB作为一款流行的NoSQL数据库,其内部构造设计独特且高效。以下从多个维度详细解析MongoDB的内部架构和核心组件。 一、整体架构 MongoDB采用分布式架构设计,主要包含以下核心组件:应用层:应用程序通过语…

ubuntu12.04安装opencalib手动标定并使用自己的数据

ubuntu22.04安装opencalib手动标定并使用自己的数据 一、OpenCalib的部署使用 1、基本信息 官网链接: https://github.com/PJLab-ADG/SensorsCalibration/tree/v0.2 (官网下载的zip文件是有问题的,不建议到官网下载) 参考链接: https://blog.csdn.net/qq_49959714/arti…

scss 转为原子css unocss

文章目录前言🎯 **方案一:混合模式 (推荐)**🎯 **方案二:语义化组件类**🎯 **方案三:CSS 模块化**🎯 **方案四:BEM 命名规范**💡 **推荐做法**前言 记录让c4 从scss 转为…

【面试题】生成式排序了解吗?

生成式排序是搜索排序的前沿方向,核心思想是利用生成式模型的能力来改善排序效果。 技术实现方式:序列到序列重排序 将候选文档列表作为输入序列使用encoder-decoder模型生成重排后的文档序列优势:能捕捉文档间的全局相关性生成式特征提取 使…

【系统架构设计(15)】软件架构设计一:软件架构概念与基于架构的软件开发

文章目录一、核心思想二、软件架构概念:系统设计的高级抽象三、软件架构设计与生命周期:架构在开发流程中的演进四、架构描述语言ADL:架构的标准化表达五、41视图:多角度的架构展现六、基于架构的软件开发概念:架构驱动…

文件系统-哈希结构文件

一、核心思想哈希文件的核心思想非常简单直接:通过一个计算(哈希函数),将记录的键(Key)直接转换为该记录在磁盘上的物理地址(通常是块地址),从而实现对记录的快速存取。它…

一文吃透 C#中异步编程Task

一文吃透 C#中异步编程Task 一、Task 是什么 二、推荐使用场景 三、Demo:Task 的核心用法 1. 最常用的启动方式Task.Run 2. task完成状态与结果获取 3. 多个任务怎么等?Wait/WaitAll/WaitAny 4. 任务想中途停掉?取消与异常处理 四、必备 API 速查表 五、避坑指南、注意事项 …

TDengine TIMETRUNCATE 函数用户使用手册

TDengine TIMETRUNCATE 函数用户使用手册 函数概述 TIMETRUNCATE 是 TDengine 中的一个时间处理标量函数,用于将时间戳按照指定的时间单位进行截断操作。该函数在时间数据聚合、分组和统计分析中非常有用,特别适用于智能电表等时序数据的分析场景。 语法…

KSZ8081寄存器介绍

一、寄存器概览KSZ8081MNX/RNB 支持 IEEE 802.3 标准的 MII 管理接口(MDIO),寄存器地址范围为 0x00 - 0x1F,其中寄存器 0x00 - 0x08 为 IEEE 标准寄存器,0x09 - 0x1F 为扩展功能寄存器。寄存器按功能可分为基本控制与状…

力扣190:颠倒二进制位

力扣190:颠倒二进制位题目思路代码题目 颠倒给定的 32 位无符号整数number的二进制位。 思路 思路很简单,我们只需要得到number从低位到高位的每一个二进制位再把二进制位移到颠倒的res的对应二进制位即可,例如number的最低位为1那么res的最高位即1&a…

鸿蒙NEXT交互机制解析:从输入设备到手势响应的全面指南

深入探索鸿蒙NEXT的交互设计,掌握下一代人机交互核心技术在智能设备无处不在的今天,一个操作系统的交互设计质量直接影响着用户体验。鸿蒙NEXT作为华为推出的新一代操作系统,在交互设计上带来了许多创新和突破。本文将全面解析鸿蒙NEXT的交互…

通过IDEA写一个服务端和一个客户端之间的交互

服务端代码:WebSocketConfig代码package org.example.hufamessagedemo;import org.springframework.context.annotation.Configuration; import org.springframework.web.socket.config.annotation.*;Configuration EnableWebSocket public class WebSocketConfig i…

玩客云刷机Armbian + CasaOS,轻nas系统,以及扩展

网上太多的教程,综合了一下,自己一边参考一边尝试,昨天晚上做的,感觉今天快忘了,记录一下,少走弯路。 随着矿潮的退去,市场上涌现出了众多所谓的“矿渣盒子”,这些设备往往因为价格低…