Use DMA mem2mem with LCD.
This commit is contained in:
parent
3cbe1fd375
commit
f198b3377a
|
@ -170,3 +170,12 @@ add_custom_command(OUTPUT "${CMAKE_PROJECT_NAME}_QSPI_FLASH.hex"
|
||||||
add_custom_target("${CMAKE_PROJECT_NAME}_QSPI_FLASH_HEX"
|
add_custom_target("${CMAKE_PROJECT_NAME}_QSPI_FLASH_HEX"
|
||||||
DEPENDS "${CMAKE_PROJECT_NAME}_QSPI_FLASH.hex"
|
DEPENDS "${CMAKE_PROJECT_NAME}_QSPI_FLASH.hex"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
add_custom_command(OUTPUT "${CMAKE_PROJECT_NAME}_QSPI_FLASH.bin"
|
||||||
|
COMMAND ${CMAKE_OBJCOPY} "-O" "binary" "${CMAKE_PROJECT_NAME}_QSPI_FLASH.elf" "${CMAKE_PROJECT_NAME}_QSPI_FLASH.bin"
|
||||||
|
DEPENDS "${CMAKE_PROJECT_NAME}_QSPI_FLASH.elf"
|
||||||
|
)
|
||||||
|
|
||||||
|
add_custom_target("${CMAKE_PROJECT_NAME}_QSPI_FLASH_BIN"
|
||||||
|
DEPENDS "${CMAKE_PROJECT_NAME}_QSPI_FLASH.bin"
|
||||||
|
)
|
|
@ -62,8 +62,6 @@ void Error_Handler(void);
|
||||||
#define SDMMC_CD_GPIO_Port GPIOC
|
#define SDMMC_CD_GPIO_Port GPIOC
|
||||||
#define LCD_BL_Pin GPIO_PIN_1
|
#define LCD_BL_Pin GPIO_PIN_1
|
||||||
#define LCD_BL_GPIO_Port GPIOB
|
#define LCD_BL_GPIO_Port GPIOB
|
||||||
#define LED2_Pin GPIO_PIN_15
|
|
||||||
#define LED2_GPIO_Port GPIOA
|
|
||||||
#define LED1_Pin GPIO_PIN_11
|
#define LED1_Pin GPIO_PIN_11
|
||||||
#define LED1_GPIO_Port GPIOC
|
#define LED1_GPIO_Port GPIOC
|
||||||
/* USER CODE BEGIN Private defines */
|
/* USER CODE BEGIN Private defines */
|
||||||
|
|
|
@ -1,8 +1,14 @@
|
||||||
#ifndef __OTM_LCD_IMPL_H
|
#ifndef __OTM_LCD_IMPL_H
|
||||||
#define __OTM_LCD_IMPL_H
|
#define __OTM_LCD_IMPL_H
|
||||||
|
|
||||||
|
#include "cmsis_os.h"
|
||||||
|
|
||||||
#include "otm8009a_lcd.h"
|
#include "otm8009a_lcd.h"
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
osSemaphoreId_t dma_semphr;
|
||||||
|
} _otm_impl_t;
|
||||||
|
|
||||||
otm_ret_t _otm_impl_write_reg(void *handle, otm_data_t *reg, uint8_t len);
|
otm_ret_t _otm_impl_write_reg(void *handle, otm_data_t *reg, uint8_t len);
|
||||||
otm_ret_t _otm_impl_write_data(void *handle, otm_data_t *data, uint32_t len);
|
otm_ret_t _otm_impl_write_data(void *handle, otm_data_t *data, uint32_t len);
|
||||||
otm_ret_t _otm_impl_delay(void *handle, uint32_t usec);
|
otm_ret_t _otm_impl_delay(void *handle, uint32_t usec);
|
||||||
|
|
|
@ -74,7 +74,7 @@
|
||||||
/* #define HAL_SPI_MODULE_ENABLED */
|
/* #define HAL_SPI_MODULE_ENABLED */
|
||||||
/* #define HAL_SWPMI_MODULE_ENABLED */
|
/* #define HAL_SWPMI_MODULE_ENABLED */
|
||||||
#define HAL_TIM_MODULE_ENABLED
|
#define HAL_TIM_MODULE_ENABLED
|
||||||
/* #define HAL_UART_MODULE_ENABLED */
|
#define HAL_UART_MODULE_ENABLED
|
||||||
/* #define HAL_USART_MODULE_ENABLED */
|
/* #define HAL_USART_MODULE_ENABLED */
|
||||||
/* #define HAL_IRDA_MODULE_ENABLED */
|
/* #define HAL_IRDA_MODULE_ENABLED */
|
||||||
/* #define HAL_SMARTCARD_MODULE_ENABLED */
|
/* #define HAL_SMARTCARD_MODULE_ENABLED */
|
||||||
|
|
|
@ -51,6 +51,8 @@ RTC_HandleTypeDef hrtc;
|
||||||
|
|
||||||
SD_HandleTypeDef hsd2;
|
SD_HandleTypeDef hsd2;
|
||||||
|
|
||||||
|
UART_HandleTypeDef huart1;
|
||||||
|
|
||||||
DMA_HandleTypeDef hdma_memtomem_dma1_stream0;
|
DMA_HandleTypeDef hdma_memtomem_dma1_stream0;
|
||||||
SRAM_HandleTypeDef hsram1;
|
SRAM_HandleTypeDef hsram1;
|
||||||
|
|
||||||
|
@ -75,6 +77,7 @@ static void MX_FMC_Init(void);
|
||||||
static void MX_QUADSPI_Init(void);
|
static void MX_QUADSPI_Init(void);
|
||||||
static void MX_RTC_Init(void);
|
static void MX_RTC_Init(void);
|
||||||
static void MX_SDMMC2_SD_Init(void);
|
static void MX_SDMMC2_SD_Init(void);
|
||||||
|
static void MX_USART1_UART_Init(void);
|
||||||
void StartDefaultTask(void *argument);
|
void StartDefaultTask(void *argument);
|
||||||
|
|
||||||
/* USER CODE BEGIN PFP */
|
/* USER CODE BEGIN PFP */
|
||||||
|
@ -137,6 +140,7 @@ int main(void)
|
||||||
MX_RTC_Init();
|
MX_RTC_Init();
|
||||||
MX_SDMMC2_SD_Init();
|
MX_SDMMC2_SD_Init();
|
||||||
MX_FATFS_Init();
|
MX_FATFS_Init();
|
||||||
|
MX_USART1_UART_Init();
|
||||||
/* USER CODE BEGIN 2 */
|
/* USER CODE BEGIN 2 */
|
||||||
|
|
||||||
/* USER CODE END 2 */
|
/* USER CODE END 2 */
|
||||||
|
@ -204,15 +208,22 @@ void SystemClock_Config(void)
|
||||||
__HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE3);
|
__HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE3);
|
||||||
|
|
||||||
while(!__HAL_PWR_GET_FLAG(PWR_FLAG_VOSRDY)) {}
|
while(!__HAL_PWR_GET_FLAG(PWR_FLAG_VOSRDY)) {}
|
||||||
|
/** Configure LSE Drive Capability
|
||||||
|
*/
|
||||||
|
HAL_PWR_EnableBkUpAccess();
|
||||||
|
__HAL_RCC_LSEDRIVE_CONFIG(RCC_LSEDRIVE_LOW);
|
||||||
|
/** Macro to configure the PLL clock source
|
||||||
|
*/
|
||||||
|
__HAL_RCC_PLL_PLLSOURCE_CONFIG(RCC_PLLSOURCE_HSE);
|
||||||
/** Initializes the RCC Oscillators according to the specified parameters
|
/** Initializes the RCC Oscillators according to the specified parameters
|
||||||
* in the RCC_OscInitTypeDef structure.
|
* in the RCC_OscInitTypeDef structure.
|
||||||
*/
|
*/
|
||||||
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI|RCC_OSCILLATORTYPE_LSI
|
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI|RCC_OSCILLATORTYPE_HSE
|
||||||
|RCC_OSCILLATORTYPE_HSE;
|
|RCC_OSCILLATORTYPE_LSE;
|
||||||
RCC_OscInitStruct.HSEState = RCC_HSE_ON;
|
RCC_OscInitStruct.HSEState = RCC_HSE_ON;
|
||||||
|
RCC_OscInitStruct.LSEState = RCC_LSE_ON;
|
||||||
RCC_OscInitStruct.HSIState = RCC_HSI_DIV1;
|
RCC_OscInitStruct.HSIState = RCC_HSI_DIV1;
|
||||||
RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT;
|
RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT;
|
||||||
RCC_OscInitStruct.LSIState = RCC_LSI_ON;
|
|
||||||
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
|
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
|
||||||
RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
|
RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
|
||||||
RCC_OscInitStruct.PLL.PLLM = 8;
|
RCC_OscInitStruct.PLL.PLLM = 8;
|
||||||
|
@ -395,6 +406,54 @@ static void MX_SDMMC2_SD_Init(void)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief USART1 Initialization Function
|
||||||
|
* @param None
|
||||||
|
* @retval None
|
||||||
|
*/
|
||||||
|
static void MX_USART1_UART_Init(void)
|
||||||
|
{
|
||||||
|
|
||||||
|
/* USER CODE BEGIN USART1_Init 0 */
|
||||||
|
|
||||||
|
/* USER CODE END USART1_Init 0 */
|
||||||
|
|
||||||
|
/* USER CODE BEGIN USART1_Init 1 */
|
||||||
|
|
||||||
|
/* USER CODE END USART1_Init 1 */
|
||||||
|
huart1.Instance = USART1;
|
||||||
|
huart1.Init.BaudRate = 921600;
|
||||||
|
huart1.Init.WordLength = UART_WORDLENGTH_8B;
|
||||||
|
huart1.Init.StopBits = UART_STOPBITS_1;
|
||||||
|
huart1.Init.Parity = UART_PARITY_NONE;
|
||||||
|
huart1.Init.Mode = UART_MODE_TX_RX;
|
||||||
|
huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;
|
||||||
|
huart1.Init.OverSampling = UART_OVERSAMPLING_16;
|
||||||
|
huart1.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
|
||||||
|
huart1.Init.ClockPrescaler = UART_PRESCALER_DIV1;
|
||||||
|
huart1.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;
|
||||||
|
if (HAL_UART_Init(&huart1) != HAL_OK)
|
||||||
|
{
|
||||||
|
Error_Handler();
|
||||||
|
}
|
||||||
|
if (HAL_UARTEx_SetTxFifoThreshold(&huart1, UART_TXFIFO_THRESHOLD_1_8) != HAL_OK)
|
||||||
|
{
|
||||||
|
Error_Handler();
|
||||||
|
}
|
||||||
|
if (HAL_UARTEx_SetRxFifoThreshold(&huart1, UART_RXFIFO_THRESHOLD_1_8) != HAL_OK)
|
||||||
|
{
|
||||||
|
Error_Handler();
|
||||||
|
}
|
||||||
|
if (HAL_UARTEx_DisableFifoMode(&huart1) != HAL_OK)
|
||||||
|
{
|
||||||
|
Error_Handler();
|
||||||
|
}
|
||||||
|
/* USER CODE BEGIN USART1_Init 2 */
|
||||||
|
|
||||||
|
/* USER CODE END USART1_Init 2 */
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Enable DMA controller clock
|
* Enable DMA controller clock
|
||||||
* Configure DMA for memory to memory transfers
|
* Configure DMA for memory to memory transfers
|
||||||
|
@ -506,9 +565,6 @@ static void MX_GPIO_Init(void)
|
||||||
/*Configure GPIO pin Output Level */
|
/*Configure GPIO pin Output Level */
|
||||||
HAL_GPIO_WritePin(LCD_BL_GPIO_Port, LCD_BL_Pin, GPIO_PIN_RESET);
|
HAL_GPIO_WritePin(LCD_BL_GPIO_Port, LCD_BL_Pin, GPIO_PIN_RESET);
|
||||||
|
|
||||||
/*Configure GPIO pin Output Level */
|
|
||||||
HAL_GPIO_WritePin(LED2_GPIO_Port, LED2_Pin, GPIO_PIN_RESET);
|
|
||||||
|
|
||||||
/*Configure GPIO pin Output Level */
|
/*Configure GPIO pin Output Level */
|
||||||
HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin, GPIO_PIN_RESET);
|
HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin, GPIO_PIN_RESET);
|
||||||
|
|
||||||
|
@ -525,13 +581,6 @@ static void MX_GPIO_Init(void)
|
||||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
||||||
HAL_GPIO_Init(LCD_BL_GPIO_Port, &GPIO_InitStruct);
|
HAL_GPIO_Init(LCD_BL_GPIO_Port, &GPIO_InitStruct);
|
||||||
|
|
||||||
/*Configure GPIO pin : LED2_Pin */
|
|
||||||
GPIO_InitStruct.Pin = LED2_Pin;
|
|
||||||
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
|
||||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
|
||||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
|
||||||
HAL_GPIO_Init(LED2_GPIO_Port, &GPIO_InitStruct);
|
|
||||||
|
|
||||||
/*Configure GPIO pin : LED1_Pin */
|
/*Configure GPIO pin : LED1_Pin */
|
||||||
GPIO_InitStruct.Pin = LED1_Pin;
|
GPIO_InitStruct.Pin = LED1_Pin;
|
||||||
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
||||||
|
|
|
@ -6,6 +6,20 @@
|
||||||
#define LCD_REGISTER_ADDR 0x60000000
|
#define LCD_REGISTER_ADDR 0x60000000
|
||||||
#define LCD_DATA_ADDR 0x60020000
|
#define LCD_DATA_ADDR 0x60020000
|
||||||
|
|
||||||
|
static void _otm_dma_transfer_complete(DMA_HandleTypeDef *DmaHandle) {
|
||||||
|
//osSemaphoreRelease(DmaHandle->);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void _otm_dma_transfer_error(DMA_HandleTypeDef *DmaHandle) {
|
||||||
|
// osSemaphoreGive
|
||||||
|
}
|
||||||
|
|
||||||
|
void _otm_impl_init(void *handle) {
|
||||||
|
_otm_impl_t *impl = handle;
|
||||||
|
|
||||||
|
impl->dma_semphr = osSemaphoreNew(1, 0, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
otm_ret_t _otm_impl_write_reg(void *handle, otm_data_t *reg, uint8_t len) {
|
otm_ret_t _otm_impl_write_reg(void *handle, otm_data_t *reg, uint8_t len) {
|
||||||
*(uint16_t *)LCD_REGISTER_ADDR = *reg;
|
*(uint16_t *)LCD_REGISTER_ADDR = *reg;
|
||||||
for(uint8_t i = 1; i < len; i++) {
|
for(uint8_t i = 1; i < len; i++) {
|
||||||
|
@ -20,6 +34,8 @@ otm_ret_t _otm_impl_write_data(void *handle, otm_data_t *data, uint32_t len) {
|
||||||
*(uint16_t *)LCD_DATA_ADDR = data[i];
|
*(uint16_t *)LCD_DATA_ADDR = data[i];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//HAL_DMA_RegisterCallback()
|
||||||
|
|
||||||
return OTM_OK;
|
return OTM_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -230,7 +230,7 @@ void HAL_RTC_MspInit(RTC_HandleTypeDef* hrtc)
|
||||||
/** Initializes the peripherals clock
|
/** Initializes the peripherals clock
|
||||||
*/
|
*/
|
||||||
PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_RTC;
|
PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_RTC;
|
||||||
PeriphClkInitStruct.RTCClockSelection = RCC_RTCCLKSOURCE_LSI;
|
PeriphClkInitStruct.RTCClockSelection = RCC_RTCCLKSOURCE_LSE;
|
||||||
if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
|
if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
|
||||||
{
|
{
|
||||||
Error_Handler();
|
Error_Handler();
|
||||||
|
@ -365,6 +365,89 @@ void HAL_SD_MspDeInit(SD_HandleTypeDef* hsd)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief UART MSP Initialization
|
||||||
|
* This function configures the hardware resources used in this example
|
||||||
|
* @param huart: UART handle pointer
|
||||||
|
* @retval None
|
||||||
|
*/
|
||||||
|
void HAL_UART_MspInit(UART_HandleTypeDef* huart)
|
||||||
|
{
|
||||||
|
GPIO_InitTypeDef GPIO_InitStruct = {0};
|
||||||
|
RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
|
||||||
|
if(huart->Instance==USART1)
|
||||||
|
{
|
||||||
|
/* USER CODE BEGIN USART1_MspInit 0 */
|
||||||
|
|
||||||
|
/* USER CODE END USART1_MspInit 0 */
|
||||||
|
/** Initializes the peripherals clock
|
||||||
|
*/
|
||||||
|
PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_USART1;
|
||||||
|
PeriphClkInitStruct.PLL2.PLL2M = 8;
|
||||||
|
PeriphClkInitStruct.PLL2.PLL2N = 150;
|
||||||
|
PeriphClkInitStruct.PLL2.PLL2P = 2;
|
||||||
|
PeriphClkInitStruct.PLL2.PLL2Q = 3;
|
||||||
|
PeriphClkInitStruct.PLL2.PLL2R = 2;
|
||||||
|
PeriphClkInitStruct.PLL2.PLL2RGE = RCC_PLL2VCIRANGE_0;
|
||||||
|
PeriphClkInitStruct.PLL2.PLL2VCOSEL = RCC_PLL2VCOMEDIUM;
|
||||||
|
PeriphClkInitStruct.PLL2.PLL2FRACN = 0;
|
||||||
|
PeriphClkInitStruct.Usart16ClockSelection = RCC_USART16CLKSOURCE_PLL2;
|
||||||
|
if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
|
||||||
|
{
|
||||||
|
Error_Handler();
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Peripheral clock enable */
|
||||||
|
__HAL_RCC_USART1_CLK_ENABLE();
|
||||||
|
|
||||||
|
__HAL_RCC_GPIOA_CLK_ENABLE();
|
||||||
|
/**USART1 GPIO Configuration
|
||||||
|
PA9 ------> USART1_TX
|
||||||
|
PA10 ------> USART1_RX
|
||||||
|
*/
|
||||||
|
GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_10;
|
||||||
|
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
||||||
|
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||||
|
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
||||||
|
GPIO_InitStruct.Alternate = GPIO_AF7_USART1;
|
||||||
|
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
|
||||||
|
|
||||||
|
/* USER CODE BEGIN USART1_MspInit 1 */
|
||||||
|
|
||||||
|
/* USER CODE END USART1_MspInit 1 */
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief UART MSP De-Initialization
|
||||||
|
* This function freeze the hardware resources used in this example
|
||||||
|
* @param huart: UART handle pointer
|
||||||
|
* @retval None
|
||||||
|
*/
|
||||||
|
void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
|
||||||
|
{
|
||||||
|
if(huart->Instance==USART1)
|
||||||
|
{
|
||||||
|
/* USER CODE BEGIN USART1_MspDeInit 0 */
|
||||||
|
|
||||||
|
/* USER CODE END USART1_MspDeInit 0 */
|
||||||
|
/* Peripheral clock disable */
|
||||||
|
__HAL_RCC_USART1_CLK_DISABLE();
|
||||||
|
|
||||||
|
/**USART1 GPIO Configuration
|
||||||
|
PA9 ------> USART1_TX
|
||||||
|
PA10 ------> USART1_RX
|
||||||
|
*/
|
||||||
|
HAL_GPIO_DeInit(GPIOA, GPIO_PIN_9|GPIO_PIN_10);
|
||||||
|
|
||||||
|
/* USER CODE BEGIN USART1_MspDeInit 1 */
|
||||||
|
|
||||||
|
/* USER CODE END USART1_MspDeInit 1 */
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
static uint32_t FMC_Initialized = 0;
|
static uint32_t FMC_Initialized = 0;
|
||||||
|
|
||||||
static void HAL_FMC_MspInit(void){
|
static void HAL_FMC_MspInit(void){
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#include "cmsis_os2.h"
|
#include "cmsis_os.h"
|
||||||
|
|
||||||
#include "fatfs.h"
|
#include "fatfs.h"
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#include "cmsis_os2.h"
|
#include "cmsis_os.h"
|
||||||
#include "main.h"
|
#include "main.h"
|
||||||
#include "fatfs.h"
|
#include "fatfs.h"
|
||||||
|
|
||||||
|
@ -31,6 +31,8 @@ osSemaphoreId_t g_lvgl_semaphore;
|
||||||
lv_disp_buf_t g_disp_buf;
|
lv_disp_buf_t g_disp_buf;
|
||||||
lv_color_t g_disp_buf_array[DISP_BUF_SIZE];
|
lv_color_t g_disp_buf_array[DISP_BUF_SIZE];
|
||||||
|
|
||||||
|
_otm_impl_t g_lcd_impl;
|
||||||
|
|
||||||
otm_t g_lcd = {
|
otm_t g_lcd = {
|
||||||
.cb = {
|
.cb = {
|
||||||
.delay_cb = _otm_impl_delay,
|
.delay_cb = _otm_impl_delay,
|
||||||
|
@ -38,7 +40,7 @@ otm_t g_lcd = {
|
||||||
.write_reg_cb = _otm_impl_write_reg,
|
.write_reg_cb = _otm_impl_write_reg,
|
||||||
.backlight_cb = _otm_impl_backlight
|
.backlight_cb = _otm_impl_backlight
|
||||||
},
|
},
|
||||||
.user_data = NULL
|
.user_data = &g_lcd_impl
|
||||||
};
|
};
|
||||||
|
|
||||||
void lvgl_tick_thread(void *parameters);
|
void lvgl_tick_thread(void *parameters);
|
||||||
|
|
6
Makefile
6
Makefile
|
@ -1,5 +1,5 @@
|
||||||
##########################################################################################################################
|
##########################################################################################################################
|
||||||
# File automatically-generated by tool: [projectgenerator] version: [3.13.0-B3] date: [Sat Apr 17 23:48:08 CST 2021]
|
# File automatically-generated by tool: [projectgenerator] version: [3.13.0-B3] date: [Thu Apr 22 00:41:45 CST 2021]
|
||||||
##########################################################################################################################
|
##########################################################################################################################
|
||||||
|
|
||||||
# ------------------------------------------------
|
# ------------------------------------------------
|
||||||
|
@ -205,7 +205,9 @@ Middlewares/Third_Party/FatFs/src/ff.c \
|
||||||
Middlewares/Third_Party/FatFs/src/ff_gen_drv.c \
|
Middlewares/Third_Party/FatFs/src/ff_gen_drv.c \
|
||||||
Middlewares/Third_Party/FatFs/src/option/syscall.c \
|
Middlewares/Third_Party/FatFs/src/option/syscall.c \
|
||||||
Middlewares/Third_Party/FatFs/src/option/cc932.c \
|
Middlewares/Third_Party/FatFs/src/option/cc932.c \
|
||||||
FATFS/Target/fatfs_platform.c
|
FATFS/Target/fatfs_platform.c \
|
||||||
|
Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c \
|
||||||
|
Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart_ex.c
|
||||||
|
|
||||||
# ASM sources
|
# ASM sources
|
||||||
ASM_SOURCES = \
|
ASM_SOURCES = \
|
||||||
|
|
|
@ -109,6 +109,7 @@ Mcu.IP0=CORTEX_M7
|
||||||
Mcu.IP1=DEBUG
|
Mcu.IP1=DEBUG
|
||||||
Mcu.IP10=SDMMC2
|
Mcu.IP10=SDMMC2
|
||||||
Mcu.IP11=SYS
|
Mcu.IP11=SYS
|
||||||
|
Mcu.IP12=USART1
|
||||||
Mcu.IP2=DMA
|
Mcu.IP2=DMA
|
||||||
Mcu.IP3=FATFS
|
Mcu.IP3=FATFS
|
||||||
Mcu.IP4=FMC
|
Mcu.IP4=FMC
|
||||||
|
@ -117,7 +118,7 @@ Mcu.IP6=NVIC
|
||||||
Mcu.IP7=QUADSPI
|
Mcu.IP7=QUADSPI
|
||||||
Mcu.IP8=RCC
|
Mcu.IP8=RCC
|
||||||
Mcu.IP9=RTC
|
Mcu.IP9=RTC
|
||||||
Mcu.IPNb=12
|
Mcu.IPNb=13
|
||||||
Mcu.Name=STM32H750VBTx
|
Mcu.Name=STM32H750VBTx
|
||||||
Mcu.Package=LQFP100
|
Mcu.Package=LQFP100
|
||||||
Mcu.Pin0=PE2
|
Mcu.Pin0=PE2
|
||||||
|
@ -142,32 +143,33 @@ Mcu.Pin25=PD14
|
||||||
Mcu.Pin26=PD15
|
Mcu.Pin26=PD15
|
||||||
Mcu.Pin27=PC7
|
Mcu.Pin27=PC7
|
||||||
Mcu.Pin28=PC9
|
Mcu.Pin28=PC9
|
||||||
Mcu.Pin29=PA13 (JTMS/SWDIO)
|
Mcu.Pin29=PA9
|
||||||
Mcu.Pin3=PC15-OSC32_OUT (OSC32_OUT)
|
Mcu.Pin3=PC15-OSC32_OUT (OSC32_OUT)
|
||||||
Mcu.Pin30=PA14 (JTCK/SWCLK)
|
Mcu.Pin30=PA10
|
||||||
Mcu.Pin31=PA15 (JTDI)
|
Mcu.Pin31=PA13 (JTMS/SWDIO)
|
||||||
Mcu.Pin32=PC10
|
Mcu.Pin32=PA14 (JTCK/SWCLK)
|
||||||
Mcu.Pin33=PC11
|
Mcu.Pin33=PC10
|
||||||
Mcu.Pin34=PD0
|
Mcu.Pin34=PC11
|
||||||
Mcu.Pin35=PD1
|
Mcu.Pin35=PD0
|
||||||
Mcu.Pin36=PD4
|
Mcu.Pin36=PD1
|
||||||
Mcu.Pin37=PD5
|
Mcu.Pin37=PD4
|
||||||
Mcu.Pin38=PD6
|
Mcu.Pin38=PD5
|
||||||
Mcu.Pin39=PD7
|
Mcu.Pin39=PD6
|
||||||
Mcu.Pin4=PH0-OSC_IN (PH0)
|
Mcu.Pin4=PH0-OSC_IN (PH0)
|
||||||
Mcu.Pin40=PB3 (JTDO/TRACESWO)
|
Mcu.Pin40=PD7
|
||||||
Mcu.Pin41=PB4 (NJTRST)
|
Mcu.Pin41=PB3 (JTDO/TRACESWO)
|
||||||
Mcu.Pin42=VP_FATFS_VS_SDIO
|
Mcu.Pin42=PB4 (NJTRST)
|
||||||
Mcu.Pin43=VP_FREERTOS_VS_CMSIS_V2
|
Mcu.Pin43=VP_FATFS_VS_SDIO
|
||||||
Mcu.Pin44=VP_RTC_VS_RTC_Activate
|
Mcu.Pin44=VP_FREERTOS_VS_CMSIS_V2
|
||||||
Mcu.Pin45=VP_RTC_VS_RTC_Calendar
|
Mcu.Pin45=VP_RTC_VS_RTC_Activate
|
||||||
Mcu.Pin46=VP_SYS_VS_tim6
|
Mcu.Pin46=VP_RTC_VS_RTC_Calendar
|
||||||
|
Mcu.Pin47=VP_SYS_VS_tim6
|
||||||
Mcu.Pin5=PH1-OSC_OUT (PH1)
|
Mcu.Pin5=PH1-OSC_OUT (PH1)
|
||||||
Mcu.Pin6=PA1
|
Mcu.Pin6=PA1
|
||||||
Mcu.Pin7=PB1
|
Mcu.Pin7=PB1
|
||||||
Mcu.Pin8=PB2
|
Mcu.Pin8=PB2
|
||||||
Mcu.Pin9=PE7
|
Mcu.Pin9=PE7
|
||||||
Mcu.PinsNb=47
|
Mcu.PinsNb=48
|
||||||
Mcu.ThirdPartyNb=0
|
Mcu.ThirdPartyNb=0
|
||||||
Mcu.UserConstants=
|
Mcu.UserConstants=
|
||||||
Mcu.UserName=STM32H750VBTx
|
Mcu.UserName=STM32H750VBTx
|
||||||
|
@ -200,14 +202,14 @@ NVIC.TimeBaseIP=TIM6
|
||||||
NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
|
NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
|
||||||
PA1.Mode=Single Bank 1
|
PA1.Mode=Single Bank 1
|
||||||
PA1.Signal=QUADSPI_BK1_IO3
|
PA1.Signal=QUADSPI_BK1_IO3
|
||||||
|
PA10.Mode=Asynchronous
|
||||||
|
PA10.Signal=USART1_RX
|
||||||
PA13\ (JTMS/SWDIO).Mode=Serial_Wire
|
PA13\ (JTMS/SWDIO).Mode=Serial_Wire
|
||||||
PA13\ (JTMS/SWDIO).Signal=DEBUG_JTMS-SWDIO
|
PA13\ (JTMS/SWDIO).Signal=DEBUG_JTMS-SWDIO
|
||||||
PA14\ (JTCK/SWCLK).Mode=Serial_Wire
|
PA14\ (JTCK/SWCLK).Mode=Serial_Wire
|
||||||
PA14\ (JTCK/SWCLK).Signal=DEBUG_JTCK-SWCLK
|
PA14\ (JTCK/SWCLK).Signal=DEBUG_JTCK-SWCLK
|
||||||
PA15\ (JTDI).GPIOParameters=GPIO_Label
|
PA9.Mode=Asynchronous
|
||||||
PA15\ (JTDI).GPIO_Label=LED2
|
PA9.Signal=USART1_TX
|
||||||
PA15\ (JTDI).Locked=true
|
|
||||||
PA15\ (JTDI).Signal=GPIO_Output
|
|
||||||
PB1.GPIOParameters=PinState,GPIO_Label
|
PB1.GPIOParameters=PinState,GPIO_Label
|
||||||
PB1.GPIO_Label=LCD_BL
|
PB1.GPIO_Label=LCD_BL
|
||||||
PB1.Locked=true
|
PB1.Locked=true
|
||||||
|
@ -306,7 +308,7 @@ ProjectManager.TargetToolchain=Makefile
|
||||||
ProjectManager.ToolChainLocation=
|
ProjectManager.ToolChainLocation=
|
||||||
ProjectManager.UnderRoot=false
|
ProjectManager.UnderRoot=false
|
||||||
ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-MX_DMA_Init-DMA-false-HAL-true,3-SystemClock_Config-RCC-false-HAL-false,4-MX_FMC_Init-FMC-false-HAL-true,5-MX_QUADSPI_Init-QUADSPI-false-HAL-true,6-MX_RTC_Init-RTC-false-HAL-true,7-MX_SDMMC2_SD_Init-SDMMC2-false-HAL-true,8-MX_FATFS_Init-FATFS-false-HAL-false,0-MX_CORTEX_M7_Init-CORTEX_M7-false-HAL-true
|
ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-MX_DMA_Init-DMA-false-HAL-true,3-SystemClock_Config-RCC-false-HAL-false,4-MX_FMC_Init-FMC-false-HAL-true,5-MX_QUADSPI_Init-QUADSPI-false-HAL-true,6-MX_RTC_Init-RTC-false-HAL-true,7-MX_SDMMC2_SD_Init-SDMMC2-false-HAL-true,8-MX_FATFS_Init-FATFS-false-HAL-false,0-MX_CORTEX_M7_Init-CORTEX_M7-false-HAL-true
|
||||||
RCC.ADCFreq_Value=16125000
|
RCC.ADCFreq_Value=75000000
|
||||||
RCC.AHB12Freq_Value=84000000
|
RCC.AHB12Freq_Value=84000000
|
||||||
RCC.AHB4Freq_Value=84000000
|
RCC.AHB4Freq_Value=84000000
|
||||||
RCC.APB1Freq_Value=84000000
|
RCC.APB1Freq_Value=84000000
|
||||||
|
@ -322,16 +324,19 @@ RCC.D1CPREFreq_Value=168000000
|
||||||
RCC.DFSDMACLkFreq_Value=84000000
|
RCC.DFSDMACLkFreq_Value=84000000
|
||||||
RCC.DFSDMFreq_Value=84000000
|
RCC.DFSDMFreq_Value=84000000
|
||||||
RCC.DIVM1=8
|
RCC.DIVM1=8
|
||||||
|
RCC.DIVM2=8
|
||||||
RCC.DIVN1=336
|
RCC.DIVN1=336
|
||||||
|
RCC.DIVN2=150
|
||||||
RCC.DIVP1Freq_Value=168000000
|
RCC.DIVP1Freq_Value=168000000
|
||||||
RCC.DIVP2Freq_Value=16125000
|
RCC.DIVP2Freq_Value=75000000
|
||||||
RCC.DIVP3Freq_Value=16125000
|
RCC.DIVP3Freq_Value=16125000
|
||||||
RCC.DIVQ1=4
|
RCC.DIVQ1=4
|
||||||
RCC.DIVQ1Freq_Value=84000000
|
RCC.DIVQ1Freq_Value=84000000
|
||||||
RCC.DIVQ2Freq_Value=16125000
|
RCC.DIVQ2=3
|
||||||
|
RCC.DIVQ2Freq_Value=50000000
|
||||||
RCC.DIVQ3Freq_Value=16125000
|
RCC.DIVQ3Freq_Value=16125000
|
||||||
RCC.DIVR1Freq_Value=168000000
|
RCC.DIVR1Freq_Value=168000000
|
||||||
RCC.DIVR2Freq_Value=16125000
|
RCC.DIVR2Freq_Value=75000000
|
||||||
RCC.DIVR3Freq_Value=16125000
|
RCC.DIVR3Freq_Value=16125000
|
||||||
RCC.EnbaleCSS=true
|
RCC.EnbaleCSS=true
|
||||||
RCC.FDCANFreq_Value=84000000
|
RCC.FDCANFreq_Value=84000000
|
||||||
|
@ -345,7 +350,7 @@ RCC.HRTIMFreq_Value=84000000
|
||||||
RCC.HSE_VALUE=8000000
|
RCC.HSE_VALUE=8000000
|
||||||
RCC.I2C123Freq_Value=84000000
|
RCC.I2C123Freq_Value=84000000
|
||||||
RCC.I2C4Freq_Value=84000000
|
RCC.I2C4Freq_Value=84000000
|
||||||
RCC.IPParameters=ADCFreq_Value,AHB12Freq_Value,AHB4Freq_Value,APB1Freq_Value,APB2Freq_Value,APB3Freq_Value,APB4Freq_Value,AXIClockFreq_Value,CECFreq_Value,CKPERFreq_Value,CortexFreq_Value,CpuClockFreq_Value,D1CPREFreq_Value,DFSDMACLkFreq_Value,DFSDMFreq_Value,DIVM1,DIVN1,DIVP1Freq_Value,DIVP2Freq_Value,DIVP3Freq_Value,DIVQ1,DIVQ1Freq_Value,DIVQ2Freq_Value,DIVQ3Freq_Value,DIVR1Freq_Value,DIVR2Freq_Value,DIVR3Freq_Value,EnbaleCSS,FDCANFreq_Value,FMCCLockSelection,FMCFreq_Value,FamilyName,HCLK3ClockFreq_Value,HCLKFreq_Value,HPRE,HRTIMFreq_Value,HSE_VALUE,I2C123Freq_Value,I2C4Freq_Value,LPTIM1Freq_Value,LPTIM2Freq_Value,LPTIM345Freq_Value,LPUART1Freq_Value,LTDCFreq_Value,MCO1PinFreq_Value,MCO2PinFreq_Value,PLLSourceVirtual,QSPICLockSelection,QSPIFreq_Value,RNGFreq_Value,RTCFreq_Value,SAI1Freq_Value,SAI23Freq_Value,SAI4AFreq_Value,SAI4BFreq_Value,SDMMCFreq_Value,SPDIFRXFreq_Value,SPI123Freq_Value,SPI45Freq_Value,SPI6Freq_Value,SWPMI1Freq_Value,SYSCLKFreq_VALUE,SYSCLKSource,Tim1OutputFreq_Value,Tim2OutputFreq_Value,TraceFreq_Value,USART16Freq_Value,USART234578Freq_Value,USBFreq_Value,VCO1OutputFreq_Value,VCO2OutputFreq_Value,VCO3OutputFreq_Value,VCOInput1Freq_Value,VCOInput2Freq_Value,VCOInput3Freq_Value
|
RCC.IPParameters=ADCFreq_Value,AHB12Freq_Value,AHB4Freq_Value,APB1Freq_Value,APB2Freq_Value,APB3Freq_Value,APB4Freq_Value,AXIClockFreq_Value,CECFreq_Value,CKPERFreq_Value,CortexFreq_Value,CpuClockFreq_Value,D1CPREFreq_Value,DFSDMACLkFreq_Value,DFSDMFreq_Value,DIVM1,DIVM2,DIVN1,DIVN2,DIVP1Freq_Value,DIVP2Freq_Value,DIVP3Freq_Value,DIVQ1,DIVQ1Freq_Value,DIVQ2,DIVQ2Freq_Value,DIVQ3Freq_Value,DIVR1Freq_Value,DIVR2Freq_Value,DIVR3Freq_Value,EnbaleCSS,FDCANFreq_Value,FMCCLockSelection,FMCFreq_Value,FamilyName,HCLK3ClockFreq_Value,HCLKFreq_Value,HPRE,HRTIMFreq_Value,HSE_VALUE,I2C123Freq_Value,I2C4Freq_Value,LPTIM1Freq_Value,LPTIM2Freq_Value,LPTIM345Freq_Value,LPUART1Freq_Value,LTDCFreq_Value,MCO1PinFreq_Value,MCO2PinFreq_Value,PLLSourceVirtual,QSPICLockSelection,QSPIFreq_Value,RNGFreq_Value,RTCClockSelection,RTCFreq_Value,SAI1Freq_Value,SAI23Freq_Value,SAI4AFreq_Value,SAI4BFreq_Value,SDMMCFreq_Value,SPDIFRXFreq_Value,SPI123Freq_Value,SPI45Freq_Value,SPI6Freq_Value,SWPMI1Freq_Value,SYSCLKFreq_VALUE,SYSCLKSource,Tim1OutputFreq_Value,Tim2OutputFreq_Value,TraceFreq_Value,USART16CLockSelection,USART16Freq_Value,USART234578Freq_Value,USBFreq_Value,VCO1OutputFreq_Value,VCO2OutputFreq_Value,VCO3OutputFreq_Value,VCOInput1Freq_Value,VCOInput2Freq_Value,VCOInput3Freq_Value
|
||||||
RCC.LPTIM1Freq_Value=84000000
|
RCC.LPTIM1Freq_Value=84000000
|
||||||
RCC.LPTIM2Freq_Value=84000000
|
RCC.LPTIM2Freq_Value=84000000
|
||||||
RCC.LPTIM345Freq_Value=84000000
|
RCC.LPTIM345Freq_Value=84000000
|
||||||
|
@ -357,7 +362,8 @@ RCC.PLLSourceVirtual=RCC_PLLSOURCE_HSE
|
||||||
RCC.QSPICLockSelection=RCC_QSPICLKSOURCE_CLKP
|
RCC.QSPICLockSelection=RCC_QSPICLKSOURCE_CLKP
|
||||||
RCC.QSPIFreq_Value=64000000
|
RCC.QSPIFreq_Value=64000000
|
||||||
RCC.RNGFreq_Value=48000000
|
RCC.RNGFreq_Value=48000000
|
||||||
RCC.RTCFreq_Value=32000
|
RCC.RTCClockSelection=RCC_RTCCLKSOURCE_LSE
|
||||||
|
RCC.RTCFreq_Value=32768
|
||||||
RCC.SAI1Freq_Value=84000000
|
RCC.SAI1Freq_Value=84000000
|
||||||
RCC.SAI23Freq_Value=84000000
|
RCC.SAI23Freq_Value=84000000
|
||||||
RCC.SAI4AFreq_Value=84000000
|
RCC.SAI4AFreq_Value=84000000
|
||||||
|
@ -373,14 +379,15 @@ RCC.SYSCLKSource=RCC_SYSCLKSOURCE_PLLCLK
|
||||||
RCC.Tim1OutputFreq_Value=84000000
|
RCC.Tim1OutputFreq_Value=84000000
|
||||||
RCC.Tim2OutputFreq_Value=84000000
|
RCC.Tim2OutputFreq_Value=84000000
|
||||||
RCC.TraceFreq_Value=168000000
|
RCC.TraceFreq_Value=168000000
|
||||||
RCC.USART16Freq_Value=84000000
|
RCC.USART16CLockSelection=RCC_USART16CLKSOURCE_PLL2
|
||||||
|
RCC.USART16Freq_Value=50000000
|
||||||
RCC.USART234578Freq_Value=84000000
|
RCC.USART234578Freq_Value=84000000
|
||||||
RCC.USBFreq_Value=84000000
|
RCC.USBFreq_Value=84000000
|
||||||
RCC.VCO1OutputFreq_Value=336000000
|
RCC.VCO1OutputFreq_Value=336000000
|
||||||
RCC.VCO2OutputFreq_Value=32250000
|
RCC.VCO2OutputFreq_Value=150000000
|
||||||
RCC.VCO3OutputFreq_Value=32250000
|
RCC.VCO3OutputFreq_Value=32250000
|
||||||
RCC.VCOInput1Freq_Value=1000000
|
RCC.VCOInput1Freq_Value=1000000
|
||||||
RCC.VCOInput2Freq_Value=250000
|
RCC.VCOInput2Freq_Value=1000000
|
||||||
RCC.VCOInput3Freq_Value=250000
|
RCC.VCOInput3Freq_Value=250000
|
||||||
SH.FMC_A16_CLE.0=FMC_A16,A16_1
|
SH.FMC_A16_CLE.0=FMC_A16,A16_1
|
||||||
SH.FMC_A16_CLE.ConfNb=1
|
SH.FMC_A16_CLE.ConfNb=1
|
||||||
|
@ -420,6 +427,9 @@ SH.FMC_NOE.0=FMC_NOE,Lcd1
|
||||||
SH.FMC_NOE.ConfNb=1
|
SH.FMC_NOE.ConfNb=1
|
||||||
SH.FMC_NWE.0=FMC_NWE,Lcd1
|
SH.FMC_NWE.0=FMC_NWE,Lcd1
|
||||||
SH.FMC_NWE.ConfNb=1
|
SH.FMC_NWE.ConfNb=1
|
||||||
|
USART1.BaudRate=921600
|
||||||
|
USART1.IPParameters=VirtualMode-Asynchronous,BaudRate
|
||||||
|
USART1.VirtualMode-Asynchronous=VM_ASYNC
|
||||||
VP_FATFS_VS_SDIO.Mode=SDIO
|
VP_FATFS_VS_SDIO.Mode=SDIO
|
||||||
VP_FATFS_VS_SDIO.Signal=FATFS_VS_SDIO
|
VP_FATFS_VS_SDIO.Signal=FATFS_VS_SDIO
|
||||||
VP_FREERTOS_VS_CMSIS_V2.Mode=CMSIS_V2
|
VP_FREERTOS_VS_CMSIS_V2.Mode=CMSIS_V2
|
||||||
|
|
Loading…
Reference in New Issue