From d7f957eb56272e006de3dd404454cdf56de86655 Mon Sep 17 00:00:00 2001
From: yincheng.zhong <634916154@qq.com>
Date: 星期日, 25 二月 2024 18:42:52 +0800
Subject: [PATCH] 调通数据上报,测距,同步

---
 Src/OnChipDevices/Rcc_Nvic_Systick.c |  321 +++++++++++++++++++++++++++++++----------------------
 1 files changed, 189 insertions(+), 132 deletions(-)

diff --git a/Src/OnChipDevices/Rcc_Nvic_Systick.c b/Src/OnChipDevices/Rcc_Nvic_Systick.c
index 15cffba..955d7d8 100644
--- a/Src/OnChipDevices/Rcc_Nvic_Systick.c
+++ b/Src/OnChipDevices/Rcc_Nvic_Systick.c
@@ -2,79 +2,79 @@
 
 //void Rcc_Init(void)
 //{
-//	//----------使用内部RC晶振HSI 64MHz----------- 
-//	RCC_DeInit(); 										//将外设RCC寄存器重设为缺省值 
+//	//----------使用内部RC晶振HSI 64MHz-----------
+//	RCC_DeInit(); 										//将外设RCC寄存器重设为缺省值
 //	RCC_HSICmd(ENABLE); 								//内部时钟使能
-//	while(RCC_GetFlagStatus(RCC_FLAG_HSIRDY)== RESET);	//等待HSI就绪 
-//	
-//	FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);	//选择FLASH预取指缓存的模,预取指缓存使能 
-//	FLASH_SetLatency(FLASH_Latency_2);   				//设置FLASH存储器延时时钟周期数FLASH_Latency_2  2延时周期   
-//	
-//	
-//	RCC_HCLKConfig(RCC_SYSCLK_Div1);   					//设置AHB时钟(HCLK) RCC_SYSCLK_Div1——AHB时钟 = 系统时钟 
-//	RCC_PCLK2Config(RCC_HCLK_Div1);   					//设置高速AHB时钟(PCLK2)RCC_HCLK_Div1——APB2时钟 = HCLK     
-//	RCC_PCLK1Config(RCC_HCLK_Div2); 					//设置低速AHB时钟(PCLK1)RCC_HCLK_Div2——APB1时钟 = HCLK/2      
-//	RCC_PLLConfig(RCC_PLLSource_HSI_Div2, RCC_PLLMul_16);	//设置PLL时钟源及倍频系数,频率为8/2*16=64Mhz    
-//	RCC_PLLCmd(ENABLE);   								//使能PLL 
-//	
-//	while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET); //检查指定的RCC标志位(PLL准备好标志)设置与否    
-//	RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);  		//设置系统时钟(SYSCLK) 
-//	while(RCC_GetSYSCLKSource() != 0x08);     			//0x08:PLL作为系统时钟   
+//	while(RCC_GetFlagStatus(RCC_FLAG_HSIRDY)== RESET);	//等待HSI就绪
+//
+//	FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);	//选择FLASH预取指缓存的模,预取指缓存使能
+//	FLASH_SetLatency(FLASH_Latency_2);   				//设置FLASH存储器延时时钟周期数FLASH_Latency_2  2延时周期
+//
+//
+//	RCC_HCLKConfig(RCC_SYSCLK_Div1);   					//设置AHB时钟(HCLK) RCC_SYSCLK_Div1——AHB时钟 = 系统时钟
+//	RCC_PCLK2Config(RCC_HCLK_Div1);   					//设置高速AHB时钟(PCLK2)RCC_HCLK_Div1——APB2时钟 = HCLK
+//	RCC_PCLK1Config(RCC_HCLK_Div2); 					//设置低速AHB时钟(PCLK1)RCC_HCLK_Div2——APB1时钟 = HCLK/2
+//	RCC_PLLConfig(RCC_PLLSource_HSI_Div2, RCC_PLLMul_16);	//设置PLL时钟源及倍频系数,频率为8/2*16=64Mhz
+//	RCC_PLLCmd(ENABLE);   								//使能PLL
+//
+//	while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET); //检查指定的RCC标志位(PLL准备好标志)设置与否
+//	RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);  		//设置系统时钟(SYSCLK)
+//	while(RCC_GetSYSCLKSource() != 0x08);     			//0x08:PLL作为系统时钟
 
