STM32L151 CubeIDE GPIOPIN AFIO14 TIMX_IC2

问题描述 投票:0回答:1

如何在stm32l151芯片中使用AFIO14进行引脚复用。

问这个问题的原因是我想使用定时器的输入捕获功能,但是定时器的通道引脚被其他设备占用了。有没有办法用PC13作为定时器的输入捕捉引脚。

enter image description here enter image description here

能否提供一个用C语言编写的示例代码。

input time stm32 gpio capture
1个回答
0
投票

'L1xx 系列有一个非常奇特的开关矩阵,这在 STM32 中是独一无二的。

因此,步骤是将 PC13 设置为替代功能并将其 AF 设置为 14。

然后设置 RI_ICR 寄存器中的各个字段,以便将 PC13 路由到所需的定时器。请阅读 RM0038 中系统配置控制器 (SYSCFG) 和路由接口 (RI) 章节的输入捕获路由子章节

我没有“L15x”可供尝试,但一般来说,此代码应该可以完成此任务(假设您想将 PC13 连接到 TIM2_CH2):

GPIOC->AFR[1] = GPIOC->AFR[1] & ~(0b1111 << (4 * (13 - 8)))) | (14 << (4 * (13 - 8)));  // set AF of PC13 to 14
GPIOC->MODER = (GPIOC->MODER & ~(0b11 << (2 * 13))) | (0b10 << (2 * 13));  // set PC13 as AF
RI->ICR = (0b0010 << 18) // set IC2 field, so that Input Capture 2 is used
  | (0b01 << 16)  // set TIM field to TIM2
  | (0b0111 << (1 * 4))  // set IC2IOS to select PC13
;

JW

PS。请注意,“L1xx 是 NRND,即使 ST 的 10 年承诺还剩 8.5 年。

© www.soinside.com 2019 - 2024. All rights reserved.