首页 > 其他分享 >STM32f103c8t6中PWM的配置

STM32f103c8t6中PWM的配置

时间:2024-10-10 19:22:11浏览次数:9  
标签:HAL 函数 配置 TIM 参数 STM32f103c8t6 占空比 PWM

1、PWM简介

        PWM波形(Pulse Width Modulation,脉冲宽度调制波形)是一种占空比可变的脉冲波形。这种调制方式 通过改变脉冲的宽度来控制电路中的信号强度和频率。具体来说,PWM波形中的高电平持续时间和低电平持 续时间可以根据需要进行调整,从而实现对模拟信号电平的数字编码。

2、重要的三个参数:

频率 =1/Ts

分辨率 = 占空比变化步距

占空比 = Ton/Ts

3、输出模式

PWM有两种输出模式:

     1、PWM1:

    

    2、PWM2:

    

4、PWM的配置步骤

(1)时基工作参数配置

        使用HAL_TIM_PWM_Init();这个函数需要一个结构体变量,这个结构体变量在其他函数中也会使用到,所以我们需要定义一个全局的变量。

         主要初始化的成员变量有Instance、Init(Prescaler、Period、CounterMode、AutoReloadPreload)

(2)msp初始化

使用HAL_TIM_PWM_MspInit();

使用步骤:

1、判断是否是相对应的定时器

2、初始化中断

        HAL_NVIC_SetPriority();
        HAL_NVIC_EnableIRQ();

3、初始化需要输出的GPIO口

        Note:第2步和第3步都是在HAL_TIM_PWM_MspInit();这个函数里面的。


    

(3)PWM模式,CCR寄存器设置

        使用HAL_TIM_PWM_ConfigChannel();其中第二个参数需要重新定义一个结构体,第三个参数需要参考芯片手册去找所需要用到的定时器其对应的通道。

        Note:这一步的函数直接卸载时基工作参数配置里面。

(4)使能输出,启动计数器

        使用HAL_TIM_PWM_Start();

        Note:同样写在时基工作参数配置里面。

(5)修改CCR寄存器值

需要单独写一个函数,注意需要传入参数,函数里面写__HAL_TIM_SET_COMPARE();这个函数即可。

5、调用

        PWM的输出其本质就是一个方波的输出,想要使用它就需要用到for循环,不断地改变波形,也就是占空比,所以想要使用PWM就使用for循环不断的调用修改CCR寄存器值的函数,就可以达到自己想要的目的。

标签:HAL,函数,配置,TIM,参数,STM32f103c8t6,占空比,PWM
From: https://blog.csdn.net/ljhlovezyx/article/details/142784230

相关文章

  • MySQL下载、安装与配置
    下载MySQL1、进入MySQL官网2、点击Products,再点击MySQLCommunityServer3、选择MySQL版本,点击GotoDownloadPage4、点击Download下载MySQL安装程序5、点击Nothanks,juststartmydownload,等待下载安装MySQL1、双击运行下载的安装程序2、勾选Custom,点击N......
  • 阿里云CLI配置
    阿里云CLI(AlibabaCloudCommandLineInterface)是基于OpenAPI建立的通用命令行工具,您可以借助阿里云CLI实现与阿里云产品的交互,在Shell工具中管理您的阿里云产品。安装下载安装包:https://aliyuncli.alicdn.com/aliyun-cli-linux-latest-amd64.tgz解压后直接cp到/usr/bin目......
  • 利用 ACME 实现SSL证书自动化配置更新
    最近收到腾讯云的通知SSL证书要到期了,本想直接申请的发现现在申请的免费SSL证书有效期只有90天了,顺便了解了一下原因是包括Google在内的国际顶级科技公司一直都有在推进免费证书90天有效期的建议,免费证书加密等级低,难以应对今天日益复杂的网络环境,90天一更新有助于及时发现可能存......
  • 【Ubuntu】在Ubuntu上配置Java环境
    【Ubuntu】在Ubuntu上配置Java环境壹、前言Java是运用得非常广泛的编程语言,在使用Linux时难免会碰到需要用到JDK的情况,故本文介绍如何在Ubuntu上配置Java21环境。贰、下载Java的下载渠道很多,有甲骨文公司的“官方”JDK,也有各大厂商基于OpenJDK开发的版本,但是各个版本间的差异......
  • arm imx6ull docker启动失败问题查找与解决 内核配置相关
    1、增加POSIXMessageqeue:couldnotgetinitialnamespace:nosuchfileordirectory CONFIG_POSIX_MQUEUE=y2、增加namespacefailedtosettoinitialnamespaceCONFIG_NAMESPACES=y3、创建网络失败,veth配置:dockercreateendpointquirky_shternonnetworkbridge......
  • 【华为】默认路由配置
    1.配置接入层:LSW1(LSW3同理):vlanbatch1020ing0/0/1portlink-typeacportdefaultvlan10ing0/0/2portlink-typeacportdefaultvlan20ing0/0/24portlink-typetrporttrallow-passvlan10202.配置汇聚层,设置网关,实现不同vlan之间的通信:LSW2(LSW4同......
  • 记录下物理机bond配置及物理机多路径配置
    在进行bond聚合口配置前,要先使用ipa查看当前物理机有哪些网卡,哪些网卡接了线(状态是否为UP)后再确定要用哪两个物理接口进行聚合。 #进行bond模式配置,模式4是动态链接聚合,需和交换机侧的LACP配合使用[root@xxxmapper]#cat/etc/modprobe.d/bonding.confaliasbond0bondingo......
  • debian12 最小化安装以后配置kvm
    今年是centos停止更新的日子,陪伴了多年,熟悉的操作环境很人很纠结换系统,特别是到了我这个年龄阶段,重新再学习简直比要人命还难受。安装完系统之后,第一个就是配置ssh允许root用户登录,这个根据自己需求,我们的环境必须用root,加上堡垒机,也算安全。(在安全和便利之间折中) 1、安装kvm......
  • 视频汇聚平台EasyCVR支持云端录像丨监控存储丨录像回看丨录像计划丨录像配置
    EasyCVR视频汇聚融合平台,是TSINGSEE青犀视频垂直深耕音视频流媒体技术、AI智能技术领域的杰出成果。平台以其强大的视频处理、汇聚与融合能力,在构建视频监控系统中展现出了独特的优势。EasyCVR视频汇聚平台可接入传统监控行业中高清网络摄像机的RTSP直播流,及RTMP、HTTP-FLV、HLS(......
  • K8S配置MySQL主从自动水平扩展
    前提环境操作系统Ubuntu22.04K8S1.28.2集群(1个master+2个node)MySQL5.7.44部署在K8S的主从集群metrics-serverv0.6.4概念简介在K8s中扩缩容分为两种●Node层面:对K8s物理节点扩容和缩容,根据业务规模实现物理节点自动扩缩容●Pod层面:一般会使用Deployment中的Re......