stm32f4 输出pwm波_干货 | stm32f4功能介绍

干货|stm32f4功能介绍

这篇文章主要介绍stm32f4的时钟树、定时器、通信方式(串口、I2C).话不多说,直奔主题。

一、时钟树

下图是STM32F4系列的时钟树:

d5b231b00fc9623f315efe6940bf6310.png

36ce69f739409f5687bb27c204760c8b.png

01

时钟的来源:时钟源

STM32的时钟源主要有:内部时钟、外部时钟、锁相环倍频输出时钟。内部时钟、外部时钟又分为告诉时钟、低速时钟。锁相环倍频输出时钟又主PLL时钟、PLLI2S时钟。具体如下图所示:

69bc60fa13d01611e6e81188d34d738e.png

1、LSI(低速内部时钟):由内部RC振荡器产生,频率为32kHz。如图区域①;

2、HSI(高速内部时钟):由内部RC振荡器产生,频率为16MHz。如图区域②;

3、LSE(低速外部时钟):一般由外部晶振提供,频率为32.768kHz。如图区域③;

4、HSE(低速外部时钟):一般由外部晶振提供,频率为4~26MHz。如图区域④;

5、主PLL时钟:由HSE或HSI提供。如图区域⑤;

6、PLLI2S时钟:由HSE或HSI提供。如图区域⑥;

eaad0771c0e2b4e934499c646ad07d1a.png

02

时钟供给系统工作的方式:

时钟的流向

我们已经知道了各个时钟源的输入,那么有了输入的时钟源,各个时钟源又是分别输出给哪些外设工作。我们分别从时钟源输入处开始,根据走线和结点,寻找到相应的输出。对应编号如下图中所示。

69bc60fa13d01611e6e81188d34d738e.png

1、LSI低速内部时钟:供给独立看门狗⑴、实时时钟RTC⑵

2、HSI高速内部时钟:供给系统时钟⑸、时钟输出1MCO1

⑷、主PLL时钟⑹、PLLI2S时钟⑺

3、LSE低速外部时钟:供给实时时钟RTC⑵、时钟输出1MCO1⑷

4、HSE低速外部时钟:供给系统时钟⑸、实时时钟RTC⑵、主PLL时钟⑹、PLLI2S时钟⑺、时钟输出1MCO1⑷、时钟输出2MCO2⑶

5、主PLL时钟:供给系统时钟⑸、外设时钟⑻、时钟输出1MCO1⑷、时钟输出2MCO2⑶

6、PLLI2S时钟::供给I2S时钟⑼、时钟输出1MCO1⑷、时钟输出2MCO2⑶

c6a8424d45712eadf0daf99b3312dbe2.png

HSI、HSE、主PLL时钟都可以供给系统时钟⑸,STM32的很多外设是挂载在AHB、APB总线桥上的,这些外设的时钟又是怎么样的,这就和系统时钟的流向有关了,系统时钟的流向分析如下:

69bc60fa13d01611e6e81188d34d738e.png

1、供给时钟输出2MCO2⑶

2、供给以太网PTP时钟⑽

3、经AHBPRESC预分频器⑾后:HCLK到AHB总线、内核、存储器和DMA⒁,到Cortex系统定时器⒂,自由运行时钟⒃

4、经AHBPRESC预分频器⑾、APBxPRESC预分频器⑿后:供给APBx外设时钟⒄

5、经AHBPRESC预分频器⑾、APBxPRESC预分频器后⑿,再经倍频条件判断⒀处理后:供给APBx定时器时钟⒅

69bc60fa13d01611e6e81188d34d738e.png

用多个时钟源、分层控制时钟的好处:

1、一个外设有多个时钟源:可以根据需要选择相应频率的时钟源。

2、分层、分开控制外设时钟:使得各个外设的时钟都是可控的,各个外设有对应的时钟控制开关,实际应用过程根据需要开启相应外设时钟,不需要的外设时钟不开启,可以降低功耗。

二、定时器

定时器分为高级定时器、通用定时器、基本定时器,下面简要介绍一下。

1高级定时器(TIM1、TIM8)

TIM1和TIM8定时器具有以下特性:

● 16位递增、递减、递增/递减自动重载计数器。

● 16位可编程预分频器,用于对计数器时钟频率进行分频(即运行时修改),分频系数介于 1到65536之间。

