ICARUS OS (Intelligent Cooperative Architecture for Real-time Unified Systems) 0.1.0
Preemptive Real-Time Operating System for ARM Cortex-M7
Loading...
Searching...
No Matches
spi.c
Go to the documentation of this file.
1/* USER CODE BEGIN Header */
19/* USER CODE END Header */
20/* Includes ------------------------------------------------------------------*/
21#include "bsp/spi.h"
22#include "bsp/error.h"
23
24/* USER CODE BEGIN 0 */
25
26/* USER CODE END 0 */
27
28SPI_HandleTypeDef hspi4;
29
30/* SPI4 init function */
31void MX_SPI4_Init(void)
32{
33
34 /* USER CODE BEGIN SPI4_Init 0 */
35
36 /* USER CODE END SPI4_Init 0 */
37
38 /* USER CODE BEGIN SPI4_Init 1 */
39
40 /* USER CODE END SPI4_Init 1 */
41 hspi4.Instance = SPI4;
42 hspi4.Init.Mode = SPI_MODE_MASTER;
43 hspi4.Init.Direction = SPI_DIRECTION_1LINE;
44 hspi4.Init.DataSize = SPI_DATASIZE_8BIT;
45 hspi4.Init.CLKPolarity = SPI_POLARITY_LOW;
46 hspi4.Init.CLKPhase = SPI_PHASE_1EDGE;
47 hspi4.Init.NSS = SPI_NSS_SOFT;
48 hspi4.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_8;
49 hspi4.Init.FirstBit = SPI_FIRSTBIT_MSB;
50 hspi4.Init.TIMode = SPI_TIMODE_DISABLE;
51 hspi4.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
52 hspi4.Init.CRCPolynomial = 0x0;
53 hspi4.Init.NSSPMode = SPI_NSS_PULSE_ENABLE;
54 hspi4.Init.NSSPolarity = SPI_NSS_POLARITY_LOW;
55 hspi4.Init.FifoThreshold = SPI_FIFO_THRESHOLD_01DATA;
56 hspi4.Init.TxCRCInitializationPattern = SPI_CRC_INITIALIZATION_ALL_ZERO_PATTERN;
57 hspi4.Init.RxCRCInitializationPattern = SPI_CRC_INITIALIZATION_ALL_ZERO_PATTERN;
58 hspi4.Init.MasterSSIdleness = SPI_MASTER_SS_IDLENESS_00CYCLE;
59 hspi4.Init.MasterInterDataIdleness = SPI_MASTER_INTERDATA_IDLENESS_00CYCLE;
60 hspi4.Init.MasterReceiverAutoSusp = SPI_MASTER_RX_AUTOSUSP_DISABLE;
61 hspi4.Init.MasterKeepIOState = SPI_MASTER_KEEP_IO_STATE_DISABLE;
62 hspi4.Init.IOSwap = SPI_IO_SWAP_DISABLE;
63 if (HAL_SPI_Init(&hspi4) != HAL_OK)
64 {
66 }
67 /* USER CODE BEGIN SPI4_Init 2 */
68
69 /* USER CODE END SPI4_Init 2 */
70
71}
72
73void HAL_SPI_MspInit(SPI_HandleTypeDef* spiHandle)
74{
75
76 GPIO_InitTypeDef GPIO_InitStruct = {0};
77 RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
78 if(spiHandle->Instance==SPI4)
79 {
80 /* USER CODE BEGIN SPI4_MspInit 0 */
81
82 /* USER CODE END SPI4_MspInit 0 */
83
86 PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_SPI4;
87 PeriphClkInitStruct.Spi45ClockSelection = RCC_SPI45CLKSOURCE_D2PCLK1;
88 if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
89 {
91 }
92
93 /* SPI4 clock enable */
94 __HAL_RCC_SPI4_CLK_ENABLE();
95
96 __HAL_RCC_GPIOE_CLK_ENABLE();
101 GPIO_InitStruct.Pin = GPIO_PIN_12|GPIO_PIN_14;
102 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
103 GPIO_InitStruct.Pull = GPIO_NOPULL;
104 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
105 GPIO_InitStruct.Alternate = GPIO_AF5_SPI4;
106 HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
107
108 /* USER CODE BEGIN SPI4_MspInit 1 */
109
110 /* USER CODE END SPI4_MspInit 1 */
111 }
112}
113
114void HAL_SPI_MspDeInit(SPI_HandleTypeDef* spiHandle)
115{
116
117 if(spiHandle->Instance==SPI4)
118 {
119 /* USER CODE BEGIN SPI4_MspDeInit 0 */
120
121 /* USER CODE END SPI4_MspDeInit 0 */
122 /* Peripheral clock disable */
123 __HAL_RCC_SPI4_CLK_DISABLE();
124
129 HAL_GPIO_DeInit(GPIOE, GPIO_PIN_12|GPIO_PIN_14);
130
131 /* USER CODE BEGIN SPI4_MspDeInit 1 */
132
133 /* USER CODE END SPI4_MspDeInit 1 */
134 }
135}
136
137/* USER CODE BEGIN 1 */
138
139/* USER CODE END 1 */
ICARUS OS Error Handling Interface.
void Error_Handler(void)
System error handler for unrecoverable faults.
Definition error.c:50
void MX_SPI4_Init(void)
Definition spi.c:31
void HAL_SPI_MspInit(SPI_HandleTypeDef *spiHandle)
Definition spi.c:73
SPI_HandleTypeDef hspi4
Definition spi.c:28
void HAL_SPI_MspDeInit(SPI_HandleTypeDef *spiHandle)
Definition spi.c:114
This file contains all the function prototypes for the spi.c file.