西安做网站服务,北京网站建设推,有做敦煌网站的吗,延吉手机网站建设开发实验目的#xff1a;驱动风扇#xff0c;蜂鸣器#xff0c;马达进行工作
目录
一#xff0c;PWM相关概念
有源蜂鸣器和无源蜂鸣器
二#xff0c;分析电路图#xff0c;框图
三#xff0c;分析RCC章节
1#xff0c;确定总线连接
2#xff0c;根据总线内容确定基…实验目的驱动风扇蜂鸣器马达进行工作
目录
一PWM相关概念
有源蜂鸣器和无源蜂鸣器
二分析电路图框图
三分析RCC章节
1确定总线连接
2根据总线内容确定基地址
3.分析RCC章节所需寄存器
1RCC_MP_AHB4ENSETR寄存器
2RCC_MP_APB1ENSETR寄存器
四分析GPIO章节寄存器
1GPIOx_MODER寄存器
2GPIOx_AFRL寄存器
五分析TIM4章节 1概述编辑
2特点
计数方式
3.内部框图
4捕获 / 比较寄存器 CCRCapture / Compare 1register
5分频工作原理
6分析TIM4寄存器
1分析TIMx_CR1寄存器
2分析TIMx_CCMR1寄存器
3分析TIMx_CCER寄存器
4分析TIMx_PSC寄存器
5分析TIMx_ARR寄存器
6分析TIMx_CCR1寄存器
六风扇马达 一PWM相关概念
PWMPulse Width Modulation脉冲宽度调制是一种占空比可变的脉冲波形是一种对模拟信号电平进行数字编码的方法
脉冲 方波信号高低电平变化会产生方波信号
周期高低电平变化所需要的时间单位ms
频率周期和频率之间成倒数关系单位HZ1s中可以产生多少个方波信号
占空比在一个方波内高电平占整个周期的百分比 有源蜂鸣器和无源蜂鸣器
1源不是电源是震荡源
2有源蜂鸣器内部有一个震荡源高电平发出响声编程给高低电平即可
3无源蜂鸣器内部没有震荡源需要特定的方波信号驱动进行工作价格较便宜
4本实验开发板有缘当无源使用产生PWM方波
二分析电路图框图
1.根据扩展版原理图 网络编号结合资源扩展板 对应引脚
蜂鸣器TIM4_CH1 PB6
马达TIM16_CH1 PF6
风扇TIM1_CH1 PE9 2.实验以蜂鸣器为例
框图 分析
1需要分析芯片手册 RCC/GPIO/TIM4章节
2RCC使能GPIOB组/TIM4组控制器
3GPIO1设置复用功能 2设置复用功能TIM4_CH1
4TIM4产生PWM方波信号
三分析RCC章节
1确定总线连接
根据Memory and bus architecture 章节中 Memory map and register boundary addresses 篇确定GPIO总线APB4;TIM总线APB1
2根据总线内容确定基地址
RCC 0x5000 0000
GPIOB0x5000 3000
TIM4 0x4000 2000
根据基地址和寄存器的偏移量确定寄存器的地址 寄存器地址 基地址 偏移地址
3.分析RCC章节所需寄存器
1RCC_MP_AHB4ENSETR寄存器
作用使能GPIOB组控制器
地址0x5000000 0xA28 0x50000A28
伪代码RCC_MP_AHB4ENSETR [1] 1
2RCC_MP_APB1ENSETR寄存器
作用使能TIM4组寄存器
地址0x5000000 0xA00 0x50000A00
伪代码RCC_MP_APB1ENSETR [2] 1
四分析GPIO章节寄存器
1GPIOx_MODER寄存器
作用设置GPIOB引脚模式为复用功能模式共四种输入输出复用模拟
地址0x50003000 0x00 0x50003000
操作GPIOB_MODER [13:12] 10
2GPIOx_AFRL寄存器
作用设置GPIOB引脚复用功能为TIM4_CH1功能
地址0x50003000 0x20 0x50003020
伪代码GPIOB_AFRL [27:24] 0010 复用功能 根据 Pinouts, pin description and alternate functions章节确定要给定的值
五分析TIM4章节 1概述
1自动重载计数器可编程分频器
2输出方波
3定时器预分频器RCC时钟控制器预分频器
4独立通道
2特点 116位递增递减递增/递减自动重载计数器
2递增递减边沿对齐模式
3递增/递减中心对齐模式
计数方式
例递增计数器驱动递增计数器时钟信号每来一个时钟周期计数器中的值进行加1操作加到和递增计数器中的值相等以后从0开始开启下一个时钟周期
3.内部框图 1系统提供时钟源209MHz通过PSC(prescaler)预分频器分频分频值为209分频自定义
2定时器启动后自动重载计数器ARRAuto-reload register中的值会自动加载到递减计数器CNTcounter中
3时钟信号驱动递减计数器进行工作一个时钟周期内计数器中数字连续减1操作直到减到0后自动重载计数器ARR中的值自动加载到递减计数器中开启下一个时钟周期
4捕获 / 比较寄存器 CCRCapture / Compare 1register
作用 1产生PWM方波 2当递减计数器CNT中的值和捕获比较寄存器CCR中的值相等之后电平会发生翻转
5分频工作原理 CK_PSC系统提供的时钟源
CEN使能信号
Timerclock CK_CNT计数器时钟
Counter register 计数器寄存器
Update eventUEV更新事件
Prescaler control register预分频控制寄存器
Prescaler buffer分频器缓冲区
Prescaler counter分频器计数器 TIMx_CR1寄存器中ARPE的值会影响自动重载计数器加载0立即加载 1下一时钟周期加载
6分析TIM4寄存器
1分析TIMx_CR1寄存器
作用初始化寄存器相关操作
地址0x40002000 0x00 0x40002000
伪代码 TIM4_CR1[7] 1 设置自动重载预加载寄存器ARR使能 TIM4_CR1[6:5] 00 边沿对齐模式CNT采用递减模式边沿对齐 TIM4_CR1[4] 1 设置计数器CNT设置为递减计数方式 TIM4_CR1[0] 1 设置计数器CNT使能
2分析TIMx_CCMR1寄存器
作用配置比较捕获寄存器
地址0x40002000 0x18 0x40002018
伪操作TIM4_CCMR1 [16][6:4] 0110 设置通道1比较捕获模式为PWM模式
TIM4_CCMR1 [3] 1 设置捕获 / 比较寄存器预加载使能
TIM4_CCMR1 [1:0] 00 设置输出通道为通道1
3分析TIMx_CCER寄存器
作用设置比较捕获寄存器CCR默认输出极性
地址0x40002000 0x20 0x40002020
伪代码TIM4_CCER [3][1] 00 / 01 设置比较捕获寄存器默认输出极性高/低电平自定义
TIM_CCER [0] 1 设置比较捕获寄存器输出使能
4分析TIMx_PSC寄存器
作用设置系统时钟分频值
地址0x40002000 0x28 0x40002028
伪代码TIM4_PSC 209 - 1 (自定义)
5分析TIMx_ARR寄存器
作用设置自动重载计数器ARR中的的值
地址0x40002000 0x2C 0x4000202C
伪代码TIM4_ARR 1000自定义
6分析TIMx_CCR1寄存器
作用设置捕获比较器CCR中的值
地址0x40002000 0x34 0x40002034
伪代码TIM4_CCR1 300自定义
六风扇马达
风扇和马达根据网络编号通道和对应引脚编号更改寄存器中的值即可
另马达不用设置CR1寄存器边沿对齐模式和递减计数方式
风扇和马达多一个寄存器BDTR
TIMx_BDTR
作用:主输出使能
地址0x40002000 0x44 0x40002044
伪代码TIMx_BDTR [15] 1x根据网络编号