新手上路
- 积分
- 38
- 金钱
- 38
- 注册时间
- 2016-11-11
- 在线时间
- 5 小时
|
1金钱
STM32F103 定时器2能不能1us中断一次 我弄了很多遍都不行2us就可以 1us就一直不产生中断代码如下
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2 , ENABLE);
TIM_DeInit(TIM2);
TIM_InternalClockConfig(TIM2);//设置TIM2内部时钟
TIM_TimeBaseStructure.TIM_Period=(1); /* 自动重装载寄存器周期的值(计数值) */
/* 累计 TIM_Period个频率后产生一个更新或者中断 */
TIM_TimeBaseStructure.TIM_Prescaler= (72 - 1); /* 时钟预分频数 72M/72 */
TIM_TimeBaseStructure.TIM_ClockDivision=0x0; /* 采样分频 */
TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up; /* 向上计数模式 */
TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);
TIM_ClearFlag(TIM2, TIM_FLAG_Update); /* 清除溢出中断标志 */
TIM_ARRPreloadConfig(TIM2, ENABLE);
TIM_ITConfig(TIM2,TIM_IT_Update,ENABLE);
TIM_Cmd(TIM2, ENABLE);
TIM_Period的值改为1输出的是2us的中断 改为0 就没有中断 TIM_Prescaler的晶振也改过了不行
|
最佳答案
查看完整内容[请看2#楼]
有问题,没有这么个做法。你想输出波形。应该使用PWM功能。这个功能。不用CPU参与。普通的CPU响应中断,保护现场就要用1微秒左右的时间。除非一些高速单片机,否则你的功能是会比较难实现。
|