SPIPWM the LEDs

This commit is contained in:
2023-03-24 21:12:03 +01:00
parent 04b95a19d1
commit 3b2dac7240
13 changed files with 463 additions and 37 deletions

View File

@ -26,6 +26,7 @@
#include "ft_logo_orange_rgb565.h"
#include "ft_logo_rainbow_rgb565.h"
#include "hx8357d.h"
#include "leds.h"
#include "shorttimer.h"
#include <stdint.h>
@ -61,6 +62,7 @@ LTDC_HandleTypeDef hltdc;
OSPI_HandleTypeDef hospi1;
SPI_HandleTypeDef hspi3;
DMA_HandleTypeDef hdma_spi3_tx;
TIM_HandleTypeDef htim1;
TIM_HandleTypeDef htim2;
@ -75,7 +77,7 @@ volatile int ltdc_cb_triggered;
/* Private function prototypes -----------------------------------------------*/
void SystemClock_Config(void);
static void MX_GPIO_Init(void);
static void MX_DMA2D_Init(void);
static void MX_DMA_Init(void);
static void MX_FDCAN1_Init(void);
static void MX_LTDC_Init(void);
static void MX_JPEG_Init(void);
@ -86,6 +88,7 @@ static void MX_TIM2_Init(void);
static void MX_TIM4_Init(void);
static void MX_CRC_Init(void);
static void MX_TIM17_Init(void);
static void MX_DMA2D_Init(void);
/* USER CODE BEGIN PFP */
/* USER CODE END PFP */
@ -123,7 +126,7 @@ int main(void) {
/* Initialize all configured peripherals */
MX_GPIO_Init();
MX_DMA2D_Init();
MX_DMA_Init();
MX_FDCAN1_Init();
MX_LTDC_Init();
MX_JPEG_Init();
@ -134,6 +137,7 @@ int main(void) {
MX_TIM4_Init();
MX_CRC_Init();
MX_TIM17_Init();
MX_DMA2D_Init();
/* Call PreOsInit function */
MX_TouchGFX_PreOSInit();
/* USER CODE BEGIN 2 */
@ -141,6 +145,7 @@ int main(void) {
Error_Handler();
}
shorttimer_init(htim_us);
led_init(&hspi3, &htim1);
HX8357D_Init();
@ -480,7 +485,7 @@ static void MX_SPI3_Init(void) {
hspi3.Instance = SPI3;
hspi3.Init.Mode = SPI_MODE_MASTER;
hspi3.Init.Direction = SPI_DIRECTION_2LINES_TXONLY;
hspi3.Init.DataSize = SPI_DATASIZE_4BIT;
hspi3.Init.DataSize = SPI_DATASIZE_12BIT;
hspi3.Init.CLKPolarity = SPI_POLARITY_LOW;
hspi3.Init.CLKPhase = SPI_PHASE_1EDGE;
hspi3.Init.NSS = SPI_NSS_SOFT;
@ -715,6 +720,20 @@ static void MX_TIM17_Init(void) {
/* USER CODE END TIM17_Init 2 */
}
/**
* Enable DMA controller clock
*/
static void MX_DMA_Init(void) {
/* DMA controller clock enable */
__HAL_RCC_DMA1_CLK_ENABLE();
/* DMA interrupt init */
/* DMA1_Stream0_IRQn interrupt configuration */
HAL_NVIC_SetPriority(DMA1_Stream0_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(DMA1_Stream0_IRQn);
}
/**
* @brief GPIO Initialization Function
* @param None