| 
 
| 用滴答定时器来计时,为什么总会有10000的跳变呢?void TimeCount_Init(void) {
 //SystemCoreClock / 1000       1ms中断一次
 //SystemCoreClock / 100000     10us中断一次
 //SystemCoreClock / 1000000    1us中断一次
 
 if(SysTick_Config(SystemCoreClock / 1000))
 {
 while(1);
 }
 SysTick->CTRL |= SysTick_CTRL_ENABLE_Msk;
 }
 void SysTick_Handler(void)
 {
 MilliS++;
 if(MilliS>=10000) MilliS=0;   //此处10000ms 主要方便延时函数使用
 if(MilliS%1000==0) {Second++;}
 if(Second>=60) {Second=0;Min++;}
 }
 
 程序是每10ms取一次MilliS的数值。最大60000
 Millis_TEMP=MilliS/10;
 Second_TEMP=Second;
 if(Millis_TEMP<Millis_TEMP_1)
 {
 TX_flag=0;
 Millis_TEMP=Millis_TEMP_1;
 }
 
 else if (Millis_TEMP==Millis_TEMP_1)
 {
 Millis_TEMP+=1;
 
 if((Millis_TEMP%100)==0)
 Second_TEMP++;
 if(Millis_TEMP==1000)
 Millis_TEMP=0;
 }
 
 Dataframe[TIME_H] = (((Millis_TEMP*10)%1000 + Second_TEMP*1000)&0xFF00)>>8;//time high
 Dataframe[TIME_L] = ((Millis_TEMP*10)%1000 + Second_TEMP*1000)&0x00FF;//time low
 
 
 | 
 
MATLAB画的相邻数据的time差   |