1 | /* Includes ------------------------------------------------------------------*/
|
2 | #include "can.h"
|
3 |
|
4 | #include "gpio.h"
|
5 |
|
6 | /* USER CODE BEGIN 0 */
|
7 |
|
8 | /* USER CODE END 0 */
|
9 |
|
10 | CAN_HandleTypeDef hcan;
|
11 |
|
12 | /* CAN init function */
|
13 | void MX_CAN_Init(void)
|
14 | {
|
15 |
|
16 | hcan.Instance = CAN;
|
17 | hcan.Init.Prescaler = 4;
|
18 | hcan.Init.Mode = CAN_MODE_NORMAL;
|
19 | hcan.Init.SJW = CAN_SJW_1TQ;
|
20 | hcan.Init.BS1 = CAN_BS1_12TQ;
|
21 | hcan.Init.BS2 = CAN_BS2_5TQ;
|
22 | hcan.Init.TTCM = DISABLE;
|
23 | hcan.Init.ABOM = DISABLE;
|
24 | hcan.Init.AWUM = DISABLE;
|
25 | hcan.Init.NART = DISABLE;
|
26 | hcan.Init.RFLM = ENABLE;
|
27 | hcan.Init.TXFP = DISABLE;
|
28 | if (HAL_CAN_Init(&hcan) != HAL_OK)
|
29 | {
|
30 | Error_Handler();
|
31 | }
|
32 |
|
33 | }
|
34 |
|
35 | void HAL_CAN_MspInit(CAN_HandleTypeDef* canHandle)
|
36 | {
|
37 |
|
38 | GPIO_InitTypeDef GPIO_InitStruct;
|
39 | if(canHandle->Instance==CAN)
|
40 | {
|
41 | /* USER CODE BEGIN CAN_MspInit 0 */
|
42 |
|
43 | /* USER CODE END CAN_MspInit 0 */
|
44 | /* Peripheral clock enable */
|
45 | __HAL_RCC_CAN1_CLK_ENABLE();
|
46 |
|
47 | /**CAN GPIO Configuration
|
48 | PA11 ------> CAN_RX
|
49 | PA12 ------> CAN_TX
|
50 | */
|
51 | GPIO_InitStruct.Pin = GPIO_PIN_11|GPIO_PIN_12;
|
52 | GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
53 | GPIO_InitStruct.Pull = GPIO_NOPULL;
|
54 | GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
|
55 | GPIO_InitStruct.Alternate = GPIO_AF9_CAN;
|
56 | HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
|
57 |
|
58 | /* Peripheral interrupt init */
|
59 | HAL_NVIC_SetPriority(USB_HP_CAN_TX_IRQn, 0, 0);
|
60 | HAL_NVIC_EnableIRQ(USB_HP_CAN_TX_IRQn);
|
61 | HAL_NVIC_SetPriority(USB_LP_CAN_RX0_IRQn, 0, 0);
|
62 | HAL_NVIC_EnableIRQ(USB_LP_CAN_RX0_IRQn);
|
63 | /* USER CODE BEGIN CAN_MspInit 1 */
|
64 |
|
65 | /* USER CODE END CAN_MspInit 1 */
|
66 | }
|
67 | }
|
68 |
|
69 | void HAL_CAN_MspDeInit(CAN_HandleTypeDef* canHandle)
|
70 | {
|
71 |
|
72 | if(canHandle->Instance==CAN)
|
73 | {
|
74 | /* USER CODE BEGIN CAN_MspDeInit 0 */
|
75 |
|
76 | /* USER CODE END CAN_MspDeInit 0 */
|
77 | /* Peripheral clock disable */
|
78 | __HAL_RCC_CAN1_CLK_DISABLE();
|
79 |
|
80 | /**CAN GPIO Configuration
|
81 | PA11 ------> CAN_RX
|
82 | PA12 ------> CAN_TX
|
83 | */
|
84 | HAL_GPIO_DeInit(GPIOA, GPIO_PIN_11|GPIO_PIN_12);
|
85 |
|
86 | /* Peripheral interrupt Deinit*/
|
87 | HAL_NVIC_DisableIRQ(USB_HP_CAN_TX_IRQn);
|
88 |
|
89 | HAL_NVIC_DisableIRQ(USB_LP_CAN_RX0_IRQn);
|
90 |
|
91 | }
|
92 | /* USER CODE BEGIN CAN_MspDeInit 1 */
|
93 |
|
94 | /* USER CODE END CAN_MspDeInit 1 */
|
95 | }
|
96 |
|
97 | /* USER CODE BEGIN 1 */
|
98 |
|
99 | /* USER CODE END 1 */
|
100 |
|
101 | /**
|
102 | * @}
|
103 | */
|
104 |
|
105 | /**
|
106 | * @}
|
107 | */
|
108 |
|
109 | /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
|