问答

汇集网友智慧,解决技术难题

TTRFC

TA的家园币:20  

  • 这个芯片是不是坏了

    业余玩家闲得无聊买了一块STM8103F3P6的最小板接了一个SR04的超声波测距模块搞了几天都搞不懂试了输入捕获结果捕获的两个值一样。。。看网上的计数器来算但是好像又是错的抄了别实现成功的代码感觉出来还是有问题我很疑惑纳闷虽然不是学这个的但是看了那一部分东西感觉也没那么难呀反转就是搞不出了。没事干想一步一步分开验证结果越看越疑惑都快怀疑人生的有人能帮我解答下吗看下我附的图片。。。上传不了图片。。。。staticuint16_ttic=0;uint16_tticp=0;intmain(void){//init_sr04();//初始化超声波测距设备uartOne();//初始化语音播报模块enableInterrupts();//开启系统中断TIM2_DeInit();TIM2_TimeBaseInit(TIM2_PRESCALER_8,65535);//fmaster16MHzTIM2_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){/*Inordertodetectunexpectedeventsduringdevelopment,itisrecommendedtosetabreakpointonthefollowinginstruction.*/if(TIM2_GetITStatus(TIM2_IT_UPDATE)==SET){tic++;TIM2_ClearITPendingBit(TIM2_IT_UPDATE);}}输出结果为tic:0ticp:-4239输出一直是这两个值按照理解应该计数器会超时啊这里输出计数器溢出而且为什么会有负数值输出。。。。

    单片机 ST

    2023-10-15 0
  • STM8103F3 想不通的输出

    业余玩家闲得无聊买了一块STM8103F3P6的最小板接了一个SR04的超声波测距模块搞了几天都搞不懂试了输入捕获结果捕获的两个值一样。。。看网上的计数器来算但是好像又是错的抄了别实现成功的代码感觉出来还是有问题我很疑惑纳闷虽然不是学这个的但是看了那一部分东西感觉也没那么难呀反转就是搞不出了。没事干想一步一步分开验证结果越看越疑惑都快怀疑人生的有人能帮我解答下吗看下我附的图片。。。上传不了图片。。。。staticuint16_ttic=0;uint16_tticp=0;intmain(void){//init_sr04();//初始化超声波测距设备uartOne();//初始化语音播报模块enableInterrupts();//开启系统中断TIM2_DeInit();TIM2_TimeBaseInit(TIM2_PRESCALER_8,65535);//fmaster16MHzTIM2_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){/*Inordertodetectunexpectedeventsduringdevelopment,itisrecommendedtosetabreakpointonthefollowinginstruction.*/if(TIM2_GetITStatus(TIM2_IT_UPDATE)==SET){tic++;TIM2_ClearITPendingBit(TIM2_IT_UPDATE);}}输出结果为tic:0ticp:-4239输出一直是这两个值按照理解应该计数器会超时啊这里输出计数器溢出而且为什么会有负数值输出。。。。

    ST STM8

    2023-10-14 0