示例#1
0
文件: bsp.c 项目: fjbali/stm32-diy
/*
********************************************************************************
** 函数名称 : BSP_Init(void)
** 函数功能 : 系统初始化
** 输    入	: 无
** 输    出	: 无
** 返    回	: 无
********************************************************************************
*/
void BSP_Init(void)
{
    RCC_Configuration();
    GPIO_Configuration();
    NVIC_Configuration();
    SysTick_Configuration();
//	USART1_Configuration();
//	USART4_Configuration();
	TIM1_Configuration();
}
示例#2
0
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;
}
示例#3
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();
		}
  }
}