OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2748|回复: 3

time3和time4的参数之间会影响啊?初始化完四 定时器三的参数就变成了四的参数

[复制链接]

115

主题

548

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2104
金钱
2104
注册时间
2013-11-27
在线时间
518 小时
发表于 2015-10-23 00:23:20 | 显示全部楼层 |阅读模式
5金钱
[mw_shl_code=c,true]
[mw_shl_code=c,true]void TIM4_Int_Init(u16 arr,u16 psc) { TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; NVIC_InitTypeDef NVIC_InitStructure; RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4, ENABLE); //?±?????? //?¨?±?÷TIM4?????? TIM_TimeBaseStructure.TIM_Period = arr; //?è???????????ü??????×°????????×?????×°???????÷???????? TIM_TimeBaseStructure.TIM_Prescaler =psc; //?è??????×÷??TIMx?±?????????????¤·????? TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; //?è???±??·???:TDTS = Tck_tim TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; //TIM?ò?????????? TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); //?ù?????¨????????????TIMx???±???ù?????? TIM_ITConfig(TIM4,TIM_IT_Update,ENABLE ); //???????¨??TIM4????,???í?ü?????? //??????????NVIC?è?? NVIC_InitStructure.NVIC_IRQChannel = TIM4_IRQn; //TIM3???? NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; //??????????0?? NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3; //????????3?? NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQ?¨??±????? NVIC_Init(&NVIC_InitStructure); //??????NVIC?????÷ TIM_Cmd(TIM4, DISABLE); //????TIMx } void TIM3_Int_Init(u16 arr,u16 psc) { TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; NVIC_InitTypeDef NVIC_InitStructure; RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); //?±?????? //?¨?±?÷TIM3?????? TIM_TimeBaseStructure.TIM_Period = arr; //?è???????????ü??????×°????????×?????×°???????÷???????? TIM_TimeBaseStructure.TIM_Prescaler =psc; //?è??????×÷??TIMx?±?????????????¤·????? TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; //?è???±??·???:TDTS = Tck_tim TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; //TIM?ò?????????? TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); //?ù?????¨????????????TIMx???±???ù?????? TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE ); //???????¨??TIM3????,???í?ü?????? //??????????NVIC?è?? NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn; //TIM3???? NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; //??????????0?? NVIC_InitStructure.NVIC_IRQChannelSubPriority = 4; //????????3?? NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQ?¨??±????? NVIC_Init(&NVIC_InitStructure); //??????NVIC?????÷ TIM_Cmd(TIM3, ENABLE); //????TIMx }[/mw_shl_code]

定时器四是在定时器三之后初始化的 [/mw_shl_code] [mw_shl_code=c,true]定时器四初始化完以后 定时器三里面的arr和pse就变成了四的值了[/mw_shl_code]

[mw_shl_code=c,true]void TIM3_Int_Init(u16 arr,u16 psc) { TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; NVIC_InitTypeDef NVIC_InitStructure; RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); //?±?????? //?¨?±?÷TIM3?????? TIM_TimeBaseStructure.TIM_Period = arr; //?è???????????ü??????×°????????×?????×°???????÷???????? TIM_TimeBaseStructure.TIM_Prescaler =psc; //?è??????×÷??TIMx?±?????????????¤·????? TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; //?è???±??·???:TDTS = Tck_tim TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; //TIM?ò?????????? TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); //?ù?????¨????????????TIMx???±???ù?????? TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE ); //???????¨??TIM3????,???í?ü?????? //??????????NVIC?è?? NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn; //TIM3???? NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; //??????????0?? NVIC_InitStructure.NVIC_IRQChannelSubPriority = 4; //????????3?? NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQ?¨??±????? NVIC_Init(&NVIC_InitStructure); //??????NVIC?????÷ TIM_Cmd(TIM3, ENABLE); //????TIMx }[/mw_shl_code]

[mw_shl_code=c,true]void TIM3_Int_Init(u16 arr,u16 psc) { TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; NVIC_InitTypeDef NVIC_InitStructure; RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); //?±?????? //?¨?±?÷TIM3?????? TIM_TimeBaseStructure.TIM_Period = arr; //?è???????????ü??????×°????????×?????×°???????÷???????? TIM_TimeBaseStructure.TIM_Prescaler =psc; //?è??????×÷??TIMx?±?????????????¤·????? TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; //?è???±??·???:TDTS = Tck_tim TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; //TIM?ò?????????? TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); //?ù?????¨????????????TIMx???±???ù?????? TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE ); //???????¨??TIM3????,???í?ü?????? //??????????NVIC?è?? NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn; //TIM3???? NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; //??????????0?? NVIC_InitStructure.NVIC_IRQChannelSubPriority = 4; //????????3?? NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQ?¨??±????? NVIC_Init(&NVIC_InitStructure); //??????NVIC?????÷ TIM_Cmd(TIM3, ENABLE); //????TIMx } void TIM4_Int_Init(u16 arr,u16 psc) { TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; NVIC_InitTypeDef NVIC_InitStructure; RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4, ENABLE); //?±?????? //?¨?±?÷TIM4?????? TIM_TimeBaseStructure.TIM_Period = arr; //?è???????????ü??????×°????????×?????×°???????÷???????? TIM_TimeBaseStructure.TIM_Prescaler =psc; //?è??????×÷??TIMx?±?????????????¤·????? TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; //?è???±??·???:TDTS = Tck_tim TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; //TIM?ò?????????? TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); //?ù?????¨????????????TIMx???±???ù?????? TIM_ITConfig(TIM4,TIM_IT_Update,ENABLE ); //???????¨??TIM4????,???í?ü?????? //??????????NVIC?è?? NVIC_InitStructure.NVIC_IRQChannel = TIM4_IRQn; //TIM3???? NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; //??????????0?? NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3; //????????3?? NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQ?¨??±????? NVIC_Init(&NVIC_InitStructure); //??????NVIC?????÷ TIM_Cmd(TIM4, DISABLE); //????TIMx }[/mw_shl_code]

最佳答案

查看完整内容[请看2#楼]

LZ这问题还不简单吗  说明你配置TIM4的时候, 配置成TIM3了呗, 你看你的TIM4初始化这句  TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); 还有如果中断分组是2,  你的TIM3中断优先级, 子优先级怎么可能是4
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

2170

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
5787
金钱
5787
注册时间
2013-11-22
在线时间
1213 小时
发表于 2015-10-23 00:23:21 | 显示全部楼层
LZ这问题还不简单吗  说明你配置TIM4的时候, 配置成TIM3了呗, 你看你的TIM4初始化这句  TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);
还有如果中断分组是2,  你的TIM3中断优先级, 子优先级怎么可能是4
回复

使用道具 举报

22

主题

180

帖子

1

精华

高级会员

Rank: 4

积分
616
金钱
616
注册时间
2015-6-29
在线时间
101 小时
发表于 2015-10-23 10:23:30 | 显示全部楼层
一句话,你的代码有问题,自己找
我是菜鸟
回复

使用道具 举报

115

主题

548

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2104
金钱
2104
注册时间
2013-11-27
在线时间
518 小时
 楼主| 发表于 2015-10-23 22:52:57 | 显示全部楼层
回复【3楼】lycreturn:
---------------------------------
嗯  后来看出来了,谢谢了,今天又看了一遍了,哈哈 谢谢啦
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-18 19:59

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表