-////	//----------使用外部RC晶振 72MHz-----------  
-////    RCC_DeInit();           //初始化为缺省值  
-////    RCC_HSEConfig(RCC_HSE_ON);  //使能外部的高速时钟   
-////    while(RCC_GetFlagStatus(RCC_FLAG_HSERDY) == RESET); //等待外部高速时钟使能就绪  
-////      
-////    FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);   //Enable Prefetch Buffer  
-////    FLASH_SetLatency(FLASH_Latency_2);      //Flash 2 wait state  
-////      
-////    RCC_HCLKConfig(RCC_SYSCLK_Div1);        //HCLK = SYSCLK  
-////    RCC_PCLK2Config(RCC_HCLK_Div1);         //PCLK2 =  HCLK  
-////    RCC_PCLK1Config(RCC_HCLK_Div2);         //PCLK1 = HCLK/2  
-////    RCC_PLLConfig(RCC_PLLSource_HSE_Div1,RCC_PLLMul_9); //PLLCLK = 8MHZ * 9 =72MHZ  
-////    RCC_PLLCmd(ENABLE);         //Enable PLLCLK  
-////  
-////    while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET); //Wait till PLLCLK is ready  
-////    RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);  //Select PLL as system clock  
-////    while(RCC_GetSYSCLKSource()!=0x08);     //Wait till PLL is used as system clock source  
-//		
+////	//----------使用外部RC晶振 72MHz-----------
+////    RCC_DeInit();           //初始化为缺省值
+////    RCC_HSEConfig(RCC_HSE_ON);  //使能外部的高速时钟
+////    while(RCC_GetFlagStatus(RCC_FLAG_HSERDY) == RESET); //等待外部高速时钟使能就绪
+////
+////    FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);   //Enable Prefetch Buffer
+////    FLASH_SetLatency(FLASH_Latency_2);      //Flash 2 wait state
+////
+////    RCC_HCLKConfig(RCC_SYSCLK_Div1);        //HCLK = SYSCLK
+////    RCC_PCLK2Config(RCC_HCLK_Div1);         //PCLK2 =  HCLK
+////    RCC_PCLK1Config(RCC_HCLK_Div2);         //PCLK1 = HCLK/2
+////    RCC_PLLConfig(RCC_PLLSource_HSE_Div1,RCC_PLLMul_9); //PLLCLK = 8MHZ * 9 =72MHZ
+////    RCC_PLLCmd(ENABLE);         //Enable PLLCLK
+////
+////    while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET); //Wait till PLLCLK is ready
+////    RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);  //Select PLL as system clock
+////    while(RCC_GetSYSCLKSource()!=0x08);     //Wait till PLL is used as system clock source
+//
 //}
 int RCC_Configuration(void)
 {
-	ErrorStatus HSEStartUpStatus;
-	RCC_ClocksTypeDef RCC_ClockFreq;
+    ErrorStatus HSEStartUpStatus;
+    RCC_ClocksTypeDef RCC_ClockFreq;
 
-	/* RCC system reset(for debug purpose) */
-	RCC_DeInit();
+    /* RCC system reset(for debug purpose) */
+    RCC_DeInit();
 
-	/* Enable HSE */
-	RCC_HSEConfig(RCC_HSE_ON);
+    /* Enable HSE */
+    RCC_HSEConfig(RCC_HSE_ON);
 
-	/* Wait till HSE is ready */
-	HSEStartUpStatus = RCC_WaitForHSEStartUp();
+    /* Wait till HSE is ready */
+    HSEStartUpStatus = RCC_WaitForHSEStartUp();
 
-	if(HSEStartUpStatus != ERROR)
-	{
-		SystemInit();
-		/* Enable Prefetch Buffer */
-		FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);
+    if(HSEStartUpStatus != ERROR)
+    {
+        SystemInit();
+        /* Enable Prefetch Buffer */
+        FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);
 
-		/****************************************************************/
-		/* HSE= up to 25MHz (on EVB1000 is 12MHz),
-		 * HCLK=72MHz, PCLK2=72MHz, PCLK1=36MHz 						*/
-		/****************************************************************/
-		/* Flash 2 wait state */
-		FLASH_SetLatency(FLASH_Latency_2);
-		/* HCLK = SYSCLK */
-		RCC_HCLKConfig(RCC_SYSCLK_Div1);
-		/* PCLK2 = HCLK */
-		RCC_PCLK2Config(RCC_HCLK_Div1);
-		/* PCLK1 = HCLK/2 */
-		RCC_PCLK1Config(RCC_HCLK_Div2);
-		/*  ADCCLK = PCLK2/4 */
-		RCC_ADCCLKConfig(RCC_PCLK2_Div6);
-	}
+        /****************************************************************/
+        /* HSE= up to 25MHz (on EVB1000 is 12MHz),
+         * HCLK=72MHz, PCLK2=72MHz, PCLK1=36MHz 						*/
+        /****************************************************************/
+        /* Flash 2 wait state */
+        FLASH_SetLatency(FLASH_Latency_2);
+        /* HCLK = SYSCLK */
+        RCC_HCLKConfig(RCC_SYSCLK_Div1);
+        /* PCLK2 = HCLK */
+        RCC_PCLK2Config(RCC_HCLK_Div1);
+        /* PCLK1 = HCLK/2 */
+        RCC_PCLK1Config(RCC_HCLK_Div2);
+        /*  ADCCLK = PCLK2/4 */
+        RCC_ADCCLKConfig(RCC_PCLK2_Div6);
+    }
 //		/* Configure PLLs *********************************************************/
 //		/* PLL2 configuration: PLL2CLK = (HSE / 4) * 8 = 24 MHz */
 //		RCC_PREDIV2Config(RCC_PREDIV2_Div4);
