1
完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
大家好!
我今天想用STM32F103C8T6的tiM1作为1KHz定时器,但是,注意到该定时器的中断频率不正确。请大家帮助一下啊,先谢谢啦 代码如下: #include "TIM1.h" /* * 函数名:TIM1_Mode_Config * 描述 :TIM1 输出PWM信号初始化,只要调用这个函数 * 输入 :无 * 输出 :无 * 调用 :外部调用 */ void TIM1_Init(void) { RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE); NVIC_TIM1_Configuration(); // TIM1_GPIO_Config(); TIM1_Configuration(); } void NVIC_TIM1_Configuration(void) { NVIC_InitTypeDef NVIC_InitStructure; //打开TIM1的全局中断,在中断中判断是更新中断还是捕捉中断 /* Enable the TIM1 global Interrupt */ NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0); NVIC_InitStructure.NVIC_IRQChannel = TIM1_UP_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 4; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); } /* * 函数名:TIM1_GPIO_Config * 描述 :配置TIM1复用输出PWM时用到的I/O * 输入 :无 * 输出 :无 * 调用 :内部调用 */ void TIM1_GPIO_Config(void) { GPIO_InitTypeDef GPIO_InitStructure; GPIO_StructInit(&GPIO_InitStructure); /*转速输入,捕捉输入模式 用PA0配置成 */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA, &GPIO_InitStructure); /* GPIO_StructInit(&GPIO_InitStructure); //转速输入,捕捉输入模式 用PA0配置成 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOB, &GPIO_InitStructure);*/ } //转速输入捕捉, void TIM1_Configuration(void) { TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; TIM_ICInitTypeDef TIM_ICInitStructure; //TIM_ICInitTypeDef TIM_ICInitStructure; /* Time Base configuration */ TIM_DeInit(TIM1); TIM_TimeBaseStructure.TIM_Prescaler = 7200-1; TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; TIM_TimeBaseStructure.TIM_Period = 10000-1; TIM_TimeBaseStructure.TIM_ClockDivision = 0; //TIM_TimeBaseStructure.TIM_RepetitionCounter = 0; TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure); /* TIM_ICInitStructure.TIM_Channel = TIM_Channel_2; TIM_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Falling; TIM_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI; TIM_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1; TIM_ICInitStructure.TIM_ICFilter = 0; TIM_ICInit(TIM1, &TIM_ICInitStructure); */ // TIM_TIxExternalClockConfig(TIM1,TIM_TIxExternalCLK1Source_TI1,TIM_ICPolarity_Rising,0);//设置为外部输入 //TIM_ETRClockMode2Config(TIM1, TIM_ExtTRGPSC_OFF, TIM_ExtTRGPolarity_NonInverted, 0); // TIM_SetCounter(TIM1, 0); // 清零计数器CNT TIM_ClearFlag(TIM1, TIM_FLAG_Update); /* 清除溢出中断标志 */ TIM_ITConfig(TIM1,TIM_IT_Update,ENABLE); //TIM_OC4PreloadConfig(TIM4, TIM_OCPreload_Enable); TIM_ARRPreloadConfig(TIM1, ENABLE); // 使能TIM4重载寄存器ARR TIM_Cmd(TIM1,ENABLE);//使能计数 } void TIM1_Configuration1(void) //?????????? { TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; //??TIMER1????? TIM_DeInit(TIM1); TIM_TimeBaseStructure.TIM_Period = 0xFFFF; TIM_TimeBaseStructure.TIM_Prescaler = 0x00; TIM_TimeBaseStructure.TIM_ClockDivision = 0x0; TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure); // Time base configuration TIM_ETRClockMode2Config(TIM1, TIM_ExtTRGPSC_OFF, TIM_ExtTRGPolarity_NonInverted, 0); TIM_SetCounter(TIM1, 0); // 清零计数器CNT TIM_Cmd(TIM1, ENABLE); } |
|
相关推荐
8个回答
|
|
72MHZ的话
7200-1----10000-1----->1HZ 7200-1----10-1--------->1000HZ TIM_TimeBaseStructure.TIM_Period = 10-1; |
|
|
|
请先跑几个标准库的程序。
“STM32F10x_StdPeriph_Lib_V3.1.2ProjectSTM32F10x_StdPeriph_ExamplesTIMTimeBase” 你的程序不全。 |
|
|
|
|
|
|
|
非常感谢大家的帮助
|
|
|
|
按照上述的参数修改了,计时时间仍然不是1000hz,是不是时钟那里设置有问题呢? |
|
|
|
那就先确认系统时钟
|
|
|
|
学习了
|
|
|
|
这几个函数都没有错,你的TIM的调用程序?要不你用CUBE快速生成一个测试程序看看。
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
STM32配合可编程加密芯片SMEC88ST的防抄板加密方案设计
1047 浏览 0 评论
2375 浏览 1 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
2173 浏览 3 评论
4805 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
2318 浏览 1 评论
小黑屋| 手机版| Archiver| 德赢Vwin官网 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-30 18:30 , Processed in 0.943626 second(s), Total 59, Slave 52 queries .
Powered by 德赢Vwin官网 网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
德赢Vwin官网 观察
版权所有 © 湖南华秋数字科技有限公司
德赢Vwin官网 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号