这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 | ||
icore3_arm_hal_9 [2020/04/13 17:57] zgf [三、 实验原理] |
icore3_arm_hal_9 [2022/03/18 15:04] (当前版本) sean |
||
---|---|---|---|
行 2: | 行 2: | ||
|技术支持电话|**0379-69926675-801** ||| | |技术支持电话|**0379-69926675-801** ||| | ||
|技术支持邮件|Gingko@vip.163.com ||| | |技术支持邮件|Gingko@vip.163.com ||| | ||
- | |技术论坛|http://www.eeschool.org ||| | ||
^ 版本 ^ 日期 ^ 作者 ^ 修改内容 ^ | ^ 版本 ^ 日期 ^ 作者 ^ 修改内容 ^ | ||
| V1.0 | 2020-04-13 | gingko | 初次建立 | | | V1.0 | 2020-04-13 | gingko | 初次建立 | | ||
行 57: | 行 56: | ||
==== 一、 实验目的与意义 ==== | ==== 一、 实验目的与意义 ==== | ||
- | - 了解STM32 TIMER结构 | + | - 了解STM32 TIMER结构。 |
- | - 了解STM32 TIMER特征 | + | - 了解STM32 TIMER特征。 |
- | - 掌握EXTI中断的使用方法 | + | - 掌握EXTI中断的使用方法。 |
- | - 掌握STM32 HAL库中TIMER属性的配置方法 | + | - 掌握STM32 HAL库中TIMER属性的配置方法。 |
- | - 掌握KEIL MDK 集成开发环境使用方法 | + | - 掌握KEIL MDK 集成开发环境使用方法。 |
==== 二、 实验设备及平台 ==== | ==== 二、 实验设备及平台 ==== | ||
- | - iCore3 双核心板[[https://item.taobao.com/item.htm?spm=a1z10.1-c.w4024-251734887.3.5923532fXD2RIN&id=524229438677&scene=taobao_shop|点击购买]] | + | - iCore3 双核心板。[[https://item.taobao.com/item.htm?spm=a1z10.1-c.w4024-251734887.3.5923532fXD2RIN&id=524229438677&scene=taobao_shop|点击购买]] |
- | - JLINK(或相同功能)仿真器[[https://item.taobao.com/item.htm?spm=a1z10.5-c.w4002-251734908.13.20822b61MmPeNN&id=554869837940|点击购买]] | + | - JLINK(或相同功能)仿真器。[[https://item.taobao.com/item.htm?spm=a1z10.5-c.w4002-251734908.13.20822b61MmPeNN&id=554869837940|点击购买]] |
- | - Micro USB线缆 | + | - Micro USB线缆。 |
- | - Keil MDK 开发平台 | + | - Keil MDK 开发平台。 |
- | - STM32CubeMX开发平台 | + | - STM32CubeMX开发平台。 |
- | - 装有WIN XP(及更高版本)系统的计算机 | + | - 装有WIN XP(及更高版本)系统的计算机。 |
==== 三、 实验原理 ==== | ==== 三、 实验原理 ==== | ||
=== 1、PWM简介 === | === 1、PWM简介 === | ||
行 77: | 行 76: | ||
* 脉宽调制基本原理:其控制方式就是对电路开关器件的通断进行控制,使输出端得到一系列幅值相等的脉冲,用这些脉冲来代替正弦波或所需要的波形。也就是在输出波形的半个周期中产生多个脉冲,使各脉冲的等值电压为正弦波形,所获得的输出平滑且低次谐波少。按一定的规则对各脉冲的宽度进行调制,即可改变电路输出电压的大小,也可改变输出频率。 | * 脉宽调制基本原理:其控制方式就是对电路开关器件的通断进行控制,使输出端得到一系列幅值相等的脉冲,用这些脉冲来代替正弦波或所需要的波形。也就是在输出波形的半个周期中产生多个脉冲,使各脉冲的等值电压为正弦波形,所获得的输出平滑且低次谐波少。按一定的规则对各脉冲的宽度进行调制,即可改变电路输出电压的大小,也可改变输出频率。 | ||
* **脉宽调制原理**:脉宽调制模式可以生产一个由TIMx_ARR寄存器确定频率,由TIMx_CCRx确定占空比的信号。如下图所示: | * **脉宽调制原理**:脉宽调制模式可以生产一个由TIMx_ARR寄存器确定频率,由TIMx_CCRx确定占空比的信号。如下图所示: | ||
- | {{ :icore3:icore3_arm_hal_9_1.png?direct&500 |}} | + | {{ :icore3:icore3_arm_hal_9_1.png?direct&400 |}} |
* 图中可知0到t2为一个周期时间,而占空比由CCRx值决定。一个周期时间可以由以下公式计算: | * 图中可知0到t2为一个周期时间,而占空比由CCRx值决定。一个周期时间可以由以下公式计算: | ||
* **T=(ARR+1)(PSC+1)/TCLK** | * **T=(ARR+1)(PSC+1)/TCLK** | ||
行 88: | 行 87: | ||
| | ||
**1、**CCR1捕获比较值寄存器设置比较值,将其与当前值寄存器的值比较,要说明的是修改TIM_CCMR1寄存器的OC1M[2:0]位可控制 PWM模式,方法如下: | **1、**CCR1捕获比较值寄存器设置比较值,将其与当前值寄存器的值比较,要说明的是修改TIM_CCMR1寄存器的OC1M[2:0]位可控制 PWM模式,方法如下: | ||
- | * 110:PWM模式1——向上计数时,一旦TIMx_CNT<TIMx_CCR1时通道1为有效电平,否则为无效电平;在向下计数时,一旦TIMx_CNT>TIMx_CCR1时通道1为无效电平(OC1REF=0),否则有效电平(OC1REF=1)。 | + | * 110:PWM模式1 |
+ | * 向上计数时,一旦TIMx_CNT<TIMx_CCR1时通道1为有效电平,否则为无效电平; | ||
+ | * 在向下计数时,一旦TIMx_CNT>TIMx_CCR1时通道1为无效电平(OC1REF=0),否则有效电平(OC1REF=1)。 | ||
- | * 111:PWM模式2——在向上计数时,一旦TIMx_CNT<TIMx_CCR1时通道1为无效电平,否则为有效电平;在向下计数时,一旦TIMx_CNT>TIMx_CCR1时通道1为有效电平,否则为无效电平。 | + | * 111:PWM模式2 |
+ | * 在向上计数时,一旦TIMx_CNT<TIMx_CCR1时通道1为无效电平,否则为有效电平; | ||
+ | * 在向下计数时,一旦TIMx_CNT>TIMx_CCR1时通道1为有效电平,否则为无效电平。 | ||
**2、**经过输出控制器后,得到OC1ref电平还要经过一个选择,其由TIMx_CCRE寄存器的CC1P位控制:输入/捕获1输出极性。0:高 电平有效。1:低电平有效。 | **2、**经过输出控制器后,得到OC1ref电平还要经过一个选择,其由TIMx_CCRE寄存器的CC1P位控制:输入/捕获1输出极性。0:高 电平有效。1:低电平有效。 | ||
**3、**选择完成后经过输出电路来输出,输出电路由TIM_xCCRE寄存器的CC1E位控制。 | **3、**选择完成后经过输出电路来输出,输出电路由TIM_xCCRE寄存器的CC1E位控制。 | ||
- | * 控制方式为0:关闭 1:打开。 | + | * 控制方式为: |
+ | * 0:关闭 | ||
+ | * 1:打开 | ||
==== 四、 实验程序 ==== | ==== 四、 实验程序 ==== |