嵌入式学习笔记(七)

看手册流程

1、打开扩展板原理图、找到蜂鸣器、风扇、震动马达

找到对应的引脚


蜂鸣器:TIM4 CH1(4个控制器第一个通道)


风扇:TIM1 CH1(1个控制器第一个通道)



震动马达:TIM16 CH1(16个控制器第一个通道)

------------------------------------------------------------
2、打开转接板的原理图,找到连接SOC的引脚


蜂鸣器:TIM4 CH1 PB6(接到B组的第6个引脚)GPIOB


风扇:TIM1 CH1 PE9(接到E组的第9个引脚)GPIOE


震动马达:TIM16 CH1 PF6(接到F组的第6个引脚)GPIOF

------------------------------------------------------------------------
3、确定TIM1、TIM4、TIM16、GPIOB、GPIOE、GPIOF、RCC(复位时钟控制器)

外设分别连接到哪根总线上、以及外设寄存器的基地址


TIM1--->总线 :APB2  基地址:0x44000000

TIM4--->总线 :APB1  基地址:0x40002000

TIM16--->总线 :APB2  基地址:0x44007000

GPIOB--->总线 :AHB4  基地址:0x50003000

GPIOE--->总线 :AHB4  基地址:0x50006000

GPIOF--->总线 :AHB4  基地址:0x50007000

RCC--->总线 :AHB4  基地址:0x50000000

--------------------------------------------------------------------
以蜂鸣器为例
----------------------------
4、分析RCC章节,使用GPIOB\TIM4外设的时钟源

RCC_MP_APB1ENSETR(APB1总线上的外设时钟源使能设置寄存器)

Address offset(偏移量): 0xA00

设置TIM4外设的时钟使能   RCC_MP_APB1ENSETR[2]

RCC->MP_APB1ENSETR |= (0x1 << 2);

RCC_MP_AHB4ENSETR(AHB4总线上的外设时钟源使能设置寄存器)

Address offset: 0xA28

设置GPIOB外设的时钟使能   RCC_MP_AHB4ENSETR[1]

    RCC->MP_AHB4ENSETR |= (0X1 << 1);

pwm实验

pwm :脉冲宽度调制

频率(F)1s产生方波信号的个数,单位Hz

周期(T):每个方波信号的时间,单位s
    
    周期和频率成倒数的关系:T = 1 / F    F = 1 / T

占空比:一个方波信号中,高电平时间占整个方波信号周期的百分比。
    
PWM的使用的场合:蜂鸣器的声音的调节,电机的调速,呼吸灯,屏幕的背光

------------------------------------------------------

蜂鸣器
--------------

有源蜂鸣器:
------------------
有源蜂鸣器内部有一个RC震荡源,

只要给有源蜂鸣器提供一个电源信号,

就可以控制内部的RC震荡源产生一个一定频率的方波信号,

控制有源蜂鸣器发出声音。

因此有源蜂鸣器一般使用高低电平进行驱动。

有源蜂鸣器驱动简单,但是不可以发出不同的声音。
----------------------------------------------------

无源蜂鸣器:
---------------------
无源蜂鸣器内部没有RC震荡源,

因此无源蜂鸣器需要提供一个高低电平变化的信号,

一般使用PWM进行驱动。

改变PWM方波信号的频率,

就可以让无源蜂鸣器发出不同的声音。
---------------------------------------------------------

ARR:自动重载寄存器
CCRx :捕获比较寄存器

通用定时器

通用定时器 (TIM2/TIM3/TIM4/TIM5)


通用定时器包含一个 16 位或 32 位自动重载计数器,

该计数器由可编程预分频器驱动。


可用于多种用途,包括测量输入信号的脉冲宽度(输入捕获)

或生成输出波形(输出比较和PWM)。


这些定时器彼此完全独立,不共享任何资源。



TIM2/TIM3/TIM4/TIM5主要特性

通用 TIMx 定时器具有以下特性:
----------------------------------------------------16 位(TIM3 和 TIM4)或 32 位(TIM2 和 TIM5)
递增、递减和递增/递减自动重载计数器。

---------------------------------------------------16 位可编程预分频器,用于对计数器时钟频率进行分频
(可在运行时修改),分频系数介于 165535 之间。
--------------------------------------------------
 多达 4 个独立通道,可用于:

– 输入捕获
– 输出比较
– PWM 生成(边沿和中心对齐模式)
– 单脉冲模式输出



 使用外部信号控制定时器且可实现多个定时器互连的同步电路。
 发生如下事件时生成中断/DMA 请求:

– 更新:计数器上溢/下溢、计数器初始化(通过软件或内部/外部触发)
– 触发事件(计数器启动、停止、初始化或通过内部/外部触发计数)
– 输入捕获
– 输出比较


 支持定位用增量(正交)编码器和霍尔传感器电路
 触发输入用作外部时钟或逐周期电流管理

------------------------------------------------------------


时基单元
----------------------------
可编程定时器的主要模块由一个16/32位计数器

及其相关的自动重装寄存器组成。

计数器可递增计数、递减计数或交替进行递增和递减计数。

计数器的时钟可通过预分频器进行分频。

计数器、自动重载寄存器和预分频器寄存器可通过软件进行读写。

即使在计数器运行时也可执行读写操作。

------------------------------------------------
时基单元包括:

 计数器寄存器 (TIMx_CNT)

 预分频器寄存器 (TIMx_PSC)

 自动重载寄存器 (TIMx_ARR)
-------------------------------------------------

自动重载寄存器是预装载的。

对自动重载寄存器执行写入或读取操作时会访问预装载寄存器。

预装载寄存器的内容既可以立即传送到影子寄存器,

也可以在每次发生更新事件 (UEV) 时传送到影子寄存器,

这取决于 TIMx_CR1 寄存器中的自动重载预装载使能位 (ARPE)。

当计数器达到上溢值(或者在递减计数时达到下溢值)


并且 TIMx_CR1 寄存器中的 UDIS 位为0时,将发送更新事件。

该更新事件也可由软件产生。
  • 26
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值