1 | #include "stm32f4xx_hal.h"
|
2 |
|
3 | void SystemClock_Config(void);
|
4 | static void MX_GPIO_Init(void);
|
5 |
|
6 | int main(void)
|
7 | {
|
8 |
|
9 | /* USER CODE BEGIN 1 */
|
10 |
|
11 | /* USER CODE END 1 */
|
12 |
|
13 | /* MCU Configuration----------------------------------------------------------*/
|
14 |
|
15 | /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
|
16 | HAL_Init();
|
17 |
|
18 | /* Configure the system clock */
|
19 | SystemClock_Config();
|
20 |
|
21 | /* Initialize all configured peripherals */
|
22 | MX_GPIO_Init();
|
23 |
|
24 | /* USER CODE BEGIN 2 */
|
25 |
|
26 | /* USER CODE END 2 */
|
27 | /* Infinite loop */
|
28 | /* USER CODE BEGIN WHILE */
|
29 | while (1)
|
30 | {
|
31 | /* USER CODE END WHILE */
|
32 |
|
33 | HAL_GPIO_TogglePin(LI_CH1_GPIO_Port,LI_CH1_Pin);
|
34 |
|
35 | /* USER CODE BEGIN 3 */
|
36 |
|
37 | }
|
38 | /* USER CODE END 3 */
|
39 |
|
40 | }
|
41 |
|
42 | /** System Clock Configuration
|
43 | */
|
44 | void SystemClock_Config(void)
|
45 | {
|
46 |
|
47 | RCC_OscInitTypeDef RCC_OscInitStruct;
|
48 | RCC_ClkInitTypeDef RCC_ClkInitStruct;
|
49 | RCC_PeriphCLKInitTypeDef PeriphClkInitStruct;
|
50 |
|
51 | __PWR_CLK_ENABLE();
|
52 |
|
53 | __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);
|
54 |
|
55 | RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
|
56 | RCC_OscInitStruct.HSEState = RCC_HSE_ON;
|
57 | RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
|
58 | RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
|
59 | RCC_OscInitStruct.PLL.PLLM = 4;
|
60 | RCC_OscInitStruct.PLL.PLLN = 180;
|
61 | RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;
|
62 | RCC_OscInitStruct.PLL.PLLQ = 8;
|
63 | RCC_OscInitStruct.PLL.PLLR = 2;
|
64 | HAL_RCC_OscConfig(&RCC_OscInitStruct);
|
65 |
|
66 | HAL_PWREx_ActivateOverDrive();
|
67 |
|
68 | RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
|
69 | |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
|
70 | RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
|
71 | RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
|
72 | RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV4;
|
73 | RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV2;
|
74 | HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_5);
|
75 |
|
76 | PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_SDIO|RCC_PERIPHCLK_CK48;
|
77 | PeriphClkInitStruct.Clk48ClockSelection = RCC_CK48CLKSOURCE_PLLQ;
|
78 | PeriphClkInitStruct.SdioClockSelection = RCC_SDIOCLKSOURCE_CK48;
|
79 | HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct);
|
80 |
|
81 | HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()/1000);
|
82 |
|
83 | HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKSOURCE_HCLK);
|
84 |
|
85 | /* SysTick_IRQn interrupt configuration */
|
86 | HAL_NVIC_SetPriority(SysTick_IRQn, 0, 0);
|
87 | }
|
88 | void MX_GPIO_Init(void)
|
89 | {
|
90 |
|
91 | GPIO_InitTypeDef GPIO_InitStruct;
|
92 |
|
93 | /* GPIO Ports Clock Enable */
|
94 | __GPIOH_CLK_ENABLE();
|
95 | __GPIOC_CLK_ENABLE();
|
96 | __GPIOA_CLK_ENABLE();
|
97 | __GPIOB_CLK_ENABLE();
|
98 | __GPIOD_CLK_ENABLE();
|
99 |
|
100 | /*Configure GPIO pin Output Level */
|
101 | HAL_GPIO_WritePin(GPIOC, HI_CH3_Pin|LI_CH3_Pin|HI_CH4_Pin|LI_CH4_Pin, GPIO_PIN_RESET);
|
102 |
|
103 | /*Configure GPIO pin Output Level */
|
104 | HAL_GPIO_WritePin(GPIOA, LCD_CS_Pin|HI_CH1_Pin|LI_CH1_Pin|HI_CH2_Pin
|
105 | |LI_CH2_Pin, GPIO_PIN_RESET);
|
106 |
|
107 | /*Configure GPIO pin Output Level */
|
108 | HAL_GPIO_WritePin(GPIOB, Touch_CS_Pin|LCD_Reset_Pin|LED_CTRL_Pin, GPIO_PIN_RESET);
|
109 |
|
110 | /*Configure GPIO pins : HI_CH3_Pin LI_CH3_Pin HI_CH4_Pin LI_CH4_Pin */
|
111 | GPIO_InitStruct.Pin = HI_CH3_Pin|LI_CH3_Pin|HI_CH4_Pin|LI_CH4_Pin;
|
112 | GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
113 | GPIO_InitStruct.Pull = GPIO_NOPULL;
|
114 | GPIO_InitStruct.Speed = GPIO_SPEED_LOW;
|
115 | HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
|
116 |
|
117 | /*Configure GPIO pins : LCD_CS_Pin HI_CH1_Pin LI_CH1_Pin HI_CH2_Pin
|
118 | LI_CH2_Pin */
|
119 | GPIO_InitStruct.Pin = LCD_CS_Pin|HI_CH1_Pin|LI_CH1_Pin|HI_CH2_Pin
|
120 | |LI_CH2_Pin;
|
121 | GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
122 | GPIO_InitStruct.Pull = GPIO_NOPULL;
|
123 | GPIO_InitStruct.Speed = GPIO_SPEED_LOW;
|
124 | HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
|
125 |
|
126 | /*Configure GPIO pins : Touch_CS_Pin LCD_Reset_Pin LED_CTRL_Pin */
|
127 | GPIO_InitStruct.Pin = Touch_CS_Pin|LCD_Reset_Pin|LED_CTRL_Pin;
|
128 | GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
129 | GPIO_InitStruct.Pull = GPIO_NOPULL;
|
130 | GPIO_InitStruct.Speed = GPIO_SPEED_LOW;
|
131 | HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
|
132 |
|
133 | /*Configure GPIO pin : LCD_D_C_Pin */
|
134 | GPIO_InitStruct.Pin = LCD_D_C_Pin;
|
135 | GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
|
136 | GPIO_InitStruct.Pull = GPIO_NOPULL;
|
137 | HAL_GPIO_Init(LCD_D_C_GPIO_Port, &GPIO_InitStruct);
|
138 |
|
139 | /*Configure GPIO pin : IRQ_Touch_Pin */
|
140 | GPIO_InitStruct.Pin = IRQ_Touch_Pin;
|
141 | // GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING;
|
142 | GPIO_InitStruct.Pull = GPIO_NOPULL;
|
143 | HAL_GPIO_Init(IRQ_Touch_GPIO_Port, &GPIO_InitStruct);
|
144 |
|
145 | }
|