Subversion Repositories LedShow

Rev

Rev 8 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 8 Rev 9
Line 15... Line 15...
15
  *                             www.st.com/SLA0044
15
  *                             www.st.com/SLA0044
16
  *
16
  *
17
  ******************************************************************************
17
  ******************************************************************************
18
  */
18
  */
19
/* USER CODE END Header */
19
/* USER CODE END Header */
20
 
-
 
21
/* Includes ------------------------------------------------------------------*/
20
/* Includes ------------------------------------------------------------------*/
22
#include "main.h"
21
#include "main.h"
23
#include "usb_device.h"
22
#include "usb_device.h"
24
 
23
 
25
/* Private includes ----------------------------------------------------------*/
24
/* Private includes ----------------------------------------------------------*/
26
/* USER CODE BEGIN Includes */
25
/* USER CODE BEGIN Includes */
27
#include "leds.h"
26
#include "libWS2812/leds.h"
28
#include "dmx.h"
27
#include "dmx.h"
29
/* Includes ------------------------------------------------------------------*/
28
/* Includes ------------------------------------------------------------------*/
30
#include "usbd_cdc_if.h"
29
#include "usbd_cdc_if.h"
31
 
30
 
32
/* USER CODE END Includes */
31
/* USER CODE END Includes */
Line 50... Line 49...
50
SPI_HandleTypeDef hspi1;
49
SPI_HandleTypeDef hspi1;
51
DMA_HandleTypeDef hdma_spi1_tx;
50
DMA_HandleTypeDef hdma_spi1_tx;
52
 
51
 
53
UART_HandleTypeDef huart1;
52
UART_HandleTypeDef huart1;
54
 
53
 
55
 
-
 
56
/* USER CODE BEGIN PV */
54
/* USER CODE BEGIN PV */
57
 
55
 
58
/* USER CODE END PV */
56
/* USER CODE END PV */
59
 
57
 
60
/* Private function prototypes -----------------------------------------------*/
58
/* Private function prototypes -----------------------------------------------*/
Line 79... Line 77...
79
int main(void)
77
int main(void)
80
{
78
{
81
  /* USER CODE BEGIN 1 */
79
  /* USER CODE BEGIN 1 */
82
 
80
 
83
  /* USER CODE END 1 */
81
  /* USER CODE END 1 */
84
 
-
 
85
 
82
 
86
  /* MCU Configuration--------------------------------------------------------*/
83
  /* MCU Configuration--------------------------------------------------------*/
87
 
84
 
88
  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
85
  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
89
  HAL_Init();
86
  HAL_Init();
Line 141... Line 138...
141
{
138
{
142
  RCC_OscInitTypeDef RCC_OscInitStruct = {0};
139
  RCC_OscInitTypeDef RCC_OscInitStruct = {0};
143
  RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
140
  RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
144
  RCC_PeriphCLKInitTypeDef PeriphClkInit = {0};
141
  RCC_PeriphCLKInitTypeDef PeriphClkInit = {0};
145
 
142
 
146
  /** Initializes the CPU, AHB and APB busses clocks
143
  /** Initializes the RCC Oscillators according to the specified parameters
-
 
144
  * in the RCC_OscInitTypeDef structure.
147
  */
145
  */
148
  RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
146
  RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
149
  RCC_OscInitStruct.HSEState = RCC_HSE_ON;
147
  RCC_OscInitStruct.HSEState = RCC_HSE_ON;
150
  RCC_OscInitStruct.HSEPredivValue = RCC_HSE_PREDIV_DIV1;
148
  RCC_OscInitStruct.HSEPredivValue = RCC_HSE_PREDIV_DIV1;
151
  RCC_OscInitStruct.HSIState = RCC_HSI_ON;
149
  RCC_OscInitStruct.HSIState = RCC_HSI_ON;
Line 154... Line 152...
154
  RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL9;
152
  RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL9;
155
  if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
153
  if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
156
  {
154
  {
157
    Error_Handler();
155
    Error_Handler();
158
  }
156
  }
159
  /** Initializes the CPU, AHB and APB busses clocks
157
  /** Initializes the CPU, AHB and APB buses clocks
160
  */
158
  */
161
  RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
159
  RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
162
                              |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
160
                              |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
163
  RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
161
  RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
164
  RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
162
  RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
Line 198... Line 196...
198
  hspi1.Init.Direction = SPI_DIRECTION_2LINES;
196
  hspi1.Init.Direction = SPI_DIRECTION_2LINES;
199
  hspi1.Init.DataSize = SPI_DATASIZE_8BIT;
197
  hspi1.Init.DataSize = SPI_DATASIZE_8BIT;
200
  hspi1.Init.CLKPolarity = SPI_POLARITY_LOW;
198
  hspi1.Init.CLKPolarity = SPI_POLARITY_LOW;
201
  hspi1.Init.CLKPhase = SPI_PHASE_1EDGE;
199
  hspi1.Init.CLKPhase = SPI_PHASE_1EDGE;
202
  hspi1.Init.NSS = SPI_NSS_SOFT;
200
  hspi1.Init.NSS = SPI_NSS_SOFT;
203
  hspi1.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_8;
201
  hspi1.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_4;
204
  hspi1.Init.FirstBit = SPI_FIRSTBIT_LSB;
202
  hspi1.Init.FirstBit = SPI_FIRSTBIT_LSB;
205
  hspi1.Init.TIMode = SPI_TIMODE_DISABLE;
203
  hspi1.Init.TIMode = SPI_TIMODE_DISABLE;
206
  hspi1.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
204
  hspi1.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
207
  hspi1.Init.CRCPolynomial = 10;
205
  hspi1.Init.CRCPolynomial = 10;
208
  if (HAL_SPI_Init(&hspi1) != HAL_OK)
206
  if (HAL_SPI_Init(&hspi1) != HAL_OK)
Line 246... Line 244...
246
 
244
 
247
  /* USER CODE END USART1_Init 2 */
245
  /* USER CODE END USART1_Init 2 */
248
 
246
 
249
}
247
}
250
 
248
 
251
/**
249
/**
252
  * Enable DMA controller clock
250
  * Enable DMA controller clock
253
  */
251
  */
254
static void MX_DMA_Init(void)
252
static void MX_DMA_Init(void)
255
{
253
{
-
 
254
 
256
  /* DMA controller clock enable */
255
  /* DMA controller clock enable */
257
  __HAL_RCC_DMA1_CLK_ENABLE();
256
  __HAL_RCC_DMA1_CLK_ENABLE();
258
 
257
 
259
  /* DMA interrupt init */
258
  /* DMA interrupt init */
260
  /* DMA1_Channel3_IRQn interrupt configuration */
259
  /* DMA1_Channel3_IRQn interrupt configuration */
Line 300... Line 299...
300
  * @param  file: pointer to the source file name
299
  * @param  file: pointer to the source file name
301
  * @param  line: assert_param error line source number
300
  * @param  line: assert_param error line source number
302
  * @retval None
301
  * @retval None
303
  */
302
  */
304
void assert_failed(uint8_t *file, uint32_t line)
303
void assert_failed(uint8_t *file, uint32_t line)
305
{
304
{
306
  /* USER CODE BEGIN 6 */
305
  /* USER CODE BEGIN 6 */
307
  /* User can add his own implementation to report the file name and line number,
306
  /* User can add his own implementation to report the file name and line number,
308
     tex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */
307
     tex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */
309
  /* USER CODE END 6 */
308
  /* USER CODE END 6 */
310
}
309
}