/** * @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");} } }
/** * @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( ; ; ); }