完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
STM32f205 定时器2 ETR功能读不出数据
一下是配置(ETR重映射到PB3口) RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE); RCC_APB1PeriphClockCmd(RCC_APB1Periph_tiM2, ENABLE); TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; TIM_TimeBaseStructInit( TIM_TimeBaseStructure); //配置TIMER2作为计数器 TIM_DeInit(TIM2); TIM_TimeBaseStructure.TIM_Period = 0xFFFF; TIM_TimeBaseStructure.TIM_Prescaler = 0x0; TIM_TimeBaseStructure.TIM_ClockDivision = 0x0; TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; TIM_TimeBaseInit(TIM2, TIM_TimeBaseStructure); // Time base configuration TIM_ETRClockMode2Config(TIM2, TIM_ExtTRGPSC_OFF, TIM_ExtTRGPolarity_NonInverted, 0x0f); TIM_SetCounter(TIM2, 0); TIM_Cmd(TIM2, ENABLE); GPIO_PinAFConfig(GPIOB,GPIO_PinSource3,GPIO_AF_TIM2); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; GPIO_Init(GPIOB, GPIO_InitStructure); |
|
相关推荐
1个回答
|
|
根据您提供的代码片段,我将逐步分析可能导致STM32F205定时器2 ETR功能读不出数据的原因。
1. 首先,确保您已经正确地配置了GPIOB的PB3引脚。由于ETR被重映射到PB3,您需要设置PB3为浮空输入模式。以下是配置PB3的示例代码: ```c GPIO_InitTypeDef GPIO_InitStructure; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; GPIO_Init(GPIOB, &GPIO_InitStructure); ``` 2. 检查ETR重映射是否正确配置。在您的代码中,没有看到ETR重映射的配置。您需要在初始化TIM2之前,配置ETR重映射。以下是示例代码: ```c AFIO_InitTypeDef AFIO_InitStructure; AFIO_InitStructure.AFIO_MAPR = AFIO_MAPR_TIM2_ETR_RMP; AFIO_Init(&AFIO_InitStructure); ``` 3. 接下来,确保您正确地配置了TIM2的ETR输入。以下是配置ETR的示例代码: ```c TIM_ETRInitTypeDef TIM_ETRInitStructure; TIM_ETRInitStructure.TIM_ExtTRGPSC = TIM_ExtTRGPSC_OFF; TIM_ETRInitStructure.TIM_ExtTRGPolarity = TIM_ExtTRGPolarity_NonInverted; TIM_ETRInitStructure.TIM_ExtTRGFilter = 0xF; TIM_ETRClockMSMConfig(TIM2, &TIM_ETRInitStructure); ``` 4. 确保您的定时器时基配置正确。从您提供的代码片段中,我注意到TIM_ClockDivision字段没有正确设置。您需要将其设置为TIM_CKD_DIV1,如下所示: ```c TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; ``` 5. 最后,确保您已经正确地初始化了TIM2,并启动了计数器。以下是示例代码: ```c TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure); TIM_Cmd(TIM2, ENABLE); ``` 综上所述,您需要检查GPIOB的PB3引脚配置、ETR重映射配置、ETR输入配置、定时器时基配置以及TIM2的初始化和计数器启动。如果这些步骤都正确无误,那么您的STM32F205定时器2 ETR功能应该能够正常读取数据。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
806 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
516 浏览 1 评论
353 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
280 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
675 浏览 2 评论
1429浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
82浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
142浏览 3评论
129浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
112浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-6-2 01:13 , Processed in 0.616715 second(s), Total 45, Slave 40 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号