Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
55 changes: 35 additions & 20 deletions AutonomousDistroBoard/AutonomousDistroBoard.ioc
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,14 @@
CAD.formats=
CAD.pinconfig=
CAD.provider=
CAN1.BS1=CAN_BS1_12TQ
CAN1.BS2=CAN_BS2_2TQ
CAN1.CalculateBaudRate=499999
CAN1.CalculateTimeBit=2000
CAN1.CalculateTimeQuantum=133.33333333333334
CAN1.IPParameters=CalculateTimeQuantum,CalculateTimeBit,CalculateBaudRate,Mode,Prescaler,BS1,BS2
CAN1.Mode=CAN_MODE_SILENT
CAN1.Prescaler=4
CAN2.BS1=CAN_BS1_12TQ
CAN2.BS2=CAN_BS2_2TQ
CAN2.CalculateBaudRate=499999
Expand All @@ -26,40 +34,43 @@ GPIO.groupedBy=Group By Peripherals
KeepUserPlacement=false
Mcu.CPN=STM32F407VGT6
Mcu.Family=STM32F4
Mcu.IP0=CAN2
Mcu.IP1=DMA
Mcu.IP2=NVIC
Mcu.IP3=RCC
Mcu.IP4=SYS
Mcu.IP5=TIM1
Mcu.IP6=TIM11
Mcu.IP7=UART5
Mcu.IP8=USART3
Mcu.IP9=USB_OTG_FS
Mcu.IPNb=10
Mcu.IP0=CAN1
Mcu.IP1=CAN2
Mcu.IP10=USB_OTG_FS
Mcu.IP2=DMA
Mcu.IP3=NVIC
Mcu.IP4=RCC
Mcu.IP5=SYS
Mcu.IP6=TIM1
Mcu.IP7=TIM11
Mcu.IP8=UART5
Mcu.IP9=USART3
Mcu.IPNb=11
Mcu.Name=STM32F407V(E-G)Tx
Mcu.Package=LQFP100
Mcu.Pin0=PE5
Mcu.Pin1=PE6
Mcu.Pin10=PA13
Mcu.Pin11=PA14
Mcu.Pin12=PC12
Mcu.Pin13=PD2
Mcu.Pin14=PB5
Mcu.Pin15=PB6
Mcu.Pin16=PB7
Mcu.Pin17=PB9
Mcu.Pin18=VP_SYS_VS_Systick
Mcu.Pin19=VP_TIM11_VS_ClockSourceINT
Mcu.Pin13=PD0
Mcu.Pin14=PD1
Mcu.Pin15=PD2
Mcu.Pin16=PB5
Mcu.Pin17=PB6
Mcu.Pin18=PB7
Mcu.Pin19=PB9
Mcu.Pin2=PH0-OSC_IN
Mcu.Pin20=VP_SYS_VS_Systick
Mcu.Pin21=VP_TIM11_VS_ClockSourceINT
Mcu.Pin3=PH1-OSC_OUT
Mcu.Pin4=PE8
Mcu.Pin5=PE9
Mcu.Pin6=PB10
Mcu.Pin7=PB11
Mcu.Pin8=PA11
Mcu.Pin9=PA12
Mcu.PinsNb=20
Mcu.PinsNb=22
Mcu.ThirdPartyNb=0
Mcu.UserConstants=
Mcu.UserName=STM32F407VGTx
Expand Down Expand Up @@ -109,6 +120,10 @@ PB9.Signal=S_TIM11_CH1
PC12.Locked=true
PC12.Mode=Asynchronous
PC12.Signal=UART5_TX
PD0.Mode=CAN_Activate
PD0.Signal=CAN1_RX
PD1.Mode=CAN_Activate
PD1.Signal=CAN1_TX
PD2.Locked=true
PD2.Mode=Asynchronous
PD2.Signal=UART5_RX
Expand Down Expand Up @@ -161,7 +176,7 @@ ProjectManager.StackSize=0x400
ProjectManager.TargetToolchain=STM32CubeIDE
ProjectManager.ToolChainLocation=
ProjectManager.UnderRoot=true
ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_DMA_Init-DMA-false-HAL-true,4-MX_CAN2_Init-CAN2-false-HAL-true,5-MX_UART5_Init-UART5-false-HAL-true,6-MX_TIM1_Init-TIM1-false-HAL-true,7-MX_TIM11_Init-TIM11-false-HAL-true,8-MX_USART3_UART_Init-USART3-false-HAL-true,9-MX_USB_OTG_FS_PCD_Init-USB_OTG_FS-false-HAL-true
ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_DMA_Init-DMA-false-HAL-true,4-MX_CAN2_Init-CAN2-false-HAL-true,5-MX_UART5_Init-UART5-false-HAL-true,6-MX_TIM1_Init-TIM1-false-HAL-true,7-MX_TIM11_Init-TIM11-false-HAL-true,8-MX_USART3_UART_Init-USART3-false-HAL-true,9-MX_USB_OTG_FS_PCD_Init-USB_OTG_FS-false-HAL-true,10-MX_CAN1_Init-CAN1-false-HAL-true
RCC.48MHZClocksFreq_Value=48000000
RCC.AHBFreq_Value=120000000
RCC.APB1CLKDivider=RCC_HCLK_DIV4
Expand Down
45 changes: 44 additions & 1 deletion AutonomousDistroBoard/Core/Src/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@
/* USER CODE END Header */
/* Includes ------------------------------------------------------------------*/
#include "main.h"
#include <stdint.h>