@@ -104,45 +104,45 @@
 //		while (RCC_GetSYSCLKSource() != 0x08){}
 //	}
 
-	RCC_GetClocksFreq(&RCC_ClockFreq);
+    RCC_GetClocksFreq(&RCC_ClockFreq);
 
-	/* Enable SPI1 clock */
-	RCC_APB2PeriphClockCmd(RCC_APB2Periph_SPI1, ENABLE);
+    /* Enable SPI1 clock */
+    RCC_APB2PeriphClockCmd(RCC_APB2Periph_SPI1, ENABLE);
 
-	/* Enable SPI2 clock */
-	RCC_APB1PeriphClockCmd(RCC_APB1Periph_SPI2, ENABLE);
+    /* Enable SPI2 clock */
+    RCC_APB1PeriphClockCmd(RCC_APB1Periph_SPI2, ENABLE);
 
-	/* Enable GPIOs clocks */
-	RCC_APB2PeriphClockCmd(
-						RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB |
-						RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOD |
-						RCC_APB2Periph_GPIOE | RCC_APB2Periph_AFIO,
-						ENABLE);
+    /* Enable GPIOs clocks */
+    RCC_APB2PeriphClockCmd(
+        RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB |
+        RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOD |
+        RCC_APB2Periph_GPIOE | RCC_APB2Periph_AFIO,
+        ENABLE);
 
-	return 0;
+    return 0;
 }
 void Nvic_Init(void)
 {
-	NVIC_InitTypeDef NVIC_InitStructure;
-	
-	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);
-	
-	/* Enable and set EXTI Interrupt to the lowest priority */
+    NVIC_InitTypeDef NVIC_InitStructure;
+
+    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);
+
+    /* Enable and set EXTI Interrupt to the lowest priority */
     NVIC_InitStructure.NVIC_IRQChannel = DECAIRQ_EXTI_IRQn;
     NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 15;
     NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
     NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
 
