yang15622383762 发表于 2021-9-13 11:40

MM32如何使用比较器产生中断

1、比较器输入输出介绍:
比较器框图如下,以COMP1为例,从图中可以看出PA0 – PA7口可连接到比较器的正向输入端,PA4 - PA7口及内部参考电压和三个等分电压值(1/4, 1/2, 3/4)可连接到比较器的反向输入端。比较器输入的 I/O 引脚必须在 GPIO 寄存器中设置为模拟模式。输出端可以重定向到一个 I/O 端口或多个定时器输入端,从而触发不同事件。

2、比较器时钟:

COMP 时钟控制器提供的时钟与 PCLK 同步(APB2 时钟)。在使用比较器之前,要先使能 RCC 控制器中的时钟使能控制位。

3、比较器的中断:

比较器的输出可以内部连接到外部中断和事件控制器。每个比较器有自己的 EXTI 信号,能产生中断或事件。COMP1对应外部中断线19,COMP2对应外部中断线20。

4、功耗模式:

在具体应用中可以通过调整比较器功耗和响应时间得到最优的结果。

COMPx_CSR 寄存器的 MODE位有下面几种设置:

• 00:高速/高功耗 • 01:中速/中等功耗 • 10:低速/低功耗 • 11:极低速/极低功耗

5、 比较器锁定机制:

比较器能用于安全的用途,比如过流或者过热保护。在某些特定的安全需求的应用中,有必要保证比较器设置不能被无效寄存器访问或者程序计数器破坏所改变。为了这个目的,比较器控制和状态寄存器可以设为写保护(只读)。一旦设置完成, LOCK 位必须设为 1,这导致整个 COMPx_CSR 寄存器变成只读,包括 LOCK 位在内。写保护只能被 MCU 复位所清除。

6、 迟滞现象:

比较器的可配置迟滞电压能防止无效的输出变化产生的噪声信号。在不需要强制迟滞电压的情况下迟滞现象可以被禁止。通过配置COMPx_CSR 寄存器 HYST可以设置比较器迟滞电压。
实验结果4
理论分析:使用信号发生器通过PA1输入频率为1Hz,高电平1.2V,低电平0V的方波,在输入信号由低电平变化为高电平(大于1/4Vrefint)时比较器会产生一个上升沿信号输出高电平,在输入信号由高电平变化为低电平(小于/4Vrefint)时比较器会产生一个下降沿输出低电平,由于设置的外部中断为上升下降沿触发,所以Led会以每0.5S翻转一次。

实验现象:LED以0.5s闪烁,可以通过示波器观察时间,与理论分析符合

guijial511 发表于 2021-9-13 20:36

这个比较器计数器是好多位的?

asmine 发表于 2021-9-15 10:39

一直没用过内部比较器,
看来又落后了

match007 发表于 2021-9-16 18:38

有没有实例

skyred 发表于 2021-10-15 17:01

有例程么?

海滨消消 发表于 2021-10-21 10:51

有楼主操作过的例程吗

勇者无惧你和我 发表于 2021-10-28 15:57

有没有相关的例程可以参考一下呢?

ynndmalh21 发表于 2021-10-28 17:05

这个有没有相关的例程呢?来点例程才靠谱。
页: [1]
查看完整版本: MM32如何使用比较器产生中断