打印

这个芯片是不是坏了

[复制链接]
1064|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
TTRFC|  楼主 | 2023-10-15 11:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
业余玩家 闲得无聊 买了一块STM8103F3P6的最小板 接了一个SR04的超声波测距模块 搞了几天都搞不懂 试了输入捕获 结果 捕获的两个值 一样。。。 看网上的 计数器来算  但是 好像又是错的  抄了别实现成功的代码 感觉出来还是有问题 我很疑惑 纳闷 虽然不是学这个的  但是看了那一部分东西 感觉也没那么难呀 反转就是 搞不出了 。没事干想一步一步分开验证 结果 越看越疑惑 都快怀疑人生的 有人能帮我解答下吗 看下我附的图片。。。  上传不了图片。。。。
static uint16_t tic=0;
uint16_t ticp=0;

int main( void )
{
  //init_sr04();//初始化超声波测距设备
  uartOne();//初始化语音播报模块
  enableInterrupts();//开启系统中断
  TIM2_DeInit();
  TIM2_TimeBaseInit(TIM2_PRESCALER_8, 65535);//fmaster 16MHz
  TIM2_ITConfig(TIM2_IT_UPDATE, ENABLE);
  TIM2_ClearFlag(TIM2_FLAG_UPDATE);
  TIM2_ClearITPendingBit(TIM2_IT_UPDATE);

  while(1)
  {
      //get_cap_value();
     TIM2_SetCounter(0x0000);
     TIM2_Cmd(ENABLE);
     delay_ms(30);
     ticp=TIM2_GetCounter();
     TIM2_Cmd(DISABLE);
     delay_ms(100);
     printf("tic:%d\n",tic);
     printf("ticp:%d\n",ticp);
     TIM2_ClearFlag(TIM2_FLAG_UPDATE);
     tic=0;
     delay_ms(1000);
  }
}



INTERRUPT_HANDLER(TIM2_UPD_OVF_BRK_IRQHandler, 13)
{
  /* In order to detect unexpected events during development,
     it is recommended to set a breakpoint on the following instruction.
  */

   if(TIM2_GetITStatus(TIM2_IT_UPDATE) == SET)
   {
      tic++;
      TIM2_ClearITPendingBit(TIM2_IT_UPDATE);
   }
}


输出结果为
tic:0
ticp:-4239


输出一直是这两个值  按照理解 应该计数器会超时啊  这里输出计数器溢出 而且 为什么会有负数值输出。。。。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

2

帖子

0

粉丝