/* Private includes ----------------------------------------------------------*/
/* USER CODE BEGIN Includes */
Expand All @@ -41,6 +40,7 @@
/* USER CODE END PM */

/* Private variables ---------------------------------------------------------*/
CAN_HandleTypeDef hcan1;
CAN_HandleTypeDef hcan2;

TIM_HandleTypeDef htim1;
Expand All @@ -66,6 +66,7 @@ static void MX_TIM1_Init(void);
static void MX_TIM11_Init(void);
static void MX_USART3_UART_Init(void);
static void MX_USB_OTG_FS_PCD_Init(void);
static void MX_CAN1_Init(void);
/* USER CODE BEGIN PFP */

/* USER CODE END PFP */
Expand Down Expand Up @@ -110,6 +111,7 @@ int main(void)
MX_TIM11_Init();
MX_USART3_UART_Init();
MX_USB_OTG_FS_PCD_Init();
MX_CAN1_Init();
/* USER CODE BEGIN 2 */
// Initialize logic state
logic_init(&g_logic_state);
Expand All @@ -136,6 +138,10 @@ int main(void)
Error_Handler();
}
// Start CAN peripheral
if (HAL_CAN_Start(&hcan1) != HAL_OK) {
// Must start CAN1 even though we only use CAN2 because CAN2 is a slave to CAN1 on F4
Error_Handler();
}
Comment thread
LelsersLasers marked this conversation as resolved.
if (HAL_CAN_Start(&hcan2) != HAL_OK) {
Error_Handler();
}
Expand Down Expand Up @@ -209,6 +215,43 @@ void SystemClock_Config(void)
}
}

/**
* @brief CAN1 Initialization Function
* @param None
* @retval None
*/
static void MX_CAN1_Init(void)
{

/* USER CODE BEGIN CAN1_Init 0 */

/* USER CODE END CAN1_Init 0 */

/* USER CODE BEGIN CAN1_Init 1 */

/* USER CODE END CAN1_Init 1 */
hcan1.Instance = CAN1;
hcan1.Init.Prescaler = 4;
hcan1.Init.Mode = CAN_MODE_SILENT;
hcan1.Init.SyncJumpWidth = CAN_SJW_1TQ;
hcan1.Init.TimeSeg1 = CAN_BS1_12TQ;
hcan1.Init.TimeSeg2 = CAN_BS2_2TQ;
hcan1.Init.TimeTriggeredMode = DISABLE;
hcan1.Init.AutoBusOff = DISABLE;
hcan1.Init.AutoWakeUp = DISABLE;
hcan1.Init.AutoRetransmission = DISABLE;
hcan1.Init.ReceiveFifoLocked = DISABLE;
hcan1.Init.TransmitFifoPriority = DISABLE;
if (HAL_CAN_Init(&hcan1) != HAL_OK)
{
Error_Handler();
}
/* USER CODE BEGIN CAN1_Init 2 */

/* USER CODE END CAN1_Init 2 */

}

