Пример #1
0
/**
  * @brief  Main program.
  * @param  None
  * @retval None
  */
int main(void)
{
  uint8_t error_can=0;
  USART_Configuration();
  printf("\r\nCAN-Bus Test \r\n");
  printf("CAN-Bus Speed 100kHz \r\n");
  printf("Please click USER key.\r\n");

  Key_Config();
  CAN1_Config();
  CAN2_Config();
  NVIC_Config();
    /* Infinite loop */
  while (1)
	{
	  while(GPIO_ReadInputDataBit(USER_KEY_Port,USER_KEY_Pin));
	  Can1WriteData(0x123);
	  while( Can2Flag == DISABLE );
      Can2Flag = DISABLE;	 
      printf("CAN2 Receive Data \r\n");
      printf("CAN2 ID %x \r\n",CAN2_ID);
      printf("CAN2_DATA0 %x \r\n",CAN2_DATA0);
      printf("CAN2_DATA1 %x \r\n",CAN2_DATA1);
      printf("CAN2_DATA2 %x \r\n",CAN2_DATA2);
      printf("CAN2_DATA3 %x \r\n",CAN2_DATA3);
      printf("CAN2_DATA4 %x \r\n",CAN2_DATA4);
      printf("CAN2_DATA5 %x \r\n",CAN2_DATA5);
      printf("CAN2_DATA6 %x \r\n",CAN2_DATA6);
      printf("CAN2_DATA7 %x \r\n",CAN2_DATA7);	
	  if(CAN2_ID!=0x123 || 
	  CAN2_DATA0!=CAN1_DATA0 || 
	  CAN2_DATA1!=CAN1_DATA1 || 
	  CAN2_DATA2!=CAN1_DATA2 || 
	  CAN2_DATA3!=CAN1_DATA3 || 
	  CAN2_DATA4!=CAN1_DATA4 || 
	  CAN2_DATA5!=CAN1_DATA5 || 
	  CAN2_DATA6!=CAN1_DATA6 || 
	  CAN2_DATA7!=CAN1_DATA7 )
	   {printf("CAN1 发送或者CAN2 接收有问题\r\n");error_can=1;}

      Can2WriteData(0x321);
	  while( Can1Flag == DISABLE );
      Can1Flag = DISABLE; 
      printf("CAN1 Receive Data \r\n");
      printf("CAN1 ID %x \r\n",CAN1_ID);
      printf("CAN1_DATA0 %x \r\n",CAN1_DATA0);
      printf("CAN1_DATA1 %x \r\n",CAN1_DATA1);
      printf("CAN1_DATA2 %x \r\n",CAN1_DATA2);
      printf("CAN1_DATA3 %x \r\n",CAN1_DATA3);
      printf("CAN1_DATA4 %x \r\n",CAN1_DATA4);
      printf("CAN1_DATA5 %x \r\n",CAN1_DATA5);
      printf("CAN1_DATA6 %x \r\n",CAN1_DATA6);
      printf("CAN1_DATA7 %x \r\n",CAN1_DATA7);	
	  if(CAN1_ID!=0x321 || 
	  CAN1_DATA0!=CAN2_DATA0 || 
	  CAN1_DATA1!=CAN2_DATA1 || 
	  CAN1_DATA2!=CAN2_DATA2 || 
	  CAN1_DATA3!=CAN2_DATA3 || 
	  CAN1_DATA4!=CAN2_DATA4 || 
	  CAN1_DATA5!=CAN2_DATA5 || 
	  CAN1_DATA6!=CAN2_DATA6 || 
	  CAN1_DATA7!=CAN2_DATA7 )
	   {printf("CAN2 发送或者CAN1 接收有问题\r\n");error_can=1;}
  	  while(!GPIO_ReadInputDataBit(USER_KEY_Port,USER_KEY_Pin));
	  if(error_can==0){printf("CAN1 CAN2正常!\r\n");}
  }
}
Пример #2
0
/**
  * @brief  Main program.
  * @param  None
  * @retval None
  */