-		NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;
-		NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
-		NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
-		NVIC_Init(&NVIC_InitStructure);
-	
-		NVIC_InitStructure.NVIC_IRQChannel = RTCAlarm_IRQn;
+    NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;
+    NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
+    NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
+    NVIC_Init(&NVIC_InitStructure);
+
+    NVIC_InitStructure.NVIC_IRQChannel = RTCAlarm_IRQn;
     NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
     NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
-		NVIC_InitStructure.NVIC_IRQChannelCmd =ENABLE;
-	
+    NVIC_InitStructure.NVIC_IRQChannelCmd =ENABLE;
+
     NVIC_Init(&NVIC_InitStructure);
 }
 //?????3?????
@@ -153,61 +153,118 @@
 void TIM3_Int_Init(void)
 {
     TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
-	NVIC_InitTypeDef NVIC_InitStructure;
- 
-	RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); //????
-	
-	//???TIM3???
-	TIM_TimeBaseStructure.TIM_Period = 1000-1; //???????????????????????????	
-	TIM_TimeBaseStructure.TIM_Prescaler =72-1; //??????TIMx???????????
-	TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; //??????:TDTS = Tck_tim
-	TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;  //TIM??????
-	TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); //??????????TIMx???????
- 
-	TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE ); //?????TIM3??,??????
- 
-	//?????NVIC??
-	NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn;  //TIM3??
-	NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;  //?????0?
-	NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;  //????3?
-	NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQ?????
-	NVIC_Init(&NVIC_InitStructure);  //???NVIC???
- 
- 
-	TIM_Cmd(TIM3, ENABLE);  //??TIMx					 
+    NVIC_InitTypeDef NVIC_InitStructure;
+
+    RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); //????
+
+    //???TIM3???
+    TIM_TimeBaseStructure.TIM_Period = 1000-1; //???????????????????????????
+    TIM_TimeBaseStructure.TIM_Prescaler =72-1; //??????TIMx???????????
+    TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; //??????:TDTS = Tck_tim
+    TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;  //TIM??????
+    TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); //??????????TIMx???????
+
+    TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE ); //?????TIM3??,??????
+
+    //?????NVIC??
+    NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn;  //TIM3??
+    NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;  //?????0?
+    NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;  //????3?
+    NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQ?????
+    NVIC_Init(&NVIC_InitStructure);  //???NVIC???
+
+
+    TIM_Cmd(TIM3, ENABLE);  //??TIMx
 }
 //???3??????
 int Systick_Init(void)
 {
-	int time_retry = 500;
-	if (SysTick_Config(72000))
-	{
+    int time_retry = 500;
+    if (SysTick_Config(72000))
+    {
         /* Capture error */
         while (time_retry--);
-		return 1;
+        return 1;
     }
     NVIC_SetPriority(SysTick_IRQn, 5);
 
     return 0;
-	
+
 }
 
-void delay_us(uint32_t nTimer)  
-{  
-    uint32_t i=0;  
-    for(i=0;i<nTimer;i++){  
-        __NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();
-		__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();
-		__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();  
-        __NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();
-		__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();
-		__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();  
-        __NOP();__NOP();__NOP();__NOP(); 
-    }  
+void delay_us(uint32_t nTimer)
+{
+    uint32_t i=0;
+    for(i=0; i<nTimer; i++) {
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+        __NOP();
+    }
 }
 
-void delay_ms(uint32_t nTimer)  
-{  
-    uint32_t i=1000*nTimer;  
-    delay_us(i);  
-}  
+void delay_ms(uint32_t nTimer)
+{
+    uint32_t i=1000*nTimer;
+    delay_us(i);
+}

--
Gitblit v1.9.3