all
This commit is contained in:
parent
4b5e25f05e
commit
fbfbcfde44
@ -52,7 +52,7 @@ void MemManage_Handler(void);
|
|||||||
void BusFault_Handler(void);
|
void BusFault_Handler(void);
|
||||||
void UsageFault_Handler(void);
|
void UsageFault_Handler(void);
|
||||||
void DebugMon_Handler(void);
|
void DebugMon_Handler(void);
|
||||||
void TIM2_IRQHandler(void);
|
void TIM3_IRQHandler(void);
|
||||||
void SPI1_IRQHandler(void);
|
void SPI1_IRQHandler(void);
|
||||||
void DMA2_Stream0_IRQHandler(void);
|
void DMA2_Stream0_IRQHandler(void);
|
||||||
void DMA2_Stream3_IRQHandler(void);
|
void DMA2_Stream3_IRQHandler(void);
|
||||||
|
|||||||
201
Core/Src/main.c
201
Core/Src/main.c
@ -59,22 +59,35 @@ UART_HandleTypeDef huart6;
|
|||||||
|
|
||||||
/* Definitions for touchhistory */
|
/* Definitions for touchhistory */
|
||||||
osThreadId_t touchhistoryHandle;
|
osThreadId_t touchhistoryHandle;
|
||||||
const osThreadAttr_t touchhistory_attributes = { .name = "touchhistory",
|
const osThreadAttr_t touchhistory_attributes = {
|
||||||
.stack_size = 128 * 4, .priority = (osPriority_t) osPriorityNormal, };
|
.name = "touchhistory",
|
||||||
|
.stack_size = 128 * 4,
|
||||||
|
.priority = (osPriority_t) osPriorityNormal,
|
||||||
|
};
|
||||||
/* Definitions for draw */
|
/* Definitions for draw */
|
||||||
osThreadId_t drawHandle;
|
osThreadId_t drawHandle;
|
||||||
const osThreadAttr_t draw_attributes = { .name = "draw", .stack_size = 512 * 4,
|
const osThreadAttr_t draw_attributes = {
|
||||||
.priority = (osPriority_t) osPriorityLow, };
|
.name = "draw",
|
||||||
|
.stack_size = 512 * 4,
|
||||||
|
.priority = (osPriority_t) osPriorityLow,
|
||||||
|
};
|
||||||
/* Definitions for menu */
|
/* Definitions for menu */
|
||||||
osThreadId_t menuHandle;
|
osThreadId_t menuHandle;
|
||||||
const osThreadAttr_t menu_attributes = { .name = "menu", .stack_size = 256 * 4,
|
const osThreadAttr_t menu_attributes = {
|
||||||
.priority = (osPriority_t) osPriorityLow, };
|
.name = "menu",
|
||||||
|
.stack_size = 256 * 4,
|
||||||
|
.priority = (osPriority_t) osPriorityLow,
|
||||||
|
};
|
||||||
/* Definitions for presses */
|
/* Definitions for presses */
|
||||||
osMessageQueueId_t pressesHandle;
|
osMessageQueueId_t pressesHandle;
|
||||||
const osMessageQueueAttr_t presses_attributes = { .name = "presses" };
|
const osMessageQueueAttr_t presses_attributes = {
|
||||||
|
.name = "presses"
|
||||||
|
};
|
||||||
/* Definitions for display */
|
/* Definitions for display */
|
||||||
osMutexId_t displayHandle;
|
osMutexId_t displayHandle;
|
||||||
const osMutexAttr_t display_attributes = { .name = "display" };
|
const osMutexAttr_t display_attributes = {
|
||||||
|
.name = "display"
|
||||||
|
};
|
||||||
/* USER CODE BEGIN PV */
|
/* USER CODE BEGIN PV */
|
||||||
|
|
||||||
/* USER CODE END PV */
|
/* USER CODE END PV */
|
||||||
@ -89,7 +102,7 @@ static void MX_TIM4_Init(void);
|
|||||||
static void MX_TIM5_Init(void);
|
static void MX_TIM5_Init(void);
|
||||||
static void MX_USART6_UART_Init(void);
|
static void MX_USART6_UART_Init(void);
|
||||||
static void MX_I2C1_Init(void);
|
static void MX_I2C1_Init(void);
|
||||||
|
void StartTouchHist(void *argument);
|
||||||
void snakegame(void *argument);
|
void snakegame(void *argument);
|
||||||
void handle_menu(void *argument);
|
void handle_menu(void *argument);
|
||||||
|
|
||||||
@ -185,7 +198,8 @@ void UART_CALLBACK() {
|
|||||||
* @brief The application entry point.
|
* @brief The application entry point.
|
||||||
* @retval int
|
* @retval int
|
||||||
*/
|
*/
|
||||||
int main(void) {
|
int main(void)
|
||||||
|
{
|
||||||
|
|
||||||
/* USER CODE BEGIN 1 */
|
/* USER CODE BEGIN 1 */
|
||||||
|
|
||||||
@ -244,7 +258,7 @@ int main(void) {
|
|||||||
|
|
||||||
/* Create the queue(s) */
|
/* Create the queue(s) */
|
||||||
/* creation of presses */
|
/* creation of presses */
|
||||||
pressesHandle = osMessageQueueNew(16, sizeof(char), &presses_attributes);
|
pressesHandle = osMessageQueueNew (16, sizeof(char), &presses_attributes);
|
||||||
|
|
||||||
/* USER CODE BEGIN RTOS_QUEUES */
|
/* USER CODE BEGIN RTOS_QUEUES */
|
||||||
/* add queues, ... */
|
/* add queues, ... */
|
||||||
@ -252,7 +266,8 @@ int main(void) {
|
|||||||
|
|
||||||
/* Create the thread(s) */
|
/* Create the thread(s) */
|
||||||
/* creation of touchhistory */
|
/* creation of touchhistory */
|
||||||
//touchhistoryHandle = osThreadNew(StartTouchHist, NULL, &touchhistory_attributes);
|
touchhistoryHandle = osThreadNew(StartTouchHist, NULL, &touchhistory_attributes);
|
||||||
|
|
||||||
/* creation of draw */
|
/* creation of draw */
|
||||||
drawHandle = osThreadNew(snakegame, NULL, &draw_attributes);
|
drawHandle = osThreadNew(snakegame, NULL, &draw_attributes);
|
||||||
|
|
||||||
@ -331,9 +346,10 @@ int main(void) {
|
|||||||
* @brief System Clock Configuration
|
* @brief System Clock Configuration
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
void SystemClock_Config(void) {
|
void SystemClock_Config(void)
|
||||||
RCC_OscInitTypeDef RCC_OscInitStruct = { 0 };
|
{
|
||||||
RCC_ClkInitTypeDef RCC_ClkInitStruct = { 0 };
|
RCC_OscInitTypeDef RCC_OscInitStruct = {0};
|
||||||
|
RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
|
||||||
|
|
||||||
/** Configure the main internal regulator output voltage
|
/** Configure the main internal regulator output voltage
|
||||||
*/
|
*/
|
||||||
@ -347,20 +363,22 @@ void SystemClock_Config(void) {
|
|||||||
RCC_OscInitStruct.HSIState = RCC_HSI_ON;
|
RCC_OscInitStruct.HSIState = RCC_HSI_ON;
|
||||||
RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT;
|
RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT;
|
||||||
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE;
|
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE;
|
||||||
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) {
|
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
|
||||||
|
{
|
||||||
Error_Handler();
|
Error_Handler();
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Initializes the CPU, AHB and APB buses clocks
|
/** Initializes the CPU, AHB and APB buses clocks
|
||||||
*/
|
*/
|
||||||
RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_SYSCLK
|
RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
|
||||||
| RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2;
|
|RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
|
||||||
RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_HSI;
|
RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_HSI;
|
||||||
RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
|
RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
|
||||||
RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;
|
RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;
|
||||||
RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
|
RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
|
||||||
|
|
||||||
if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_0) != HAL_OK) {
|
if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_0) != HAL_OK)
|
||||||
|
{
|
||||||
Error_Handler();
|
Error_Handler();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -370,7 +388,8 @@ void SystemClock_Config(void) {
|
|||||||
* @param None
|
* @param None
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
static void MX_I2C1_Init(void) {
|
static void MX_I2C1_Init(void)
|
||||||
|
{
|
||||||
|
|
||||||
/* USER CODE BEGIN I2C1_Init 0 */
|
/* USER CODE BEGIN I2C1_Init 0 */
|
||||||
|
|
||||||
@ -388,7 +407,8 @@ static void MX_I2C1_Init(void) {
|
|||||||
hi2c1.Init.OwnAddress2 = 0;
|
hi2c1.Init.OwnAddress2 = 0;
|
||||||
hi2c1.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE;
|
hi2c1.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE;
|
||||||
hi2c1.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE;
|
hi2c1.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE;
|
||||||
if (HAL_I2C_Init(&hi2c1) != HAL_OK) {
|
if (HAL_I2C_Init(&hi2c1) != HAL_OK)
|
||||||
|
{
|
||||||
Error_Handler();
|
Error_Handler();
|
||||||
}
|
}
|
||||||
/* USER CODE BEGIN I2C1_Init 2 */
|
/* USER CODE BEGIN I2C1_Init 2 */
|
||||||
@ -402,7 +422,8 @@ static void MX_I2C1_Init(void) {
|
|||||||
* @param None
|
* @param None
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
static void MX_SPI1_Init(void) {
|
static void MX_SPI1_Init(void)
|
||||||
|
{
|
||||||
|
|
||||||
/* USER CODE BEGIN SPI1_Init 0 */
|
/* USER CODE BEGIN SPI1_Init 0 */
|
||||||
|
|
||||||
@ -424,7 +445,8 @@ static void MX_SPI1_Init(void) {
|
|||||||
hspi1.Init.TIMode = SPI_TIMODE_DISABLE;
|
hspi1.Init.TIMode = SPI_TIMODE_DISABLE;
|
||||||
hspi1.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
|
hspi1.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
|
||||||
hspi1.Init.CRCPolynomial = 10;
|
hspi1.Init.CRCPolynomial = 10;
|
||||||
if (HAL_SPI_Init(&hspi1) != HAL_OK) {
|
if (HAL_SPI_Init(&hspi1) != HAL_OK)
|
||||||
|
{
|
||||||
Error_Handler();
|
Error_Handler();
|
||||||
}
|
}
|
||||||
/* USER CODE BEGIN SPI1_Init 2 */
|
/* USER CODE BEGIN SPI1_Init 2 */
|
||||||
@ -438,14 +460,15 @@ static void MX_SPI1_Init(void) {
|
|||||||
* @param None
|
* @param None
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
static void MX_TIM1_Init(void) {
|
static void MX_TIM1_Init(void)
|
||||||
|
{
|
||||||
|
|
||||||
/* USER CODE BEGIN TIM1_Init 0 */
|
/* USER CODE BEGIN TIM1_Init 0 */
|
||||||
|
|
||||||
/* USER CODE END TIM1_Init 0 */
|
/* USER CODE END TIM1_Init 0 */
|
||||||
|
|
||||||
TIM_Encoder_InitTypeDef sConfig = { 0 };
|
TIM_Encoder_InitTypeDef sConfig = {0};
|
||||||
TIM_MasterConfigTypeDef sMasterConfig = { 0 };
|
TIM_MasterConfigTypeDef sMasterConfig = {0};
|
||||||
|
|
||||||
/* USER CODE BEGIN TIM1_Init 1 */
|
/* USER CODE BEGIN TIM1_Init 1 */
|
||||||
|
|
||||||
@ -460,19 +483,20 @@ static void MX_TIM1_Init(void) {
|
|||||||
sConfig.EncoderMode = TIM_ENCODERMODE_TI12;
|
sConfig.EncoderMode = TIM_ENCODERMODE_TI12;
|
||||||
sConfig.IC1Polarity = TIM_ICPOLARITY_RISING;
|
sConfig.IC1Polarity = TIM_ICPOLARITY_RISING;
|
||||||
sConfig.IC1Selection = TIM_ICSELECTION_DIRECTTI;
|
sConfig.IC1Selection = TIM_ICSELECTION_DIRECTTI;
|
||||||
sConfig.IC1Prescaler = TIM_ICPSC_DIV1;
|
sConfig.IC1Prescaler = TIM_ICPSC_DIV8;
|
||||||
sConfig.IC1Filter = 0;
|
sConfig.IC1Filter = 15;
|
||||||
sConfig.IC2Polarity = TIM_ICPOLARITY_RISING;
|
sConfig.IC2Polarity = TIM_ICPOLARITY_RISING;
|
||||||
sConfig.IC2Selection = TIM_ICSELECTION_DIRECTTI;
|
sConfig.IC2Selection = TIM_ICSELECTION_DIRECTTI;
|
||||||
sConfig.IC2Prescaler = TIM_ICPSC_DIV1;
|
sConfig.IC2Prescaler = TIM_ICPSC_DIV8;
|
||||||
sConfig.IC2Filter = 0;
|
sConfig.IC2Filter = 15;
|
||||||
if (HAL_TIM_Encoder_Init(&htim1, &sConfig) != HAL_OK) {
|
if (HAL_TIM_Encoder_Init(&htim1, &sConfig) != HAL_OK)
|
||||||
|
{
|
||||||
Error_Handler();
|
Error_Handler();
|
||||||
}
|
}
|
||||||
sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
|
sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
|
||||||
sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
|
sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
|
||||||
if (HAL_TIMEx_MasterConfigSynchronization(&htim1, &sMasterConfig)
|
if (HAL_TIMEx_MasterConfigSynchronization(&htim1, &sMasterConfig) != HAL_OK)
|
||||||
!= HAL_OK) {
|
{
|
||||||
Error_Handler();
|
Error_Handler();
|
||||||
}
|
}
|
||||||
/* USER CODE BEGIN TIM1_Init 2 */
|
/* USER CODE BEGIN TIM1_Init 2 */
|
||||||
@ -486,14 +510,15 @@ static void MX_TIM1_Init(void) {
|
|||||||
* @param None
|
* @param None
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
static void MX_TIM4_Init(void) {
|
static void MX_TIM4_Init(void)
|
||||||
|
{
|
||||||
|
|
||||||
/* USER CODE BEGIN TIM4_Init 0 */
|
/* USER CODE BEGIN TIM4_Init 0 */
|
||||||
|
|
||||||
/* USER CODE END TIM4_Init 0 */
|
/* USER CODE END TIM4_Init 0 */
|
||||||
|
|
||||||
TIM_Encoder_InitTypeDef sConfig = { 0 };
|
TIM_Encoder_InitTypeDef sConfig = {0};
|
||||||
TIM_MasterConfigTypeDef sMasterConfig = { 0 };
|
TIM_MasterConfigTypeDef sMasterConfig = {0};
|
||||||
|
|
||||||
/* USER CODE BEGIN TIM4_Init 1 */
|
/* USER CODE BEGIN TIM4_Init 1 */
|
||||||
|
|
||||||
@ -507,19 +532,20 @@ static void MX_TIM4_Init(void) {
|
|||||||
sConfig.EncoderMode = TIM_ENCODERMODE_TI12;
|
sConfig.EncoderMode = TIM_ENCODERMODE_TI12;
|
||||||
sConfig.IC1Polarity = TIM_ICPOLARITY_RISING;
|
sConfig.IC1Polarity = TIM_ICPOLARITY_RISING;
|
||||||
sConfig.IC1Selection = TIM_ICSELECTION_DIRECTTI;
|
sConfig.IC1Selection = TIM_ICSELECTION_DIRECTTI;
|
||||||
sConfig.IC1Prescaler = TIM_ICPSC_DIV1;
|
sConfig.IC1Prescaler = TIM_ICPSC_DIV8;
|
||||||
sConfig.IC1Filter = 0;
|
sConfig.IC1Filter = 15;
|
||||||
sConfig.IC2Polarity = TIM_ICPOLARITY_RISING;
|
sConfig.IC2Polarity = TIM_ICPOLARITY_RISING;
|
||||||
sConfig.IC2Selection = TIM_ICSELECTION_DIRECTTI;
|
sConfig.IC2Selection = TIM_ICSELECTION_DIRECTTI;
|
||||||
sConfig.IC2Prescaler = TIM_ICPSC_DIV1;
|
sConfig.IC2Prescaler = TIM_ICPSC_DIV8;
|
||||||
sConfig.IC2Filter = 0;
|
sConfig.IC2Filter = 15;
|
||||||
if (HAL_TIM_Encoder_Init(&htim4, &sConfig) != HAL_OK) {
|
if (HAL_TIM_Encoder_Init(&htim4, &sConfig) != HAL_OK)
|
||||||
|
{
|
||||||
Error_Handler();
|
Error_Handler();
|
||||||
}
|
}
|
||||||
sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
|
sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
|
||||||
sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
|
sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
|
||||||
if (HAL_TIMEx_MasterConfigSynchronization(&htim4, &sMasterConfig)
|
if (HAL_TIMEx_MasterConfigSynchronization(&htim4, &sMasterConfig) != HAL_OK)
|
||||||
!= HAL_OK) {
|
{
|
||||||
Error_Handler();
|
Error_Handler();
|
||||||
}
|
}
|
||||||
/* USER CODE BEGIN TIM4_Init 2 */
|
/* USER CODE BEGIN TIM4_Init 2 */
|
||||||
@ -533,59 +559,53 @@ static void MX_TIM4_Init(void) {
|
|||||||
* @param None
|
* @param None
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
static void MX_TIM5_Init(void) {
|
static void MX_TIM5_Init(void)
|
||||||
|
{
|
||||||
|
|
||||||
/* USER CODE BEGIN TIM5_Init 0 */
|
/* USER CODE BEGIN TIM5_Init 0 */
|
||||||
|
|
||||||
/* USER CODE END TIM5_Init 0 */
|
/* USER CODE END TIM5_Init 0 */
|
||||||
|
|
||||||
TIM_ClockConfigTypeDef sClockSourceConfig = { 0 };
|
TIM_MasterConfigTypeDef sMasterConfig = {0};
|
||||||
TIM_MasterConfigTypeDef sMasterConfig = { 0 };
|
TIM_OC_InitTypeDef sConfigOC = {0};
|
||||||
TIM_OC_InitTypeDef sConfigOC = { 0 };
|
|
||||||
|
|
||||||
/* USER CODE BEGIN TIM5_Init 1 */
|
/* USER CODE BEGIN TIM5_Init 1 */
|
||||||
|
|
||||||
/* USER CODE END TIM5_Init 1 */
|
/* USER CODE END TIM5_Init 1 */
|
||||||
htim5.Instance = TIM5;
|
htim5.Instance = TIM5;
|
||||||
htim5.Init.Prescaler = 0;
|
htim5.Init.Prescaler = 92;
|
||||||
htim5.Init.CounterMode = TIM_COUNTERMODE_UP;
|
htim5.Init.CounterMode = TIM_COUNTERMODE_UP;
|
||||||
htim5.Init.Period = 4294967295;
|
htim5.Init.Period = 10000;
|
||||||
htim5.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
|
htim5.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
|
||||||
htim5.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
|
htim5.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
|
||||||
if (HAL_TIM_Base_Init(&htim5) != HAL_OK) {
|
if (HAL_TIM_PWM_Init(&htim5) != HAL_OK)
|
||||||
Error_Handler();
|
{
|
||||||
}
|
|
||||||
sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
|
|
||||||
if (HAL_TIM_ConfigClockSource(&htim5, &sClockSourceConfig) != HAL_OK) {
|
|
||||||
Error_Handler();
|
|
||||||
}
|
|
||||||
if (HAL_TIM_PWM_Init(&htim5) != HAL_OK) {
|
|
||||||
Error_Handler();
|
Error_Handler();
|
||||||
}
|
}
|
||||||
sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
|
sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
|
||||||
sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
|
sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
|
||||||
if (HAL_TIMEx_MasterConfigSynchronization(&htim5, &sMasterConfig)
|
if (HAL_TIMEx_MasterConfigSynchronization(&htim5, &sMasterConfig) != HAL_OK)
|
||||||
!= HAL_OK) {
|
{
|
||||||
Error_Handler();
|
Error_Handler();
|
||||||
}
|
}
|
||||||
sConfigOC.OCMode = TIM_OCMODE_PWM1;
|
sConfigOC.OCMode = TIM_OCMODE_PWM1;
|
||||||
sConfigOC.Pulse = 0;
|
sConfigOC.Pulse = 0;
|
||||||
sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
|
sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
|
||||||
sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
|
sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
|
||||||
if (HAL_TIM_PWM_ConfigChannel(&htim5, &sConfigOC, TIM_CHANNEL_1)
|
if (HAL_TIM_PWM_ConfigChannel(&htim5, &sConfigOC, TIM_CHANNEL_1) != HAL_OK)
|
||||||
!= HAL_OK) {
|
{
|
||||||
Error_Handler();
|
Error_Handler();
|
||||||
}
|
}
|
||||||
if (HAL_TIM_PWM_ConfigChannel(&htim5, &sConfigOC, TIM_CHANNEL_2)
|
if (HAL_TIM_PWM_ConfigChannel(&htim5, &sConfigOC, TIM_CHANNEL_2) != HAL_OK)
|
||||||
!= HAL_OK) {
|
{
|
||||||
Error_Handler();
|
Error_Handler();
|
||||||
}
|
}
|
||||||
if (HAL_TIM_PWM_ConfigChannel(&htim5, &sConfigOC, TIM_CHANNEL_3)
|
if (HAL_TIM_PWM_ConfigChannel(&htim5, &sConfigOC, TIM_CHANNEL_3) != HAL_OK)
|
||||||
!= HAL_OK) {
|
{
|
||||||
Error_Handler();
|
Error_Handler();
|
||||||
}
|
}
|
||||||
if (HAL_TIM_PWM_ConfigChannel(&htim5, &sConfigOC, TIM_CHANNEL_4)
|
if (HAL_TIM_PWM_ConfigChannel(&htim5, &sConfigOC, TIM_CHANNEL_4) != HAL_OK)
|
||||||
!= HAL_OK) {
|
{
|
||||||
Error_Handler();
|
Error_Handler();
|
||||||
}
|
}
|
||||||
/* USER CODE BEGIN TIM5_Init 2 */
|
/* USER CODE BEGIN TIM5_Init 2 */
|
||||||
@ -600,7 +620,8 @@ static void MX_TIM5_Init(void) {
|
|||||||
* @param None
|
* @param None
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
static void MX_USART6_UART_Init(void) {
|
static void MX_USART6_UART_Init(void)
|
||||||
|
{
|
||||||
|
|
||||||
/* USER CODE BEGIN USART6_Init 0 */
|
/* USER CODE BEGIN USART6_Init 0 */
|
||||||
|
|
||||||
@ -617,7 +638,8 @@ static void MX_USART6_UART_Init(void) {
|
|||||||
huart6.Init.Mode = UART_MODE_TX_RX;
|
huart6.Init.Mode = UART_MODE_TX_RX;
|
||||||
huart6.Init.HwFlowCtl = UART_HWCONTROL_NONE;
|
huart6.Init.HwFlowCtl = UART_HWCONTROL_NONE;
|
||||||
huart6.Init.OverSampling = UART_OVERSAMPLING_16;
|
huart6.Init.OverSampling = UART_OVERSAMPLING_16;
|
||||||
if (HAL_UART_Init(&huart6) != HAL_OK) {
|
if (HAL_UART_Init(&huart6) != HAL_OK)
|
||||||
|
{
|
||||||
Error_Handler();
|
Error_Handler();
|
||||||
}
|
}
|
||||||
/* USER CODE BEGIN USART6_Init 2 */
|
/* USER CODE BEGIN USART6_Init 2 */
|
||||||
@ -631,7 +653,8 @@ static void MX_USART6_UART_Init(void) {
|
|||||||
/**
|
/**
|
||||||
* Enable DMA controller clock
|
* Enable DMA controller clock
|
||||||
*/
|
*/
|
||||||
static void MX_DMA_Init(void) {
|
static void MX_DMA_Init(void)
|
||||||
|
{
|
||||||
|
|
||||||
/* DMA controller clock enable */
|
/* DMA controller clock enable */
|
||||||
__HAL_RCC_DMA2_CLK_ENABLE();
|
__HAL_RCC_DMA2_CLK_ENABLE();
|
||||||
@ -651,8 +674,9 @@ static void MX_DMA_Init(void) {
|
|||||||
* @param None
|
* @param None
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
static void MX_GPIO_Init(void) {
|
static void MX_GPIO_Init(void)
|
||||||
GPIO_InitTypeDef GPIO_InitStruct = { 0 };
|
{
|
||||||
|
GPIO_InitTypeDef GPIO_InitStruct = {0};
|
||||||
/* USER CODE BEGIN MX_GPIO_Init_1 */
|
/* USER CODE BEGIN MX_GPIO_Init_1 */
|
||||||
|
|
||||||
/* USER CODE END MX_GPIO_Init_1 */
|
/* USER CODE END MX_GPIO_Init_1 */
|
||||||
@ -666,7 +690,7 @@ static void MX_GPIO_Init(void) {
|
|||||||
HAL_GPIO_WritePin(LED_BLUE_GPIO_Port, LED_BLUE_Pin, GPIO_PIN_RESET);
|
HAL_GPIO_WritePin(LED_BLUE_GPIO_Port, LED_BLUE_Pin, GPIO_PIN_RESET);
|
||||||
|
|
||||||
/*Configure GPIO pin Output Level */
|
/*Configure GPIO pin Output Level */
|
||||||
HAL_GPIO_WritePin(GPIOA, DISPLAY_CS_Pin | DISPLAY_RES_Pin, GPIO_PIN_RESET);
|
HAL_GPIO_WritePin(GPIOA, DISPLAY_CS_Pin|DISPLAY_RES_Pin, GPIO_PIN_RESET);
|
||||||
|
|
||||||
/*Configure GPIO pin Output Level */
|
/*Configure GPIO pin Output Level */
|
||||||
HAL_GPIO_WritePin(DISPLAY_DC_GPIO_Port, DISPLAY_DC_Pin, GPIO_PIN_RESET);
|
HAL_GPIO_WritePin(DISPLAY_DC_GPIO_Port, DISPLAY_DC_Pin, GPIO_PIN_RESET);
|
||||||
@ -679,7 +703,7 @@ static void MX_GPIO_Init(void) {
|
|||||||
HAL_GPIO_Init(LED_BLUE_GPIO_Port, &GPIO_InitStruct);
|
HAL_GPIO_Init(LED_BLUE_GPIO_Port, &GPIO_InitStruct);
|
||||||
|
|
||||||
/*Configure GPIO pins : DISPLAY_CS_Pin DISPLAY_RES_Pin */
|
/*Configure GPIO pins : DISPLAY_CS_Pin DISPLAY_RES_Pin */
|
||||||
GPIO_InitStruct.Pin = DISPLAY_CS_Pin | DISPLAY_RES_Pin;
|
GPIO_InitStruct.Pin = DISPLAY_CS_Pin|DISPLAY_RES_Pin;
|
||||||
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
||||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
||||||
@ -708,6 +732,15 @@ static void MX_GPIO_Init(void) {
|
|||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
/* USER CODE END Header_StartTouchHist */
|
/* USER CODE END Header_StartTouchHist */
|
||||||
|
void StartTouchHist(void *argument)
|
||||||
|
{
|
||||||
|
/* USER CODE BEGIN 5 */
|
||||||
|
/* Infinite loop */
|
||||||
|
for (;;) {
|
||||||
|
osDelay(1);
|
||||||
|
}
|
||||||
|
/* USER CODE END 5 */
|
||||||
|
}
|
||||||
|
|
||||||
/* USER CODE BEGIN Header_snakegame */
|
/* USER CODE BEGIN Header_snakegame */
|
||||||
/**
|
/**
|
||||||
@ -716,7 +749,8 @@ static void MX_GPIO_Init(void) {
|
|||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
/* USER CODE END Header_snakegame */
|
/* USER CODE END Header_snakegame */
|
||||||
void snakegame(void *argument) {
|
void snakegame(void *argument)
|
||||||
|
{
|
||||||
/* USER CODE BEGIN snakegame */
|
/* USER CODE BEGIN snakegame */
|
||||||
/* Infinite loop */
|
/* Infinite loop */
|
||||||
//ILI9341_FillScreen(BLACK);
|
//ILI9341_FillScreen(BLACK);
|
||||||
@ -740,9 +774,10 @@ void snakegame(void *argument) {
|
|||||||
vTaskDelay(10);
|
vTaskDelay(10);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* USER CODE END snakegame */
|
|
||||||
}
|
}
|
||||||
|
/* USER CODE END snakegame */
|
||||||
}
|
}
|
||||||
|
|
||||||
/* USER CODE BEGIN Header_handle_menu */
|
/* USER CODE BEGIN Header_handle_menu */
|
||||||
/**
|
/**
|
||||||
* @brief Function implementing the menu thread.
|
* @brief Function implementing the menu thread.
|
||||||
@ -809,7 +844,8 @@ void redraw_menu() { //only done onece saves resources
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* USER CODE END Header_handle_menu */
|
/* USER CODE END Header_handle_menu */
|
||||||
void handle_menu(void *argument) {
|
void handle_menu(void *argument)
|
||||||
|
{
|
||||||
/* USER CODE BEGIN handle_menu */
|
/* USER CODE BEGIN handle_menu */
|
||||||
/* Infinite loop */
|
/* Infinite loop */
|
||||||
|
|
||||||
@ -877,17 +913,19 @@ void handle_menu(void *argument) {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Period elapsed callback in non blocking mode
|
* @brief Period elapsed callback in non blocking mode
|
||||||
* @note This function is called when TIM2 interrupt took place, inside
|
* @note This function is called when TIM3 interrupt took place, inside
|
||||||
* HAL_TIM_IRQHandler(). It makes a direct call to HAL_IncTick() to increment
|
* HAL_TIM_IRQHandler(). It makes a direct call to HAL_IncTick() to increment
|
||||||
* a global variable "uwTick" used as application time base.
|
* a global variable "uwTick" used as application time base.
|
||||||
* @param htim : TIM handle
|
* @param htim : TIM handle
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) {
|
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
|
||||||
|
{
|
||||||
/* USER CODE BEGIN Callback 0 */
|
/* USER CODE BEGIN Callback 0 */
|
||||||
|
|
||||||
/* USER CODE END Callback 0 */
|
/* USER CODE END Callback 0 */
|
||||||
if (htim->Instance == TIM2) {
|
if (htim->Instance == TIM3)
|
||||||
|
{
|
||||||
HAL_IncTick();
|
HAL_IncTick();
|
||||||
}
|
}
|
||||||
/* USER CODE BEGIN Callback 1 */
|
/* USER CODE BEGIN Callback 1 */
|
||||||
@ -899,7 +937,8 @@ void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) {
|
|||||||
* @brief This function is executed in case of error occurrence.
|
* @brief This function is executed in case of error occurrence.
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
void Error_Handler(void) {
|
void Error_Handler(void)
|
||||||
|
{
|
||||||
/* USER CODE BEGIN Error_Handler_Debug */
|
/* USER CODE BEGIN Error_Handler_Debug */
|
||||||
/* User can add his own implementation to report the HAL error return state */
|
/* User can add his own implementation to report the HAL error return state */
|
||||||
__disable_irq();
|
__disable_irq();
|
||||||
|
|||||||
@ -327,14 +327,14 @@ void HAL_TIM_Encoder_MspInit(TIM_HandleTypeDef* htim_encoder)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief TIM_Base MSP Initialization
|
* @brief TIM_PWM MSP Initialization
|
||||||
* This function configures the hardware resources used in this example
|
* This function configures the hardware resources used in this example
|
||||||
* @param htim_base: TIM_Base handle pointer
|
* @param htim_pwm: TIM_PWM handle pointer
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base)
|
void HAL_TIM_PWM_MspInit(TIM_HandleTypeDef* htim_pwm)
|
||||||
{
|
{
|
||||||
if(htim_base->Instance==TIM5)
|
if(htim_pwm->Instance==TIM5)
|
||||||
{
|
{
|
||||||
/* USER CODE BEGIN TIM5_MspInit 0 */
|
/* USER CODE BEGIN TIM5_MspInit 0 */
|
||||||
|
|
||||||
@ -426,14 +426,14 @@ void HAL_TIM_Encoder_MspDeInit(TIM_HandleTypeDef* htim_encoder)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief TIM_Base MSP De-Initialization
|
* @brief TIM_PWM MSP De-Initialization
|
||||||
* This function freeze the hardware resources used in this example
|
* This function freeze the hardware resources used in this example
|
||||||
* @param htim_base: TIM_Base handle pointer
|
* @param htim_pwm: TIM_PWM handle pointer
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base)
|
void HAL_TIM_PWM_MspDeInit(TIM_HandleTypeDef* htim_pwm)
|
||||||
{
|
{
|
||||||
if(htim_base->Instance==TIM5)
|
if(htim_pwm->Instance==TIM5)
|
||||||
{
|
{
|
||||||
/* USER CODE BEGIN TIM5_MspDeInit 0 */
|
/* USER CODE BEGIN TIM5_MspDeInit 0 */
|
||||||
|
|
||||||
|
|||||||
@ -25,12 +25,12 @@
|
|||||||
/* Private define ------------------------------------------------------------*/
|
/* Private define ------------------------------------------------------------*/
|
||||||
/* Private macro -------------------------------------------------------------*/
|
/* Private macro -------------------------------------------------------------*/
|
||||||
/* Private variables ---------------------------------------------------------*/
|
/* Private variables ---------------------------------------------------------*/
|
||||||
TIM_HandleTypeDef htim2;
|
TIM_HandleTypeDef htim3;
|
||||||
/* Private function prototypes -----------------------------------------------*/
|
/* Private function prototypes -----------------------------------------------*/
|
||||||
/* Private functions ---------------------------------------------------------*/
|
/* Private functions ---------------------------------------------------------*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief This function configures the TIM2 as a time base source.
|
* @brief This function configures the TIM3 as a time base source.
|
||||||
* The time source is configured to have 1ms time base with a dedicated
|
* The time source is configured to have 1ms time base with a dedicated
|
||||||
* Tick interrupt priority.
|
* Tick interrupt priority.
|
||||||
* @note This function is called automatically at the beginning of program after
|
* @note This function is called automatically at the beginning of program after
|
||||||
@ -48,15 +48,15 @@ HAL_StatusTypeDef HAL_InitTick(uint32_t TickPriority)
|
|||||||
|
|
||||||
HAL_StatusTypeDef status;
|
HAL_StatusTypeDef status;
|
||||||
|
|
||||||
/* Enable TIM2 clock */
|
/* Enable TIM3 clock */
|
||||||
__HAL_RCC_TIM2_CLK_ENABLE();
|
__HAL_RCC_TIM3_CLK_ENABLE();
|
||||||
|
|
||||||
/* Get clock configuration */
|
/* Get clock configuration */
|
||||||
HAL_RCC_GetClockConfig(&clkconfig, &pFLatency);
|
HAL_RCC_GetClockConfig(&clkconfig, &pFLatency);
|
||||||
|
|
||||||
/* Get APB1 prescaler */
|
/* Get APB1 prescaler */
|
||||||
uwAPB1Prescaler = clkconfig.APB1CLKDivider;
|
uwAPB1Prescaler = clkconfig.APB1CLKDivider;
|
||||||
/* Compute TIM2 clock */
|
/* Compute TIM3 clock */
|
||||||
if (uwAPB1Prescaler == RCC_HCLK_DIV1)
|
if (uwAPB1Prescaler == RCC_HCLK_DIV1)
|
||||||
{
|
{
|
||||||
uwTimclock = HAL_RCC_GetPCLK1Freq();
|
uwTimclock = HAL_RCC_GetPCLK1Freq();
|
||||||
@ -66,38 +66,38 @@ HAL_StatusTypeDef HAL_InitTick(uint32_t TickPriority)
|
|||||||
uwTimclock = 2UL * HAL_RCC_GetPCLK1Freq();
|
uwTimclock = 2UL * HAL_RCC_GetPCLK1Freq();
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Compute the prescaler value to have TIM2 counter clock equal to 1MHz */
|
/* Compute the prescaler value to have TIM3 counter clock equal to 1MHz */
|
||||||
uwPrescalerValue = (uint32_t) ((uwTimclock / 1000000U) - 1U);
|
uwPrescalerValue = (uint32_t) ((uwTimclock / 1000000U) - 1U);
|
||||||
|
|
||||||
/* Initialize TIM2 */
|
/* Initialize TIM3 */
|
||||||
htim2.Instance = TIM2;
|
htim3.Instance = TIM3;
|
||||||
|
|
||||||
/* Initialize TIMx peripheral as follow:
|
/* Initialize TIMx peripheral as follow:
|
||||||
* Period = [(TIM2CLK/1000) - 1]. to have a (1/1000) s time base.
|
* Period = [(TIM3CLK/1000) - 1]. to have a (1/1000) s time base.
|
||||||
* Prescaler = (uwTimclock/1000000 - 1) to have a 1MHz counter clock.
|
* Prescaler = (uwTimclock/1000000 - 1) to have a 1MHz counter clock.
|
||||||
* ClockDivision = 0
|
* ClockDivision = 0
|
||||||
* Counter direction = Up
|
* Counter direction = Up
|
||||||
*/
|
*/
|
||||||
htim2.Init.Period = (1000000U / 1000U) - 1U;
|
htim3.Init.Period = (1000000U / 1000U) - 1U;
|
||||||
htim2.Init.Prescaler = uwPrescalerValue;
|
htim3.Init.Prescaler = uwPrescalerValue;
|
||||||
htim2.Init.ClockDivision = 0;
|
htim3.Init.ClockDivision = 0;
|
||||||
htim2.Init.CounterMode = TIM_COUNTERMODE_UP;
|
htim3.Init.CounterMode = TIM_COUNTERMODE_UP;
|
||||||
htim2.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
|
htim3.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
|
||||||
|
|
||||||
status = HAL_TIM_Base_Init(&htim2);
|
status = HAL_TIM_Base_Init(&htim3);
|
||||||
if (status == HAL_OK)
|
if (status == HAL_OK)
|
||||||
{
|
{
|
||||||
/* Start the TIM time Base generation in interrupt mode */
|
/* Start the TIM time Base generation in interrupt mode */
|
||||||
status = HAL_TIM_Base_Start_IT(&htim2);
|
status = HAL_TIM_Base_Start_IT(&htim3);
|
||||||
if (status == HAL_OK)
|
if (status == HAL_OK)
|
||||||
{
|
{
|
||||||
/* Enable the TIM2 global Interrupt */
|
/* Enable the TIM3 global Interrupt */
|
||||||
HAL_NVIC_EnableIRQ(TIM2_IRQn);
|
HAL_NVIC_EnableIRQ(TIM3_IRQn);
|
||||||
/* Configure the SysTick IRQ priority */
|
/* Configure the SysTick IRQ priority */
|
||||||
if (TickPriority < (1UL << __NVIC_PRIO_BITS))
|
if (TickPriority < (1UL << __NVIC_PRIO_BITS))
|
||||||
{
|
{
|
||||||
/* Configure the TIM IRQ priority */
|
/* Configure the TIM IRQ priority */
|
||||||
HAL_NVIC_SetPriority(TIM2_IRQn, TickPriority, 0U);
|
HAL_NVIC_SetPriority(TIM3_IRQn, TickPriority, 0U);
|
||||||
uwTickPrio = TickPriority;
|
uwTickPrio = TickPriority;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -113,25 +113,25 @@ HAL_StatusTypeDef HAL_InitTick(uint32_t TickPriority)
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Suspend Tick increment.
|
* @brief Suspend Tick increment.
|
||||||
* @note Disable the tick increment by disabling TIM2 update interrupt.
|
* @note Disable the tick increment by disabling TIM3 update interrupt.
|
||||||
* @param None
|
* @param None
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
void HAL_SuspendTick(void)
|
void HAL_SuspendTick(void)
|
||||||
{
|
{
|
||||||
/* Disable TIM2 update Interrupt */
|
/* Disable TIM3 update Interrupt */
|
||||||
__HAL_TIM_DISABLE_IT(&htim2, TIM_IT_UPDATE);
|
__HAL_TIM_DISABLE_IT(&htim3, TIM_IT_UPDATE);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Resume Tick increment.
|
* @brief Resume Tick increment.
|
||||||
* @note Enable the tick increment by Enabling TIM2 update interrupt.
|
* @note Enable the tick increment by Enabling TIM3 update interrupt.
|
||||||
* @param None
|
* @param None
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
void HAL_ResumeTick(void)
|
void HAL_ResumeTick(void)
|
||||||
{
|
{
|
||||||
/* Enable TIM2 Update interrupt */
|
/* Enable TIM3 Update interrupt */
|
||||||
__HAL_TIM_ENABLE_IT(&htim2, TIM_IT_UPDATE);
|
__HAL_TIM_ENABLE_IT(&htim3, TIM_IT_UPDATE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -59,7 +59,7 @@ extern DMA_HandleTypeDef hdma_spi1_rx;
|
|||||||
extern DMA_HandleTypeDef hdma_spi1_tx;
|
extern DMA_HandleTypeDef hdma_spi1_tx;
|
||||||
extern SPI_HandleTypeDef hspi1;
|
extern SPI_HandleTypeDef hspi1;
|
||||||
extern UART_HandleTypeDef huart6;
|
extern UART_HandleTypeDef huart6;
|
||||||
extern TIM_HandleTypeDef htim2;
|
extern TIM_HandleTypeDef htim3;
|
||||||
|
|
||||||
/* USER CODE BEGIN EV */
|
/* USER CODE BEGIN EV */
|
||||||
|
|
||||||
@ -163,17 +163,17 @@ void DebugMon_Handler(void)
|
|||||||
/******************************************************************************/
|
/******************************************************************************/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief This function handles TIM2 global interrupt.
|
* @brief This function handles TIM3 global interrupt.
|
||||||
*/
|
*/
|
||||||
void TIM2_IRQHandler(void)
|
void TIM3_IRQHandler(void)
|
||||||
{
|
{
|
||||||
/* USER CODE BEGIN TIM2_IRQn 0 */
|
/* USER CODE BEGIN TIM3_IRQn 0 */
|
||||||
|
|
||||||
/* USER CODE END TIM2_IRQn 0 */
|
/* USER CODE END TIM3_IRQn 0 */
|
||||||
HAL_TIM_IRQHandler(&htim2);
|
HAL_TIM_IRQHandler(&htim3);
|
||||||
/* USER CODE BEGIN TIM2_IRQn 1 */
|
/* USER CODE BEGIN TIM3_IRQn 1 */
|
||||||
|
|
||||||
/* USER CODE END TIM2_IRQn 1 */
|
/* USER CODE END TIM3_IRQn 1 */
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -228,7 +228,7 @@ void USART6_IRQHandler(void)
|
|||||||
/* USER CODE END USART6_IRQn 0 */
|
/* USER CODE END USART6_IRQn 0 */
|
||||||
HAL_UART_IRQHandler(&huart6);
|
HAL_UART_IRQHandler(&huart6);
|
||||||
/* USER CODE BEGIN USART6_IRQn 1 */
|
/* USER CODE BEGIN USART6_IRQn 1 */
|
||||||
UART_CALLBACK();
|
//UART_CALLBACK();
|
||||||
/* USER CODE END USART6_IRQn 1 */
|
/* USER CODE END USART6_IRQn 1 */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
44
touchscreengames Debug.cfg
Normal file
44
touchscreengames Debug.cfg
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
# This is an genericBoard board with a single STM32F401CCUx chip
|
||||||
|
#
|
||||||
|
# Generated by STM32CubeIDE
|
||||||
|
# Take care that such file, as generated, may be overridden without any early notice. Please have a look to debug launch configuration setup(s)
|
||||||
|
|
||||||
|
source [find interface/stlink-dap.cfg]
|
||||||
|
|
||||||
|
|
||||||
|
set WORKAREASIZE 0x8000
|
||||||
|
|
||||||
|
transport select "dapdirect_swd"
|
||||||
|
|
||||||
|
set CHIPNAME STM32F401CCUx
|
||||||
|
set BOARDNAME genericBoard
|
||||||
|
|
||||||
|
# Enable debug when in low power modes
|
||||||
|
set ENABLE_LOW_POWER 1
|
||||||
|
|
||||||
|
# Stop Watchdog counters when halt
|
||||||
|
set STOP_WATCHDOG 1
|
||||||
|
|
||||||
|
# STlink Debug clock frequency
|
||||||
|
set CLOCK_FREQ 8000
|
||||||
|
|
||||||
|
# Reset configuration
|
||||||
|
# use hardware reset, connect under reset
|
||||||
|
# connect_assert_srst needed if low power mode application running (WFI...)
|
||||||
|
reset_config srst_only srst_nogate connect_assert_srst
|
||||||
|
set CONNECT_UNDER_RESET 1
|
||||||
|
set CORE_RESET 0
|
||||||
|
|
||||||
|
# ACCESS PORT NUMBER
|
||||||
|
set AP_NUM 0
|
||||||
|
# GDB PORT
|
||||||
|
set GDB_PORT 3333
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# BCTM CPU variables
|
||||||
|
|
||||||
|
source [find target/stm32f4x.cfg]
|
||||||
|
|
||||||
@ -70,8 +70,7 @@ Mcu.Pin21=PB7
|
|||||||
Mcu.Pin22=PB8
|
Mcu.Pin22=PB8
|
||||||
Mcu.Pin23=PB9
|
Mcu.Pin23=PB9
|
||||||
Mcu.Pin24=VP_FREERTOS_VS_CMSIS_V2
|
Mcu.Pin24=VP_FREERTOS_VS_CMSIS_V2
|
||||||
Mcu.Pin25=VP_SYS_VS_tim2
|
Mcu.Pin25=VP_SYS_VS_tim3
|
||||||
Mcu.Pin26=VP_TIM5_VS_ClockSourceINT
|
|
||||||
Mcu.Pin3=PA2
|
Mcu.Pin3=PA2
|
||||||
Mcu.Pin4=PA3
|
Mcu.Pin4=PA3
|
||||||
Mcu.Pin5=PA4
|
Mcu.Pin5=PA4
|
||||||
@ -79,7 +78,7 @@ Mcu.Pin6=PA5
|
|||||||
Mcu.Pin7=PA6
|
Mcu.Pin7=PA6
|
||||||
Mcu.Pin8=PA7
|
Mcu.Pin8=PA7
|
||||||
Mcu.Pin9=PB2
|
Mcu.Pin9=PB2
|
||||||
Mcu.PinsNb=27
|
Mcu.PinsNb=26
|
||||||
Mcu.ThirdPartyNb=0
|
Mcu.ThirdPartyNb=0
|
||||||
Mcu.UserConstants=
|
Mcu.UserConstants=
|
||||||
Mcu.UserName=STM32F401CCUx
|
Mcu.UserName=STM32F401CCUx
|
||||||
@ -101,9 +100,9 @@ NVIC.SavedPendsvIrqHandlerGenerated=true
|
|||||||
NVIC.SavedSvcallIrqHandlerGenerated=true
|
NVIC.SavedSvcallIrqHandlerGenerated=true
|
||||||
NVIC.SavedSystickIrqHandlerGenerated=true
|
NVIC.SavedSystickIrqHandlerGenerated=true
|
||||||
NVIC.SysTick_IRQn=true\:15\:0\:false\:false\:false\:true\:false\:true\:false
|
NVIC.SysTick_IRQn=true\:15\:0\:false\:false\:false\:true\:false\:true\:false
|
||||||
NVIC.TIM2_IRQn=true\:15\:0\:false\:false\:true\:false\:false\:true\:true
|
NVIC.TIM3_IRQn=true\:15\:0\:false\:false\:true\:false\:false\:true\:true
|
||||||
NVIC.TimeBase=TIM2_IRQn
|
NVIC.TimeBase=TIM3_IRQn
|
||||||
NVIC.TimeBaseIP=TIM2
|
NVIC.TimeBaseIP=TIM3
|
||||||
NVIC.USART6_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true
|
NVIC.USART6_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true
|
||||||
NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false
|
NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false
|
||||||
PA0-WKUP.Signal=S_TIM5_CH1
|
PA0-WKUP.Signal=S_TIM5_CH1
|
||||||
@ -191,7 +190,7 @@ ProjectManager.ToolChainLocation=
|
|||||||
ProjectManager.UAScriptAfterPath=
|
ProjectManager.UAScriptAfterPath=
|
||||||
ProjectManager.UAScriptBeforePath=
|
ProjectManager.UAScriptBeforePath=
|
||||||
ProjectManager.UnderRoot=true
|
ProjectManager.UnderRoot=true
|
||||||
ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_DMA_Init-DMA-false-HAL-true,4-MX_SPI1_Init-SPI1-false-HAL-true,5-MX_SPI2_Init-SPI2-false-HAL-true,5-MX_TIM1_Init-TIM1-false-HAL-true,6-MX_TIM4_Init-TIM4-false-HAL-true,7-MX_TIM5_Init-TIM5-false-HAL-true,8-MX_USART6_UART_Init-USART6-false-HAL-true,9-MX_I2C1_Init-I2C1-false-HAL-true
|
ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_DMA_Init-DMA-false-HAL-true,4-MX_SPI1_Init-SPI1-false-HAL-true,5-MX_TIM1_Init-TIM1-false-HAL-true,6-MX_TIM4_Init-TIM4-false-HAL-true,7-MX_TIM5_Init-TIM5-false-HAL-true,8-MX_USART6_UART_Init-USART6-false-HAL-true,9-MX_I2C1_Init-I2C1-false-HAL-true
|
||||||
RCC.AHBFreq_Value=16000000
|
RCC.AHBFreq_Value=16000000
|
||||||
RCC.APB1Freq_Value=16000000
|
RCC.APB1Freq_Value=16000000
|
||||||
RCC.APB2Freq_Value=16000000
|
RCC.APB2Freq_Value=16000000
|
||||||
@ -234,23 +233,31 @@ SPI1.IPParameters=VirtualType,Mode,Direction,CalculateBaudRate,BaudRatePrescaler
|
|||||||
SPI1.Mode=SPI_MODE_MASTER
|
SPI1.Mode=SPI_MODE_MASTER
|
||||||
SPI1.VirtualType=VM_MASTER
|
SPI1.VirtualType=VM_MASTER
|
||||||
TIM1.EncoderMode=TIM_ENCODERMODE_TI12
|
TIM1.EncoderMode=TIM_ENCODERMODE_TI12
|
||||||
TIM1.IPParameters=EncoderMode
|
TIM1.IC1Filter=15
|
||||||
|
TIM1.IC1Prescaler=TIM_ICPSC_DIV8
|
||||||
|
TIM1.IC2Filter=15
|
||||||
|
TIM1.IC2Prescaler=TIM_ICPSC_DIV8
|
||||||
|
TIM1.IPParameters=EncoderMode,IC1Prescaler,IC2Prescaler,IC2Filter,IC1Filter
|
||||||
TIM4.EncoderMode=TIM_ENCODERMODE_TI12
|
TIM4.EncoderMode=TIM_ENCODERMODE_TI12
|
||||||
TIM4.IPParameters=EncoderMode
|
TIM4.IC1Filter=15
|
||||||
|
TIM4.IC1Prescaler=TIM_ICPSC_DIV8
|
||||||
|
TIM4.IC2Filter=15
|
||||||
|
TIM4.IC2Prescaler=TIM_ICPSC_DIV8
|
||||||
|
TIM4.IPParameters=EncoderMode,IC1Prescaler,IC1Filter,IC2Prescaler,IC2Filter
|
||||||
TIM5.Channel-PWM\ Generation1\ CH1=TIM_CHANNEL_1
|
TIM5.Channel-PWM\ Generation1\ CH1=TIM_CHANNEL_1
|
||||||
TIM5.Channel-PWM\ Generation2\ CH2=TIM_CHANNEL_2
|
TIM5.Channel-PWM\ Generation2\ CH2=TIM_CHANNEL_2
|
||||||
TIM5.Channel-PWM\ Generation3\ CH3=TIM_CHANNEL_3
|
TIM5.Channel-PWM\ Generation3\ CH3=TIM_CHANNEL_3
|
||||||
TIM5.Channel-PWM\ Generation4\ CH4=TIM_CHANNEL_4
|
TIM5.Channel-PWM\ Generation4\ CH4=TIM_CHANNEL_4
|
||||||
TIM5.IPParameters=Channel-PWM Generation1 CH1,Channel-PWM Generation2 CH2,Channel-PWM Generation3 CH3,Channel-PWM Generation4 CH4
|
TIM5.IPParameters=Channel-PWM Generation1 CH1,Channel-PWM Generation2 CH2,Channel-PWM Generation3 CH3,Channel-PWM Generation4 CH4,Prescaler,Period
|
||||||
|
TIM5.Period=10000
|
||||||
|
TIM5.Prescaler=92
|
||||||
USART6.BaudRate=115200
|
USART6.BaudRate=115200
|
||||||
USART6.IPParameters=VirtualMode,BaudRate
|
USART6.IPParameters=VirtualMode,BaudRate
|
||||||
USART6.VirtualMode=VM_ASYNC
|
USART6.VirtualMode=VM_ASYNC
|
||||||
VP_FREERTOS_VS_CMSIS_V2.Mode=CMSIS_V2
|
VP_FREERTOS_VS_CMSIS_V2.Mode=CMSIS_V2
|
||||||
VP_FREERTOS_VS_CMSIS_V2.Signal=FREERTOS_VS_CMSIS_V2
|
VP_FREERTOS_VS_CMSIS_V2.Signal=FREERTOS_VS_CMSIS_V2
|
||||||
VP_SYS_VS_tim2.Mode=TIM2
|
VP_SYS_VS_tim3.Mode=TIM3
|
||||||
VP_SYS_VS_tim2.Signal=SYS_VS_tim2
|
VP_SYS_VS_tim3.Signal=SYS_VS_tim3
|
||||||
VP_TIM5_VS_ClockSourceINT.Mode=Internal
|
|
||||||
VP_TIM5_VS_ClockSourceINT.Signal=TIM5_VS_ClockSourceINT
|
|
||||||
board=custom
|
board=custom
|
||||||
rtos.0.ip=FREERTOS
|
rtos.0.ip=FREERTOS
|
||||||
isbadioc=false
|
isbadioc=false
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user