24#include "../Inc/Files/can1_dbc.h"
25#include "../Inc/Systems/Comms/Can/Can.h"
145 printf(
"\033[2J\033[1;1H");
146 printf(
"Welcome to VCU!!!\r\n");
148 printf(
"CAN1 init failed\r\n");
155 { .
name =
"Char 1", .start_bit = 0, .length = 8, .endian = 0, .isSigned = 0, .scale = 1, .offset = 0, .min = 0, .max = 255, .unit =
"unit", .reciever =
"reciever" },
156 { .name =
"Char 2", .start_bit = 8, .length = 8, .endian = 0, .isSigned = 0, .scale = 1, .offset = 0, .min = 0, .max = 255, .unit =
"unit", .reciever =
"reciever" },
157 { .name =
"Char 3", .start_bit = 16, .length = 8, .endian = 0, .isSigned = 0, .scale = 1, .offset = 0, .min = 0, .max = 255, .unit =
"unit", .reciever =
"reciever" },
158 { .name =
"Char 4", .start_bit = 24, .length = 8, .endian = 0, .isSigned = 0, .scale = 1, .offset = 0, .min = 0, .max = 255, .unit =
"unit", .reciever =
"reciever" },
159 { .name =
"Char 5", .start_bit = 32, .length = 8, .endian = 0, .isSigned = 0, .scale = 1, .offset = 0, .min = 0, .max = 255, .unit =
"unit", .reciever =
"reciever" },
160 { .name =
"Char 6", .start_bit = 40, .length = 8, .endian = 0, .isSigned = 0, .scale = 1, .offset = 0, .min = 0, .max = 255, .unit =
"unit", .reciever =
"reciever" },
161 { .name =
"Char 7", .start_bit = 48, .length = 8, .endian = 0, .isSigned = 0, .scale = 1, .offset = 0, .min = 0, .max = 255, .unit =
"unit", .reciever =
"reciever" },
162 { .name =
"Char 8", .start_bit = 56, .length = 8, .endian = 0, .isSigned = 0, .scale = 1, .offset = 0, .min = 0, .max = 255, .unit =
"unit", .reciever =
"reciever" }
173 uint8_t txdata[8] = {0, 1, 2, 3, 4, 5, 6, 7};
203 RCC_OscInitTypeDef RCC_OscInitStruct = {0};
204 RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
208 HAL_PWR_EnableBkUpAccess();
212 __HAL_RCC_PWR_CLK_ENABLE();
213 __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE3);
218 RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
219 RCC_OscInitStruct.HSEState = RCC_HSE_BYPASS;
220 RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
221 RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
222 RCC_OscInitStruct.PLL.PLLM = 4;
223 RCC_OscInitStruct.PLL.PLLN = 96;
224 RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;
225 RCC_OscInitStruct.PLL.PLLQ = 4;
226 RCC_OscInitStruct.PLL.PLLR = 2;
227 if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
234 if (HAL_PWREx_EnableOverDrive() != HAL_OK)
241 RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
242 |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
243 RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
244 RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
245 RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2;
246 RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
248 if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_3) != HAL_OK)
266 ADC_MultiModeTypeDef multimode = {0};
267 ADC_ChannelConfTypeDef sConfig = {0};
275 hadc1.Instance = ADC1;
276 hadc1.Init.ClockPrescaler = ADC_CLOCK_SYNC_PCLK_DIV4;
277 hadc1.Init.Resolution = ADC_RESOLUTION_12B;
278 hadc1.Init.ScanConvMode = ADC_SCAN_ENABLE;
281 hadc1.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_NONE;
282 hadc1.Init.ExternalTrigConv = ADC_SOFTWARE_START;
283 hadc1.Init.DataAlign = ADC_DATAALIGN_RIGHT;
284 hadc1.Init.NbrOfConversion = 6;
286 hadc1.Init.EOCSelection = ADC_EOC_SINGLE_CONV;
287 if (HAL_ADC_Init(&
hadc1) != HAL_OK)
294 multimode.Mode = ADC_TRIPLEMODE_REGSIMULT_INJECSIMULT;
295 multimode.DMAAccessMode = ADC_DMAACCESSMODE_1;
296 multimode.TwoSamplingDelay = ADC_TWOSAMPLINGDELAY_5CYCLES;
297 if (HAL_ADCEx_MultiModeConfigChannel(&
hadc1, &multimode) != HAL_OK)
304 sConfig.Channel = ADC_CHANNEL_0;
305 sConfig.Rank = ADC_REGULAR_RANK_1;
306 sConfig.SamplingTime = ADC_SAMPLETIME_3CYCLES;
307 if (HAL_ADC_ConfigChannel(&
hadc1, &sConfig) != HAL_OK)
314 sConfig.Channel = ADC_CHANNEL_1;
315 sConfig.Rank = ADC_REGULAR_RANK_2;
316 if (HAL_ADC_ConfigChannel(&
hadc1, &sConfig) != HAL_OK)
323 sConfig.Channel = ADC_CHANNEL_2;
324 sConfig.Rank = ADC_REGULAR_RANK_3;
325 if (HAL_ADC_ConfigChannel(&
hadc1, &sConfig) != HAL_OK)
332 sConfig.Channel = ADC_CHANNEL_3;
333 sConfig.Rank = ADC_REGULAR_RANK_4;
334 if (HAL_ADC_ConfigChannel(&
hadc1, &sConfig) != HAL_OK)
341 sConfig.Channel = ADC_CHANNEL_4;
342 sConfig.Rank = ADC_REGULAR_RANK_5;
343 if (HAL_ADC_ConfigChannel(&
hadc1, &sConfig) != HAL_OK)
350 sConfig.Channel = ADC_CHANNEL_5;
351 sConfig.Rank = ADC_REGULAR_RANK_6;
352 if (HAL_ADC_ConfigChannel(&
hadc1, &sConfig) != HAL_OK)
374 ADC_ChannelConfTypeDef sConfig = {0};
382 hadc2.Instance = ADC2;
383 hadc2.Init.ClockPrescaler = ADC_CLOCK_SYNC_PCLK_DIV4;
384 hadc2.Init.Resolution = ADC_RESOLUTION_12B;
385 hadc2.Init.ScanConvMode = ADC_SCAN_ENABLE;
388 hadc2.Init.DataAlign = ADC_DATAALIGN_RIGHT;
389 hadc2.Init.NbrOfConversion = 5;
391 hadc2.Init.EOCSelection = ADC_EOC_SINGLE_CONV;
392 if (HAL_ADC_Init(&
hadc2) != HAL_OK)
399 sConfig.Channel = ADC_CHANNEL_6;
400 sConfig.Rank = ADC_REGULAR_RANK_1;
401 sConfig.SamplingTime = ADC_SAMPLETIME_3CYCLES;
402 if (HAL_ADC_ConfigChannel(&
hadc2, &sConfig) != HAL_OK)
409 sConfig.Channel = ADC_CHANNEL_7;
410 sConfig.Rank = ADC_REGULAR_RANK_2;
411 if (HAL_ADC_ConfigChannel(&
hadc2, &sConfig) != HAL_OK)
418 sConfig.Channel = ADC_CHANNEL_8;
419 sConfig.Rank = ADC_REGULAR_RANK_3;
420 if (HAL_ADC_ConfigChannel(&
hadc2, &sConfig) != HAL_OK)
427 sConfig.Channel = ADC_CHANNEL_14;
428 sConfig.Rank = ADC_REGULAR_RANK_4;
429 if (HAL_ADC_ConfigChannel(&
hadc2, &sConfig) != HAL_OK)
436 sConfig.Channel = ADC_CHANNEL_15;
437 sConfig.Rank = ADC_REGULAR_RANK_5;
438 if (HAL_ADC_ConfigChannel(&
hadc2, &sConfig) != HAL_OK)
460 ADC_ChannelConfTypeDef sConfig = {0};
468 hadc3.Instance = ADC3;
469 hadc3.Init.ClockPrescaler = ADC_CLOCK_SYNC_PCLK_DIV4;
470 hadc3.Init.Resolution = ADC_RESOLUTION_12B;
471 hadc3.Init.ScanConvMode = ADC_SCAN_ENABLE;
474 hadc3.Init.DataAlign = ADC_DATAALIGN_RIGHT;
475 hadc3.Init.NbrOfConversion = 4;
477 hadc3.Init.EOCSelection = ADC_EOC_SINGLE_CONV;
478 if (HAL_ADC_Init(&
hadc3) != HAL_OK)
485 sConfig.Channel = ADC_CHANNEL_10;
486 sConfig.Rank = ADC_REGULAR_RANK_1;
487 sConfig.SamplingTime = ADC_SAMPLETIME_3CYCLES;
488 if (HAL_ADC_ConfigChannel(&
hadc3, &sConfig) != HAL_OK)
495 sConfig.Channel = ADC_CHANNEL_11;
496 sConfig.Rank = ADC_REGULAR_RANK_2;
497 if (HAL_ADC_ConfigChannel(&
hadc3, &sConfig) != HAL_OK)
504 sConfig.Channel = ADC_CHANNEL_12;
505 sConfig.Rank = ADC_REGULAR_RANK_3;
506 if (HAL_ADC_ConfigChannel(&
hadc3, &sConfig) != HAL_OK)
513 sConfig.Channel = ADC_CHANNEL_13;
514 sConfig.Rank = ADC_REGULAR_RANK_4;
515 if (HAL_ADC_ConfigChannel(&
hadc3, &sConfig) != HAL_OK)
540 hcan1.Instance = CAN1;
541 hcan1.Init.Prescaler = 6;
542 hcan1.Init.Mode = CAN_MODE_NORMAL;
543 hcan1.Init.SyncJumpWidth = CAN_SJW_1TQ;
544 hcan1.Init.TimeSeg1 = CAN_BS1_13TQ;
545 hcan1.Init.TimeSeg2 = CAN_BS2_2TQ;
552 if (HAL_CAN_Init(&
hcan1) != HAL_OK)
557 CAN_FilterTypeDef sFilterConfig;
558 sFilterConfig.FilterBank = 0;
559 sFilterConfig.FilterMode = CAN_FILTERMODE_IDMASK;
560 sFilterConfig.FilterScale = CAN_FILTERSCALE_32BIT;
561 sFilterConfig.FilterIdHigh = 0x0000;
562 sFilterConfig.FilterIdLow = 0x0000;
563 sFilterConfig.FilterMaskIdHigh = 0x0000;
564 sFilterConfig.FilterMaskIdLow = 0x0000;
565 sFilterConfig.FilterFIFOAssignment = CAN_RX_FIFO0;
566 sFilterConfig.FilterActivation =
ENABLE;
567 sFilterConfig.SlaveStartFilterBank = 14;
568 HAL_CAN_ConfigFilter(&
hcan1, &sFilterConfig);
571 HAL_CAN_Stop(&
hcan1);
573 if (HAL_CAN_Start(&
hcan1) != HAL_OK) {
574 printf(
"CAN1 Start Error: ErrorCode = 0x%lX\r\n",
hcan1.ErrorCode);
578 if (HAL_CAN_ActivateNotification(&
hcan1, CAN_IT_RX_FIFO0_MSG_PENDING) != HAL_OK) {
579 printf(
"interrupt CAN1 init failed\r\n");
600 hcan2.Instance = CAN2;
601 hcan2.Init.Prescaler = 4;
602 hcan2.Init.Mode = CAN_MODE_NORMAL;
603 hcan2.Init.SyncJumpWidth = CAN_SJW_1TQ;
604 hcan2.Init.TimeSeg1 = CAN_BS1_10TQ;
605 hcan2.Init.TimeSeg2 = CAN_BS2_1TQ;
612 if (HAL_CAN_Init(&
hcan2) != HAL_OK)
617 CAN_FilterTypeDef sFilterConfig;
618 sFilterConfig.FilterBank = 0;
619 sFilterConfig.FilterMode = CAN_FILTERMODE_IDMASK;
620 sFilterConfig.FilterScale = CAN_FILTERSCALE_32BIT;
621 sFilterConfig.FilterIdHigh = 0x0000;
622 sFilterConfig.FilterIdLow = 0x0000;
623 sFilterConfig.FilterMaskIdHigh = 0x0000;
624 sFilterConfig.FilterMaskIdLow = 0x0000;
625 sFilterConfig.FilterFIFOAssignment = CAN_RX_FIFO0;
626 sFilterConfig.FilterActivation =
ENABLE;
627 sFilterConfig.SlaveStartFilterBank = 14;
628 HAL_CAN_ConfigFilter(&
hcan2, &sFilterConfig);
631 HAL_CAN_Stop(&
hcan2);
633 if (HAL_CAN_Start(&
hcan2) != HAL_OK) {
634 printf(
"CAN2 Start Error: ErrorCode = 0x%lX\r\n",
hcan2.ErrorCode);
638 if (HAL_CAN_ActivateNotification(&
hcan2, CAN_IT_RX_FIFO0_MSG_PENDING) != HAL_OK) {
639 printf(
"interrupt CAN2 init failed\r\n");
660 hi2c1.Instance = I2C1;
661 hi2c1.Init.Timing = 0x20303E5D;
662 hi2c1.Init.OwnAddress1 = 0;
663 hi2c1.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
664 hi2c1.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE;
665 hi2c1.Init.OwnAddress2 = 0;
666 hi2c1.Init.OwnAddress2Masks = I2C_OA2_NOMASK;
667 hi2c1.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE;
668 hi2c1.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE;
669 if (HAL_I2C_Init(&
hi2c1) != HAL_OK)
676 if (HAL_I2CEx_ConfigAnalogFilter(&
hi2c1, I2C_ANALOGFILTER_ENABLE) != HAL_OK)
683 if (HAL_I2CEx_ConfigDigitalFilter(&
hi2c1, 0) != HAL_OK)
708 hi2c2.Instance = I2C2;
709 hi2c2.Init.Timing = 0x20303E5D;
710 hi2c2.Init.OwnAddress1 = 0;
711 hi2c2.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
712 hi2c2.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE;
713 hi2c2.Init.OwnAddress2 = 0;
714 hi2c2.Init.OwnAddress2Masks = I2C_OA2_NOMASK;
715 hi2c2.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE;
716 hi2c2.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE;
717 if (HAL_I2C_Init(&
hi2c2) != HAL_OK)
724 if (HAL_I2CEx_ConfigAnalogFilter(&
hi2c2, I2C_ANALOGFILTER_ENABLE) != HAL_OK)
731 if (HAL_I2CEx_ConfigDigitalFilter(&
hi2c2, 0) != HAL_OK)
756 hi2c4.Instance = I2C4;
757 hi2c4.Init.Timing = 0x20303E5D;
758 hi2c4.Init.OwnAddress1 = 0;
759 hi2c4.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
760 hi2c4.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE;
761 hi2c4.Init.OwnAddress2 = 0;
762 hi2c4.Init.OwnAddress2Masks = I2C_OA2_NOMASK;
763 hi2c4.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE;
764 hi2c4.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE;
765 if (HAL_I2C_Init(&
hi2c4) != HAL_OK)
772 if (HAL_I2CEx_ConfigAnalogFilter(&
hi2c4, I2C_ANALOGFILTER_ENABLE) != HAL_OK)
779 if (HAL_I2CEx_ConfigDigitalFilter(&
hi2c4, 0) != HAL_OK)
805 hspi3.Instance = SPI3;
806 hspi3.Init.Mode = SPI_MODE_MASTER;
807 hspi3.Init.Direction = SPI_DIRECTION_2LINES;
808 hspi3.Init.DataSize = SPI_DATASIZE_4BIT;
809 hspi3.Init.CLKPolarity = SPI_POLARITY_LOW;
810 hspi3.Init.CLKPhase = SPI_PHASE_1EDGE;
811 hspi3.Init.NSS = SPI_NSS_SOFT;
812 hspi3.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_2;
813 hspi3.Init.FirstBit = SPI_FIRSTBIT_MSB;
814 hspi3.Init.TIMode = SPI_TIMODE_DISABLE;
815 hspi3.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
816 hspi3.Init.CRCPolynomial = 7;
817 hspi3.Init.CRCLength = SPI_CRC_LENGTH_DATASIZE;
818 hspi3.Init.NSSPMode = SPI_NSS_PULSE_ENABLE;
819 if (HAL_SPI_Init(&
hspi3) != HAL_OK)
845 hspi4.Instance = SPI4;
846 hspi4.Init.Mode = SPI_MODE_MASTER;
847 hspi4.Init.Direction = SPI_DIRECTION_2LINES;
848 hspi4.Init.DataSize = SPI_DATASIZE_4BIT;
849 hspi4.Init.CLKPolarity = SPI_POLARITY_LOW;
850 hspi4.Init.CLKPhase = SPI_PHASE_1EDGE;
851 hspi4.Init.NSS = SPI_NSS_SOFT;
852 hspi4.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_2;
853 hspi4.Init.FirstBit = SPI_FIRSTBIT_MSB;
854 hspi4.Init.TIMode = SPI_TIMODE_DISABLE;
855 hspi4.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
856 hspi4.Init.CRCPolynomial = 7;
857 hspi4.Init.CRCLength = SPI_CRC_LENGTH_DATASIZE;
858 hspi4.Init.NSSPMode = SPI_NSS_PULSE_ENABLE;
859 if (HAL_SPI_Init(&
hspi4) != HAL_OK)
885 hspi5.Instance = SPI5;
886 hspi5.Init.Mode = SPI_MODE_MASTER;
887 hspi5.Init.Direction = SPI_DIRECTION_2LINES;
888 hspi5.Init.DataSize = SPI_DATASIZE_4BIT;
889 hspi5.Init.CLKPolarity = SPI_POLARITY_LOW;
890 hspi5.Init.CLKPhase = SPI_PHASE_1EDGE;
891 hspi5.Init.NSS = SPI_NSS_SOFT;
892 hspi5.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_2;
893 hspi5.Init.FirstBit = SPI_FIRSTBIT_MSB;
894 hspi5.Init.TIMode = SPI_TIMODE_DISABLE;
895 hspi5.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
896 hspi5.Init.CRCPolynomial = 7;
897 hspi5.Init.CRCLength = SPI_CRC_LENGTH_DATASIZE;
898 hspi5.Init.NSSPMode = SPI_NSS_PULSE_ENABLE;
899 if (HAL_SPI_Init(&
hspi5) != HAL_OK)
921 TIM_ClockConfigTypeDef sClockSourceConfig = {0};
922 TIM_MasterConfigTypeDef sMasterConfig = {0};
927 htim1.Instance = TIM1;
928 htim1.Init.Prescaler = 47999;
929 htim1.Init.CounterMode = TIM_COUNTERMODE_UP;
930 htim1.Init.Period = 999;
931 htim1.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
932 htim1.Init.RepetitionCounter = 0;
933 htim1.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
934 if (HAL_TIM_Base_Init(&
htim1) != HAL_OK)
938 sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
939 if (HAL_TIM_ConfigClockSource(&
htim1, &sClockSourceConfig) != HAL_OK)
943 sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
944 sMasterConfig.MasterOutputTrigger2 = TIM_TRGO2_RESET;
945 sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
946 if (HAL_TIMEx_MasterConfigSynchronization(&
htim1, &sMasterConfig) != HAL_OK)
972 huart3.Init.BaudRate = 115200;
973 huart3.Init.WordLength = UART_WORDLENGTH_8B;
974 huart3.Init.StopBits = UART_STOPBITS_1;
975 huart3.Init.Parity = UART_PARITY_NONE;
976 huart3.Init.Mode = UART_MODE_TX_RX;
977 huart3.Init.HwFlowCtl = UART_HWCONTROL_NONE;
978 huart3.Init.OverSampling = UART_OVERSAMPLING_16;
979 huart3.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
980 huart3.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;
981 if (HAL_UART_Init(&
huart3) != HAL_OK)
998 __HAL_RCC_DMA2_CLK_ENABLE();
1002 HAL_NVIC_SetPriority(DMA2_Stream0_IRQn, 0, 0);
1003 HAL_NVIC_EnableIRQ(DMA2_Stream0_IRQn);
1005 HAL_NVIC_SetPriority(DMA2_Stream1_IRQn, 0, 0);
1006 HAL_NVIC_EnableIRQ(DMA2_Stream1_IRQn);
1008 HAL_NVIC_SetPriority(DMA2_Stream2_IRQn, 0, 0);
1009 HAL_NVIC_EnableIRQ(DMA2_Stream2_IRQn);
1020 GPIO_InitTypeDef GPIO_InitStruct = {0};
1025 __HAL_RCC_GPIOE_CLK_ENABLE();
1026 __HAL_RCC_GPIOC_CLK_ENABLE();
1027 __HAL_RCC_GPIOF_CLK_ENABLE();
1028 __HAL_RCC_GPIOH_CLK_ENABLE();
1029 __HAL_RCC_GPIOA_CLK_ENABLE();
1030 __HAL_RCC_GPIOB_CLK_ENABLE();
1031 __HAL_RCC_GPIOG_CLK_ENABLE();
1032 __HAL_RCC_GPIOD_CLK_ENABLE();
1043 GPIO_InitStruct.Pin = GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_7|GPIO_PIN_8
1044 |GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_11|GPIO_PIN_12
1046 GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
1047 GPIO_InitStruct.Pull = GPIO_NOPULL;
1048 HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
1052 GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING;
1053 GPIO_InitStruct.Pull = GPIO_NOPULL;
1059 GPIO_InitStruct.Pin = GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5
1060 |GPIO_PIN_6|GPIO_PIN_10|GPIO_PIN_11|GPIO_PIN_12
1062 GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
1063 GPIO_InitStruct.Pull = GPIO_NOPULL;
1064 HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
1068 GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
1069 GPIO_InitStruct.Pull = GPIO_NOPULL;
1070 HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
1073 GPIO_InitStruct.Pin = GPIO_PIN_14|GPIO_PIN_15|GPIO_PIN_0|GPIO_PIN_1;
1074 GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
1075 GPIO_InitStruct.Pull = GPIO_NOPULL;
1076 HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
1080 GPIO_InitStruct.Pin = GPIO_PIN_10|GPIO_PIN_11|GPIO_PIN_12|GPIO_PIN_15
1081 |GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_6;
1082 GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
1083 GPIO_InitStruct.Pull = GPIO_NOPULL;
1084 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
1088 GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
1089 GPIO_InitStruct.Pull = GPIO_NOPULL;
1090 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
1091 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
1096 GPIO_InitStruct.Pin = GPIO_PIN_10|GPIO_PIN_11|GPIO_PIN_12|GPIO_PIN_13
1097 |GPIO_PIN_14|GPIO_PIN_15|GPIO_PIN_2|GPIO_PIN_3
1098 |GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_7;
1099 GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
1100 GPIO_InitStruct.Pull = GPIO_NOPULL;
1101 HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
1106 GPIO_InitStruct.Pin = GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5
1107 |GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_11
1108 |GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15;
1109 GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
1110 GPIO_InitStruct.Pull = GPIO_NOPULL;
1111 HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
1115 GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
1116 GPIO_InitStruct.Pull = GPIO_NOPULL;
1117 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
1122 GPIO_InitStruct.Pin = GPIO_PIN_6|GPIO_PIN_7|GPIO_PIN_8|GPIO_PIN_9
1124 GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
1125 GPIO_InitStruct.Pull = GPIO_NOPULL;
1126 HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
1130 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
1131 GPIO_InitStruct.Pull = GPIO_NOPULL;
1132 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
1133 GPIO_InitStruct.Alternate = GPIO_AF10_OTG_FS;
1134 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
1138 GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
1139 GPIO_InitStruct.Pull = GPIO_NOPULL;
1143 GPIO_InitStruct.Pin = GPIO_PIN_10|GPIO_PIN_15;
1144 GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
1145 GPIO_InitStruct.Pull = GPIO_NOPULL;
1146 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
1149 GPIO_InitStruct.Pin = GPIO_PIN_6;
1150 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
1151 GPIO_InitStruct.Pull = GPIO_NOPULL;
1152 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
1153 GPIO_InitStruct.Alternate = GPIO_AF7_USART2;
1154 HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
1165 HAL_UART_Transmit(&
huart3, (uint8_t *)data, len, HAL_MAX_DELAY);
1193#ifdef USE_FULL_ASSERT
1201void assert_failed(uint8_t *file, uint32_t line)
int init_CANBus(CANBus bus)
Initializes the CANBus struct.
int add_message_lop(CANBus bus, int id, int dlc, int ide, int rtr, const char *name, const char *sender, int signal_count, CAN_Signal_Template *signals)
Adds a message to the CAN message list by passing in the individual message parameters hence "LOP" (L...
int send_CAN_message(CANBus bus, CANProtocol protocol, uint32_t id, uint8_t *data, uint8_t len)
Sends a CAN message.
void print_CAN_Messages_Lists()
Prints the CAN message list.
void Error_Handler(void)
This function is executed in case of error occurrence.
DMA_HandleTypeDef hdma_adc1
static void MX_USART3_UART_Init(void)
USART3 Initialization Function.
static void MX_TIM1_Init(void)
TIM1 Initialization Function.
static void MX_CAN1_Init(void)
CAN1 Initialization Function.
DMA_HandleTypeDef hdma_adc3
static void MX_I2C1_Init(void)
I2C1 Initialization Function.
static void MX_ADC2_Init(void)
ADC2 Initialization Function.
static void MX_DMA_Init(void)
void SystemClock_Config(void)
System Clock Configuration.
int main(void)
The application entry point.
int _write(int file, char *data, int len)
static void MX_CAN2_Init(void)
CAN2 Initialization Function.
static void MX_ADC1_Init(void)
ADC1 Initialization Function.
UART_HandleTypeDef huart3
static void MX_SPI5_Init(void)
SPI5 Initialization Function.
static void MX_SPI3_Init(void)
SPI3 Initialization Function.
DMA_HandleTypeDef hdma_adc2
static void MX_ADC3_Init(void)
ADC3 Initialization Function.
static void MX_SPI4_Init(void)
SPI4 Initialization Function.
static void MX_GPIO_Init(void)
GPIO Initialization Function.
static void MX_I2C4_Init(void)
I2C4 Initialization Function.
static void MX_I2C2_Init(void)
I2C2 Initialization Function.
: Header for main.c file. This file contains the common defines of the application.
#define USB_VBUS_GPIO_Port
#define USB_PowerSwitchOn_GPIO_Port
#define USB_OverCurrent_Pin
#define USB_PowerSwitchOn_Pin
#define USER_Btn_GPIO_Port
char name[MAX_SIGNAL_NAME_LENGTH]