● 多达4个独立通道,可用于:— 输入捕获 — 输出比较 — PWM生成(边沿和中心对齐模式)— 单脉冲模式输出

● 带可编程死区的互补输出。

●使用外部信号控制定时器且可实现多个定时器互连的同步电路。

●重复计数器,用于仅在给定数目的计数器周期后更新定时器寄存器。

●用于将定时器的输出信号置于复位状态或已知状态的断路输入。

● 发生如下事件时生成中断/DMA请求:— 更新:计数器上溢/下溢、计数器初始化(通过软件或内部/外部触发)— 触发事件(计数器启动、停止、初始化或通过内部/外部触发计数)— 输入捕获 — 输出比较 — 断路输入

●支持定位用增量(正交)编码器和霍尔传感器电路。

●外部时钟触发输入或逐周期电流管理。

2通用定时器

1) TIM2-TIM5

TIM2到TIM5定时器具有以下特性:

● 16位(TIM3和TIM4)或32位(TIM2和TIM5)递增、递减和递增/递减自动重载计数器。

● 16位可编程预分频器,用于对计数器时钟频率进行分频(即运行时修改),分频系数介于1到65536之间。

● 多达4个独立通道,可用于:— 输入捕获 — 输出比较 — PWM生成(边沿和中心对齐模式)— 单脉冲模式输出

●使用外部信号控制定时器且可实现多个定时器互连的同步电路。

● 发生如下事件时生成中断/DMA请求:

—更新:计数器上溢/下溢、计数器初始化(通过软件或内部/外部触发)

—触发事件(计数器启动、停止、初始化或通过内部/外部触发计数)

— 输入捕获

— 输出比较

●支持定位用增量(正交)编码器和霍尔传感器电路

● 外部时钟触发输入或逐周期电流管理

2)TIM9-TIM14

TIM9到TIM14通用定时器具有以下特性:

● 16位自动重载递增计数器(属于中等容量器件)

● 16位可编程预分频器,用于对计数器时钟频率进行分频(即运行时修改),分频系数介于 1和65536之间

● 多达2个独立通道,可用于:— 输入捕获 — 输出比较 — PWM生成(边沿对齐模式)— 单脉冲模式输出

●使用外部信号控制定时器且可实现多个定时器互连的同步电路

● 发生如下事件时生成中断:

—更新:计数器上溢、计数器初始化(通过软件或内部触发)

—触发事件(计数器启动、停止、初始化或者由内部触发计数)

— 输入捕获

— 输出比较

3基本定时器(TIM6和TIM7)

TIM6和TIM7的特性包括:

● 16位自动重载递增计数器

●16位可编程预分频器,用于对计数器时钟频率进行分频(即运行时修改),分频系数介于 1和65536之间

● 用于触发DAC的同步电路

●发生如下更新事件时会生成中断/DMA请求:计数器上溢

三、通讯方式1串口通信

.串口通信:是指数据的各位在同一根数据线上逐位发送和接收。如下图

8dfc87bad40301c09c6c0d098ae4c179.png

串口通信的特点:控制复杂,传输速度慢;只需要一根数据线,适用于远距离通信。

2I2C通信

通信协议:总线在空闲状态时,SCL(时钟总线)和SDA(数据总线)都保持着高电平,当SCL为高电平而SDA由高到低的跳变,表示产生一个起始条件;当SCL为高而SDA由低到高的跳变,表示产生一个停止条件

以下是三种对I2C总线的操作情况:

第一,主设备往从设备中写数据。数据传输格式如下:a1cdbde797a199c37324eb50d01b7cb0.png 


第二,主设备从从设备中读数据。数据传输格式如下:76afb5f3c3c0504b76529ee01e5a0aa7.png

第三,主设备往从设备中写数据,然后重启起始条件,紧接着从从设备中读取数据;或者是主设备从从设备中读数据,然后重启起始条件,紧接着主设备往从设备中写数据。数据传输格式如下:

490b17737061ffa8b0fb6ff13dd45742.png

了解STM32常用功能:

https://mp.weixin.qq.com/s/uxVc7st7l57x2iWnnGIR-Q

▼ 更多精彩推荐,请关注我们 ▼

文案 许宗清

排版 许宗清

d4aff0075f285360553d01bad291cc3e.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值