for里面使用延时函数程序就死了 为什么啊

2019-08-14 04:16发布

volatile u16 i,j;
for(i=0;i<j;i++)
{
  TIM1->CR1 |= TIM_CR1_CEN;
  delay_us(temp1int[2*i]);
  TIM1->CR1 &= (uint16_t)(~((uint16_t)TIM_CR1_CEN));
  delay_us(temp1int[2*i+1]);
}
delay函数使用的原子哥的不采用中断的延时函数


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
15条回答
wxjhby
1楼-- · 2019-08-15 18:25
 精彩回答 2  元偷偷看……
支离益
2楼-- · 2019-08-15 20:15
aiyeba 发表于 2017-9-1 11:57
,输入捕获那么好用都不用,你还是把基础打牢阿少年.

输出捕获不好用,我几种方式对比过了 输出捕获比纯采用外部中断每个脉冲多10us左右 我纯外部中断方式每个脉冲差最多2us 我拿示波器看过。我知道问题出在哪里了 我循环体最后一个数值赋值为0.
支离益
3楼-- · 2019-08-15 23:55
谢谢大家,知道原因了 我循环体最后执行的那一次 delayus(0)。是这样出错的

一周热门 更多>