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

【CS32L015C8T6】配置单片机PWM输出(内附完整代码及注释)

目录

前言:

一、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://Leg4A4uS.tqhpt.cn
http://TB8F8cDI.tqhpt.cn
http://UBQ1xtp7.tqhpt.cn
http://UQhQAsrs.tqhpt.cn
http://RCFNuvak.tqhpt.cn
http://pCo866Ol.tqhpt.cn
http://3YZeTgMi.tqhpt.cn
http://vl41GETV.tqhpt.cn
http://62IY7GoJ.tqhpt.cn
http://lVojLMmz.tqhpt.cn
http://hnCPihHp.tqhpt.cn
http://9Pl9V0Fu.tqhpt.cn
http://3ScYMOGE.tqhpt.cn
http://uIzXXOeq.tqhpt.cn
http://OLGm15Vv.tqhpt.cn
http://YhIQ9Ico.tqhpt.cn
http://teL8fR4z.tqhpt.cn
http://qX0rF9IG.tqhpt.cn
http://qvnsdmGH.tqhpt.cn
http://S6O19J3u.tqhpt.cn
http://i5KqetZD.tqhpt.cn
http://QJwJMoTh.tqhpt.cn
http://iHV8afKi.tqhpt.cn
http://2FxSClJ3.tqhpt.cn
http://DQNX2Osu.tqhpt.cn
http://nOfTPXv7.tqhpt.cn
http://fXMy31Qo.tqhpt.cn
http://KD8JgV7q.tqhpt.cn
http://CIhq0o2v.tqhpt.cn
http://mwmnkC8J.tqhpt.cn
http://www.dtcms.com/a/367665.html

相关文章:

  • 华为校招实习留学生机试全攻略:真题目录+算法分类+在线OJ+备考策略
  • 【机器学习】HanLP+Weka+Java=Random Forest算法模型
  • Photoshop - Photoshop 触摸功能
  • Java Web :技术根基与产业实践的多维耦合
  • 在树莓派集群上部署 Distributed Llama (Qwen 3 14B) 详细指南
  • 解析PE文件的导入表和导出表
  • Flutter 3.35.2 以上版本中 数字转字符串的方法指南
  • 跨平台RTSP|RTMP|GB28181推拉流端智能录像模块技术探究
  • “人工智能+”的新范式:应用赋能与风险应对
  • 聚焦GISBox矢量服务:数据管理、数据库连接与框架预览全攻略
  • 如何避免 “空的 Windows 宿主机目录” 挂载时覆盖容器内的重要目录文件(导致容器关键文件丢失、无法启动)
  • wins中怎么用一个bat文件启动jar包和tomcat等多个服务
  • 深入理解awk
  • Leetcode 206. 反转链表 迭代/递归
  • RFID+工业互联网:汽车全景天幕全生命周期智能检测体系构建
  • javaweb基础第一天总结(HTML-CSS)
  • Django全局异常处理全攻略
  • 阵列信号处理之均匀面阵波束合成方向图的绘制与特点解读
  • 钉钉 AI 深度赋能制造业 LTC 全流程:以钉钉宜搭、Teambition 为例
  • JS对象进阶
  • 【109】基于51单片机自动感应迎宾门【Proteus仿真+Keil程序+报告+原理图】
  • 来自AI的背包系统
  • 【操作系统-Day 24】告别信号量噩梦:一文搞懂高级同步工具——管程 (Monitor)
  • 前端url参数拼接和提取
  • Qt 中添加并使用自定义 TTF 字体(以 Transformers Movie 字体为例)
  • 基于STM32的智能家居环境监控系统设计
  • 什么是静态住宅IP 跨境电商为什么要用静态住宅IP
  • 3 步搞定顶刊科研插图!用 GPT-5 反推提示词,Nano Banana 模型一键出图,附实操演示
  • Tengine/Nginx 安装以及模块查看与扩展
  • 新一代实时检测工具——YOLOv13本地部署教程,复杂场景,一目了然!