/**
* @brief CAN2 Initialization Function
* @param None
Expand Down
64 changes: 60 additions & 4 deletions AutonomousDistroBoard/Core/Src/stm32f4xx_hal_msp.c
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,8 @@ void HAL_MspInit(void)
/* USER CODE END MspInit 1 */
}

static uint32_t HAL_RCC_CAN1_CLK_ENABLED=0;

/**
* @brief CAN MSP Initialization
* This function configures the hardware resources used in this example
Expand All @@ -88,14 +90,44 @@ void HAL_MspInit(void)
void HAL_CAN_MspInit(CAN_HandleTypeDef* hcan)
{
GPIO_InitTypeDef GPIO_InitStruct = {0};
if(hcan->Instance==CAN2)
if(hcan->Instance==CAN1)
{
/* USER CODE BEGIN CAN1_MspInit 0 */

/* USER CODE END CAN1_MspInit 0 */
/* Peripheral clock enable */
HAL_RCC_CAN1_CLK_ENABLED++;
if(HAL_RCC_CAN1_CLK_ENABLED==1){
__HAL_RCC_CAN1_CLK_ENABLE();
}

__HAL_RCC_GPIOD_CLK_ENABLE();
/**CAN1 GPIO Configuration
PD0 ------> CAN1_RX
PD1 ------> CAN1_TX
*/
GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
GPIO_InitStruct.Alternate = GPIO_AF9_CAN1;
HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
Comment thread
LelsersLasers marked this conversation as resolved.

/* USER CODE BEGIN CAN1_MspInit 1 */

/* USER CODE END CAN1_MspInit 1 */
}
else if(hcan->Instance==CAN2)
{
/* USER CODE BEGIN CAN2_MspInit 0 */

/* USER CODE END CAN2_MspInit 0 */
/* Peripheral clock enable */
__HAL_RCC_CAN2_CLK_ENABLE();
__HAL_RCC_CAN1_CLK_ENABLE();
HAL_RCC_CAN1_CLK_ENABLED++;
if(HAL_RCC_CAN1_CLK_ENABLED==1){
__HAL_RCC_CAN1_CLK_ENABLE();
}

__HAL_RCC_GPIOB_CLK_ENABLE();
/**CAN2 GPIO Configuration
Expand Down Expand Up @@ -127,14 +159,38 @@ void HAL_CAN_MspInit(CAN_HandleTypeDef* hcan)
*/
void HAL_CAN_MspDeInit(CAN_HandleTypeDef* hcan)
{
if(hcan->Instance==CAN2)
if(hcan->Instance==CAN1)
{
/* USER CODE BEGIN CAN1_MspDeInit 0 */

/* USER CODE END CAN1_MspDeInit 0 */
/* Peripheral clock disable */
HAL_RCC_CAN1_CLK_ENABLED--;
if(HAL_RCC_CAN1_CLK_ENABLED==0){
__HAL_RCC_CAN1_CLK_DISABLE();
}

/**CAN1 GPIO Configuration
PD0 ------> CAN1_RX
PD1 ------> CAN1_TX
*/
HAL_GPIO_DeInit(GPIOD, GPIO_PIN_0|GPIO_PIN_1);

/* USER CODE BEGIN CAN1_MspDeInit 1 */

/* USER CODE END CAN1_MspDeInit 1 */
}
else if(hcan->Instance==CAN2)
{
/* USER CODE BEGIN CAN2_MspDeInit 0 */

/* USER CODE END CAN2_MspDeInit 0 */
/* Peripheral clock disable */
__HAL_RCC_CAN2_CLK_DISABLE();
__HAL_RCC_CAN1_CLK_DISABLE();
HAL_RCC_CAN1_CLK_ENABLED--;
if(HAL_RCC_CAN1_CLK_ENABLED==0){
__HAL_RCC_CAN1_CLK_DISABLE();
}

/**CAN2 GPIO Configuration
PB5 ------> CAN2_RX
Expand Down