int main(void)
{
  /*!< At this stage the microcontroller clock setting is already configured to 
       168 MHz, this is done through SystemInit() function which is called from
       startup file (startup_stm32f4xx.s) before to branch to application main.
       To reconfigure the default setting of SystemInit() function, refer to
       system_stm32f4xx.c file
     */ 
	 
	   int TestStatus; 

#ifdef SERIAL_DEBUG
  //DebugComPort_Init();
#endif
  
  Printf_Init();

    
  printf("long = %d int = %d short = %d char = %d\r\n", sizeof(long), sizeof(int), sizeof(short), sizeof(char));
  /*Initialize LCD and Leds */ 
  LCD_LED_Init();

  TestStatus = CAN1_Config();
	if(TestStatus == -1)
	{
		printf("CAN1_Config failed\r\n"); 	
	}
	else
	{
		printf("CAN1_Config success\r\n");
	}
  /* configure ethernet (GPIOs, clocks, MAC, DMA) */ 
  //ETH_BSP_Config();

 // printf("\n\r\r\n ARMJISHU.COM神舟王STM32F407ZGT开发板 FreeRTOS V6.1.0 httpserver_netconn 例程\r\n"); 
    
  /* Initilaize the LwIP stack */
  //printf("\n\r LwIP_Init\r\n");
 // LwIP_Init();
  
  /* Initialize webserver demo */
  //http_server_socket_init();
  //printf("\n\r FreeRTOS V6.1.0 http_server_socket_init: sys_thread_new HTTP\r\n");

#ifdef USE_DHCP
  /* Start DHCPClient */
  printf("\n\r FreeRTOS V6.1.0 xTaskCreate LwIP_DHCP_task\r\n");
  xTaskCreate(LwIP_DHCP_task, "DHCPClient", configMINIMAL_STACK_SIZE * 2, NULL,DHCP_TASK_PRIO, NULL);
#endif
    
  /* Start toogleLed4 task : Toggle LED4  every 250ms */
  printf("\n\r FreeRTOS V6.1.0 xTaskCreate ToggleLed4\r\n");
  xTaskCreate(ToggleLed4, "LED4", configMINIMAL_STACK_SIZE, NULL, LED_TASK_PRIO, NULL);

  /* Start toogleLed1 task : Toggle LED1  every 250ms */
  //printf("\n\r FreeRTOS V6.1.0 xTaskCreate ToggleLed1\r\n");
  //xTaskCreate(ToggleLed1, "SZWLED1", configMINIMAL_STACK_SIZE, NULL, LED_TASK_PRIO, NULL);
    
  /* Start toogleLed2 task : Toggle LED2  every 250ms */
  //printf("\n\r FreeRTOS V6.1.0 xTaskCreate ToggleLed2\r\n");
  //xTaskCreate(ToggleLed2, "SZWLED2", configMINIMAL_STACK_SIZE, NULL, LED_TASK_PRIO, NULL);

  /* Start toogleLed3 task : Toggle LED3  every 250ms */
  //printf("\n\r FreeRTOS V6.1.0 xTaskCreate ToggleLed3\r\n");
  //xTaskCreate(ToggleLed3, "SZWLED3", configMINIMAL_STACK_SIZE, NULL, LED_TASK_PRIO, NULL);

  /* Start scanDevices task  */
  printf("\n\r FreeRTOS V6.1.0 xTaskCreate can1Send\r\n");
  xTaskCreate(can1Send, "CAN1SEND", configMINIMAL_STACK_SIZE, NULL, CAN_TASK_PRIO, NULL);

  /* Start can1 receive task  */
  printf("\n\r FreeRTOS V6.1.0 xTaskCreate can1Rec\r\n");
  xTaskCreate(can1Rec, "CAN1REC", configMINIMAL_STACK_SIZE, NULL, CAN_TASK_PRIO+1, NULL);

  /* Start can1 do command task  */
  printf("\n\r FreeRTOS V6.1.0 xTaskCreate doCommand\r\n");
  xTaskCreate(doCommand, "DCMMD", configMINIMAL_STACK_SIZE, NULL, CAN_TASK_PRIO+2, NULL);
  
   
  /* Start scheduler */
  printf("\n\r FreeRTOS V6.1.0 Start scheduler\r\n");
  vTaskStartScheduler();

  /* We should never get here as control is now taken by the scheduler */
  for( ;   ; );
}