stm32 - STM32:组合两个比较器输出
问题描述
我有一个 STM32L072KB 微控制器,想将两个模拟信号(它们代表一种具有 50% 占空比的“正交编码信号”)组合成一个“组合数字输出信号”,它的频率加倍(为了我的目的,加倍输出信号用于提供双倍精度):
我正在使用比较器外设 COMP1 和 COMP2 来检测信号边沿,并且可以很好地配置它们,使其直接将 COMPX_OUT 中继到预定义的,但对于每个比较器而言,都是单独且固定的 GPIO(没有任何 SW/ISR 延迟):
- COMP1_OUT -> PA11
- COMP2_OUT -> PA12
由于我的硬件布局,我想实现这样的配置:
COMP1_OUT ⊕ COMP2_OUT -> PA11
或者
COMP1_OUT ⊕ COMP2_OUT -> PA12
我还没有找到一种将两个比较器输出直接连接到一个输出引脚而不引入 SW/ISR 延迟/延迟的方法。我读到一些通用定时器提供所谓的“霍尔”编码器模式,它支持最多 3 个输入信号的异或。但是由于在 STM32L0 内核上似乎不可能通过 DMA 将定时器直接连接到 GPIO,所以我不知道如何实现这个......
有谁知道将两个 COMP_OUT 同时路由/XOR 到单个 GPIO 输出引脚(PA11 或 PA12)的“硬件/快速方法”,还是在这种情况下不可避免地使用基于 ISR 的解决方案?
解决方案
推荐阅读
- prolog - 使用序言的运行长度编码
- c++ - asio set_password_callback() 方法是什么?
- ios - react-native run-ios 构建失败:CompileC RCTBaseTextInputView.o
- scala - Scala 测试错误:@Rule 必须是公开的
- r - == 给出奇怪的结果 R
- sharepoint - 使用 CSOM 在 Sharepoint 2019 上查询项目权限
- angular - Angular 无法将结果转换为对象 - 是 IActionResult 吗?
- excel - 将命名范围值分配给变量(Excel VBA) - 新手
- c++ - 手动编译 GLFW “未选择支持的窗口创建 API”
- angular - 异步管道的Angular 9过滤结果