/* ******************************************************************************** ** 函数名称 : BSP_Init(void) ** 函数功能 : 系统初始化 ** 输 入 : 无 ** 输 出 : 无 ** 返 回 : 无 ******************************************************************************** */ void BSP_Init(void) { RCC_Configuration(); GPIO_Configuration(); NVIC_Configuration(); SysTick_Configuration(); // USART1_Configuration(); // USART4_Configuration(); TIM1_Configuration(); }
int main(void) { // setup SYSCLK SYSCLK_Configuration(); // setup RCC RCC_Configuration(); // Remap JTRST so PB4 (red LED) can be used as GPIO_PinRemapConfig(GPIO_Remap_SWJ_NoJTRST , ENABLE); // setup system tick timer // SysTick_Configuration(); // set SysTick priority NVIC_SetPriority (SysTick_IRQn, NVIC_IPR0_PRI_1); //NVIC->ISER[0] |= (1 << SysTick_IRQn); // enable SysTick int in NVIC // Configure PB5 (green LED) and PB4 (red LED) GPIO_InitTypeDef GPIO_InitStructure; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5 | GPIO_Pin_4; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_Init(GPIOB, &GPIO_InitStructure); // Configure Timer3 & 4 to be used as push pull alternative function on pins 0 1 8 9 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_8 | GPIO_Pin_9; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_Init(GPIOB, &GPIO_InitStructure); GPIO_PinRemapConfig(GPIO_PartialRemap_TIM3, ENABLE); // Setup timers TIM1_Configuration(); TIM2_Configuration(); TIM3_Configuration(); TIM4_Configuration(); // FreeRTOS initialization FreeRTOS_Configuration(); // start scheduler vTaskStartScheduler(); return 0; }
/********************************************************************************* *Function : void init(void) *Description : initiale *Input : none *Output : none *Return : none *author : lz *date : 6-December-2014 *Others : none **********************************************************************************/ void init(void) { //disable JTAG-DP,release pin 29(PB3),30(PB4),23(PA15) RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO , ENABLE); #ifdef DFU_BUILD_ENABLE NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x5000); // lz #endif #ifdef SWD_JTAG_DISABLE /* Disable the Serial Wire JTAG Debug Port SWJ-DP */ GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE); #endif // Set Systick to 1ms interval, common to all SAM3 variants if (SysTick_Config(SystemCoreClock / 1000)) { // Capture error while (true); } /* Configure the SysTick Handler Priority: Preemption priority and subpriority */ NVIC_SetPriority(SysTick_IRQn, SYSTICK_IRQ_PRIORITY); //digital pin default output low for (unsigned i = 0; i < FIRST_ANALOG_PIN+TOTAL_ANALOG_PINS; i++) { pinMode(i, OUTPUT); digitalWrite(i, LOW); } RTC_Configuration(); DWT_Init(); #ifdef IWDG_RESET_ENABLE IWDG_Reset_Enable(3 * TIMING_IWDG_RELOAD); #endif NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4); TIM1_Configuration(); TIM_Cmd(TIM1, DISABLE); //定时器关闭 NVIC_DisableIRQ(TIM1_UP_IRQn); }
int main(void) { while (1); /* Configuration */ SystemInit(); LED_Configuration(); BUZZ_Configuration(); //ADC_Configuration(); CAN_Configuration(); /****************************µ×Å̳õʼ»¯******************************/ Elmo_Init(elmo, 3); // PositionPID_Init(); PositionIPD_Init(); MoveLock(); Delay_ms(100); BLUETOOTH_Configuration(); Delay_ms(100); Encoder_Clear(); Delay_ms(1000); MPU6500_init(); TIM1_Configuration(); TIM2_Configuration(); TIM3_Configuration(); TIM4_Configuration(); if (SysTick_Config(SystemCoreClock / 1000)) /* Setup SysTick Timer for 1 msec interrupts */ { while(1){LED_ON(LED2);}/* Capture error */ } // IpdAxisX.setpoint = 200; // IpdAngle.setpoint = 90; // PidAxisX.setpoint = 200; // CMDVelocity.X = 10; // CMDVelocity.Y = 0; // CMDVelocity.A = 0;//Degree/Second // Elmo_Write(&elmo[0],0x01,0x01,50); while (1) { if(MPU_FLAG == 1) { MPU_FLAG = 0; } if(MAPAN_FLAG == 1) { MAPAN_FLAG = 0; // LED_TOGGLE(LED1); MapanTask();//ÂëÅÌ } if(PID_PFLAG ==1) { PID_PFLAG = 0; // PositionPIDCal(); PositionIPDCal(); VelocityTransform(); // LED_TOGGLE(LED2); } if (LED_FLAG == 1) { LED_FLAG = 0; // SquareTracking(); // CircleTracking(); // GoBack(); // LED_TOGGLE(LED3); // SignalTracking(); // angle_print(); // PositionVelocity_print(); } } }