add new key & led
Showing
7 changed files
with
84 additions
and
44 deletions
... | @@ -26,11 +26,14 @@ typedef enum | ... | @@ -26,11 +26,14 @@ typedef enum |
26 | #define LED_TOTAL_STATE_NUM 4 | 26 | #define LED_TOTAL_STATE_NUM 4 |
27 | 27 | ||
28 | /* LED control defines --------------------------------------------------------*/ | 28 | /* LED control defines --------------------------------------------------------*/ |
29 | #define LED1_Reset() HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin, GPIO_PIN_RESET) | 29 | #define LED1_Close() HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin, GPIO_PIN_RESET) |
30 | #define LED1_Set() HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin, GPIO_PIN_SET) | 30 | #define LED1_Open() HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin, GPIO_PIN_SET) |
31 | 31 | ||
32 | #define LED2_Reset() HAL_GPIO_WritePin(LED2_GPIO_Port, LED2_Pin, GPIO_PIN_RESET) | 32 | #define LED2_Close() HAL_GPIO_WritePin(LED2_GPIO_Port, LED2_Pin, GPIO_PIN_RESET) |
33 | #define LED2_Set() HAL_GPIO_WritePin(LED2_GPIO_Port, LED2_Pin, GPIO_PIN_SET) | 33 | #define LED2_Open() HAL_GPIO_WritePin(LED2_GPIO_Port, LED2_Pin, GPIO_PIN_SET) |
34 | |||
35 | #define LED3_Close() HAL_GPIO_WritePin(LED3_GPIO_Port, LED3_Pin, GPIO_PIN_SET) | ||
36 | #define LED3_Open() HAL_GPIO_WritePin(LED3_GPIO_Port, LED3_Pin, GPIO_PIN_RESET) | ||
34 | 37 | ||
35 | extern LED_State ledState; | 38 | extern LED_State ledState; |
36 | 39 | ... | ... |
... | @@ -64,6 +64,8 @@ void Error_Handler(void); | ... | @@ -64,6 +64,8 @@ void Error_Handler(void); |
64 | #define DEBUG_RX_GPIO_Port GPIOA | 64 | #define DEBUG_RX_GPIO_Port GPIOA |
65 | #define BEEP_Pin GPIO_PIN_12 | 65 | #define BEEP_Pin GPIO_PIN_12 |
66 | #define BEEP_GPIO_Port GPIOA | 66 | #define BEEP_GPIO_Port GPIOA |
67 | #define LED3_Pin GPIO_PIN_5 | ||
68 | #define LED3_GPIO_Port GPIOB | ||
67 | #define LED2_Pin GPIO_PIN_6 | 69 | #define LED2_Pin GPIO_PIN_6 |
68 | #define LED2_GPIO_Port GPIOB | 70 | #define LED2_GPIO_Port GPIOB |
69 | #define LED1_Pin GPIO_PIN_7 | 71 | #define LED1_Pin GPIO_PIN_7 | ... | ... |
... | @@ -19,23 +19,23 @@ void LED_StateControl(LED_State ledMode) | ... | @@ -19,23 +19,23 @@ void LED_StateControl(LED_State ledMode) |
19 | switch (ledMode) | 19 | switch (ledMode) |
20 | { | 20 | { |
21 | case LED00: | 21 | case LED00: |
22 | LED1_Reset(); | 22 | LED1_Close(); |
23 | LED2_Reset(); | 23 | LED2_Close(); |
24 | break; | 24 | break; |
25 | 25 | ||
26 | case LED01: | 26 | case LED01: |
27 | LED1_Reset(); | 27 | LED1_Close(); |
28 | LED2_Set(); | 28 | LED2_Open(); |
29 | break; | 29 | break; |
30 | 30 | ||
31 | case LED10: | 31 | case LED10: |
32 | LED1_Set(); | 32 | LED1_Open(); |
33 | LED2_Reset(); | 33 | LED2_Close(); |
34 | break; | 34 | break; |
35 | 35 | ||
36 | case LED11: | 36 | case LED11: |
37 | LED1_Set(); | 37 | LED1_Open(); |
38 | LED2_Set(); | 38 | LED2_Open(); |
39 | break; | 39 | break; |
40 | 40 | ||
41 | default: | 41 | default: | ... | ... |
... | @@ -56,6 +56,7 @@ osThreadId_t KeyScanTaskHandle; | ... | @@ -56,6 +56,7 @@ osThreadId_t KeyScanTaskHandle; |
56 | osThreadId_t UartTaskHandle; | 56 | osThreadId_t UartTaskHandle; |
57 | osThreadId_t CoreTaskHandle; | 57 | osThreadId_t CoreTaskHandle; |
58 | osThreadId_t SensorTaskHandle; | 58 | osThreadId_t SensorTaskHandle; |
59 | osMessageQueueId_t KeyStatusQueueHandle; | ||
59 | 60 | ||
60 | /* Private function prototypes -----------------------------------------------*/ | 61 | /* Private function prototypes -----------------------------------------------*/ |
61 | /* USER CODE BEGIN FunctionPrototypes */ | 62 | /* USER CODE BEGIN FunctionPrototypes */ |
... | @@ -93,6 +94,13 @@ osKernelInitialize(); | ... | @@ -93,6 +94,13 @@ osKernelInitialize(); |
93 | /* start timers, add new ones, ... */ | 94 | /* start timers, add new ones, ... */ |
94 | /* USER CODE END RTOS_TIMERS */ | 95 | /* USER CODE END RTOS_TIMERS */ |
95 | 96 | ||
97 | /* Create the queue(s) */ | ||
98 | /* definition and creation of KeyStatusQueue */ | ||
99 | const osMessageQueueAttr_t KeyStatusQueue_attributes = { | ||
100 | .name = "KeyStatusQueue" | ||
101 | }; | ||
102 | KeyStatusQueueHandle = osMessageQueueNew (4, sizeof(uint8_t), &KeyStatusQueue_attributes); | ||
103 | |||
96 | /* USER CODE BEGIN RTOS_QUEUES */ | 104 | /* USER CODE BEGIN RTOS_QUEUES */ |
97 | /* add queues, ... */ | 105 | /* add queues, ... */ |
98 | /* USER CODE END RTOS_QUEUES */ | 106 | /* USER CODE END RTOS_QUEUES */ |
... | @@ -101,23 +109,23 @@ osKernelInitialize(); | ... | @@ -101,23 +109,23 @@ osKernelInitialize(); |
101 | /* definition and creation of LEDTask */ | 109 | /* definition and creation of LEDTask */ |
102 | const osThreadAttr_t LEDTask_attributes = { | 110 | const osThreadAttr_t LEDTask_attributes = { |
103 | .name = "LEDTask", | 111 | .name = "LEDTask", |
104 | .priority = (osPriority_t) osPriorityNormal, | 112 | .priority = (osPriority_t) osPriorityNormal5, |
105 | .stack_size = 128 | 113 | .stack_size = 512 |
106 | }; | 114 | }; |
107 | LEDTaskHandle = osThreadNew(StartLEDTask, NULL, &LEDTask_attributes); | 115 | LEDTaskHandle = osThreadNew(StartLEDTask, NULL, &LEDTask_attributes); |
108 | 116 | ||
109 | /* definition and creation of KeyScanTask */ | 117 | /* definition and creation of KeyScanTask */ |
110 | const osThreadAttr_t KeyScanTask_attributes = { | 118 | const osThreadAttr_t KeyScanTask_attributes = { |
111 | .name = "KeyScanTask", | 119 | .name = "KeyScanTask", |
112 | .priority = (osPriority_t) osPriorityNormal, | 120 | .priority = (osPriority_t) osPriorityNormal3, |
113 | .stack_size = 128 | 121 | .stack_size = 512 |
114 | }; | 122 | }; |
115 | KeyScanTaskHandle = osThreadNew(StartKeyScanTask, NULL, &KeyScanTask_attributes); | 123 | KeyScanTaskHandle = osThreadNew(StartKeyScanTask, NULL, &KeyScanTask_attributes); |
116 | 124 | ||
117 | /* definition and creation of UartTask */ | 125 | /* definition and creation of UartTask */ |
118 | const osThreadAttr_t UartTask_attributes = { | 126 | const osThreadAttr_t UartTask_attributes = { |
119 | .name = "UartTask", | 127 | .name = "UartTask", |
120 | .priority = (osPriority_t) osPriorityNormal, | 128 | .priority = (osPriority_t) osPriorityNormal3, |
121 | .stack_size = 512 | 129 | .stack_size = 512 |
122 | }; | 130 | }; |
123 | UartTaskHandle = osThreadNew(StartUartTask, NULL, &UartTask_attributes); | 131 | UartTaskHandle = osThreadNew(StartUartTask, NULL, &UartTask_attributes); |
... | @@ -125,16 +133,16 @@ osKernelInitialize(); | ... | @@ -125,16 +133,16 @@ osKernelInitialize(); |
125 | /* definition and creation of CoreTask */ | 133 | /* definition and creation of CoreTask */ |
126 | const osThreadAttr_t CoreTask_attributes = { | 134 | const osThreadAttr_t CoreTask_attributes = { |
127 | .name = "CoreTask", | 135 | .name = "CoreTask", |
128 | .priority = (osPriority_t) osPriorityNormal, | 136 | .priority = (osPriority_t) osPriorityNormal3, |
129 | .stack_size = 128 | 137 | .stack_size = 512 |
130 | }; | 138 | }; |
131 | CoreTaskHandle = osThreadNew(StartCoreTask, NULL, &CoreTask_attributes); | 139 | CoreTaskHandle = osThreadNew(StartCoreTask, NULL, &CoreTask_attributes); |
132 | 140 | ||
133 | /* definition and creation of SensorTask */ | 141 | /* definition and creation of SensorTask */ |
134 | const osThreadAttr_t SensorTask_attributes = { | 142 | const osThreadAttr_t SensorTask_attributes = { |
135 | .name = "SensorTask", | 143 | .name = "SensorTask", |
136 | .priority = (osPriority_t) osPriorityNormal, | 144 | .priority = (osPriority_t) osPriorityNormal5, |
137 | .stack_size = 128 | 145 | .stack_size = 512 |
138 | }; | 146 | }; |
139 | SensorTaskHandle = osThreadNew(StartSensorTask, NULL, &SensorTask_attributes); | 147 | SensorTaskHandle = osThreadNew(StartSensorTask, NULL, &SensorTask_attributes); |
140 | 148 | ||
... | @@ -154,13 +162,15 @@ osKernelInitialize(); | ... | @@ -154,13 +162,15 @@ osKernelInitialize(); |
154 | void StartLEDTask(void *argument) | 162 | void StartLEDTask(void *argument) |
155 | { | 163 | { |
156 | /* USER CODE BEGIN StartLEDTask */ | 164 | /* USER CODE BEGIN StartLEDTask */ |
157 | 165 | uint8_t keyState; | |
158 | /* Infinite loop */ | 166 | /* Infinite loop */ |
159 | for(;;) | 167 | for(;;) |
160 | { | 168 | { |
161 | // ledState = ledState % LED_TOTAL_STATE_NUM; | 169 | if (osMessageQueueGet(KeyStatusQueueHandle, &keyState, 0, portMAX_DELAY) == osOK) { |
162 | // LED_StateControl(ledState); | 170 | ledState = (keyState - 1) % LED_TOTAL_STATE_NUM; |
163 | osDelay(1); | 171 | LED_StateControl(ledState); |
172 | } | ||
173 | osDelay(10); | ||
164 | } | 174 | } |
165 | /* USER CODE END StartLEDTask */ | 175 | /* USER CODE END StartLEDTask */ |
166 | } | 176 | } |
... | @@ -186,9 +196,8 @@ void StartKeyScanTask(void *argument) | ... | @@ -186,9 +196,8 @@ void StartKeyScanTask(void *argument) |
186 | osDelay(10); | 196 | osDelay(10); |
187 | if (KEY1_read() == KEY1_UP) | 197 | if (KEY1_read() == KEY1_UP) |
188 | { | 198 | { |
189 | LED2_Reset(); | 199 | LED3_Close(); |
190 | count = 0; | 200 | count = 0; |
191 | flag = 0; | ||
192 | goto DONE; | 201 | goto DONE; |
193 | } | 202 | } |
194 | if(count < 500)// 0 ~ 5 000 ms | 203 | if(count < 500)// 0 ~ 5 000 ms |
... | @@ -196,7 +205,7 @@ void StartKeyScanTask(void *argument) | ... | @@ -196,7 +205,7 @@ void StartKeyScanTask(void *argument) |
196 | flag = KEY_PRESS_0_5S; | 205 | flag = KEY_PRESS_0_5S; |
197 | if(count % 10 == 0) | 206 | if(count % 10 == 0) |
198 | { | 207 | { |
199 | HAL_GPIO_TogglePin(LED2_GPIO_Port, LED2_Pin); | 208 | HAL_GPIO_TogglePin(LED3_GPIO_Port, LED3_Pin); |
200 | } | 209 | } |
201 | } | 210 | } |
202 | else if((count >= 500) && (count < 1000))// 5 000 ~ 10 000 ms | 211 | else if((count >= 500) && (count < 1000))// 5 000 ~ 10 000 ms |
... | @@ -204,7 +213,7 @@ void StartKeyScanTask(void *argument) | ... | @@ -204,7 +213,7 @@ void StartKeyScanTask(void *argument) |
204 | flag = KEY_PRESS_5_10S; | 213 | flag = KEY_PRESS_5_10S; |
205 | if(count % 30 == 0) | 214 | if(count % 30 == 0) |
206 | { | 215 | { |
207 | HAL_GPIO_TogglePin(LED2_GPIO_Port, LED2_Pin); | 216 | HAL_GPIO_TogglePin(LED3_GPIO_Port, LED3_Pin); |
208 | } | 217 | } |
209 | } | 218 | } |
210 | else if((count >= 1000) && (count < 1500))// 10 000 ~ 15 000 ms | 219 | else if((count >= 1000) && (count < 1500))// 10 000 ~ 15 000 ms |
... | @@ -212,7 +221,7 @@ void StartKeyScanTask(void *argument) | ... | @@ -212,7 +221,7 @@ void StartKeyScanTask(void *argument) |
212 | flag = KEY_PRESS_10_15S; | 221 | flag = KEY_PRESS_10_15S; |
213 | if(count % 50 == 0) | 222 | if(count % 50 == 0) |
214 | { | 223 | { |
215 | HAL_GPIO_TogglePin(LED2_GPIO_Port, LED2_Pin); | 224 | HAL_GPIO_TogglePin(LED3_GPIO_Port, LED3_Pin); |
216 | } | 225 | } |
217 | } | 226 | } |
218 | else | 227 | else |
... | @@ -223,7 +232,14 @@ void StartKeyScanTask(void *argument) | ... | @@ -223,7 +232,14 @@ void StartKeyScanTask(void *argument) |
223 | } | 232 | } |
224 | else | 233 | else |
225 | { | 234 | { |
226 | LED2_Reset(); | 235 | if (flag != 0) // key state changed |
236 | { | ||
237 | if (osMessageQueuePut(KeyStatusQueueHandle, &flag, 0, 100) != osOK) | ||
238 | { | ||
239 | mprintf("queue send message failed\r\n"); | ||
240 | } | ||
241 | } | ||
242 | LED3_Close(); | ||
227 | count = 0; | 243 | count = 0; |
228 | flag = 0; | 244 | flag = 0; |
229 | } | 245 | } | ... | ... |
... | @@ -52,6 +52,9 @@ void MX_GPIO_Init(void) | ... | @@ -52,6 +52,9 @@ void MX_GPIO_Init(void) |
52 | HAL_GPIO_WritePin(BEEP_GPIO_Port, BEEP_Pin, GPIO_PIN_RESET); | 52 | HAL_GPIO_WritePin(BEEP_GPIO_Port, BEEP_Pin, GPIO_PIN_RESET); |
53 | 53 | ||
54 | /*Configure GPIO pin Output Level */ | 54 | /*Configure GPIO pin Output Level */ |
55 | HAL_GPIO_WritePin(LED3_GPIO_Port, LED3_Pin, GPIO_PIN_SET); | ||
56 | |||
57 | /*Configure GPIO pin Output Level */ | ||
55 | HAL_GPIO_WritePin(GPIOB, LED2_Pin|LED1_Pin, GPIO_PIN_RESET); | 58 | HAL_GPIO_WritePin(GPIOB, LED2_Pin|LED1_Pin, GPIO_PIN_RESET); |
56 | 59 | ||
57 | /*Configure GPIO pin : PtPin */ | 60 | /*Configure GPIO pin : PtPin */ |
... | @@ -61,6 +64,13 @@ void MX_GPIO_Init(void) | ... | @@ -61,6 +64,13 @@ void MX_GPIO_Init(void) |
61 | GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; | 64 | GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; |
62 | HAL_GPIO_Init(BEEP_GPIO_Port, &GPIO_InitStruct); | 65 | HAL_GPIO_Init(BEEP_GPIO_Port, &GPIO_InitStruct); |
63 | 66 | ||
67 | /*Configure GPIO pin : PtPin */ | ||
68 | GPIO_InitStruct.Pin = LED3_Pin; | ||
69 | GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; | ||
70 | GPIO_InitStruct.Pull = GPIO_PULLUP; | ||
71 | GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; | ||
72 | HAL_GPIO_Init(LED3_GPIO_Port, &GPIO_InitStruct); | ||
73 | |||
64 | /*Configure GPIO pins : PBPin PBPin */ | 74 | /*Configure GPIO pins : PBPin PBPin */ |
65 | GPIO_InitStruct.Pin = LED2_Pin|LED1_Pin; | 75 | GPIO_InitStruct.Pin = LED2_Pin|LED1_Pin; |
66 | GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; | 76 | GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; | ... | ... |
... | @@ -187,12 +187,12 @@ void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) | ... | @@ -187,12 +187,12 @@ void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) |
187 | /* USER CODE BEGIN Callback 1 */ | 187 | /* USER CODE BEGIN Callback 1 */ |
188 | if(htim->Instance == TIM3) | 188 | if(htim->Instance == TIM3) |
189 | { | 189 | { |
190 | mprintf("TIM3 elapsed\r\n"); | 190 | // mprintf("TIM3 elapsed\r\n"); |
191 | BEEP_call(); | 191 | BEEP_call(); |
192 | } | 192 | } |
193 | if(htim->Instance == TIM6) | 193 | if(htim->Instance == TIM6) |
194 | { | 194 | { |
195 | mprintf("TIM6 elapsed\r\n"); | 195 | // mprintf("TIM6 elapsed\r\n"); |
196 | HAL_TIM_Base_Stop_IT(&htim6); | 196 | HAL_TIM_Base_Stop_IT(&htim6); |
197 | BEEP_close(); | 197 | BEEP_close(); |
198 | } | 198 | } | ... | ... |
1 | #MicroXplorer Configuration settings - do not modify | 1 | #MicroXplorer Configuration settings - do not modify |
2 | FREERTOS.FootprintOK=false | 2 | FREERTOS.FootprintOK=false |
3 | FREERTOS.IPParameters=Tasks01,configTOTAL_HEAP_SIZE,configTIMER_TASK_STACK_DEPTH,FootprintOK | 3 | FREERTOS.IPParameters=Tasks01,configTOTAL_HEAP_SIZE,configTIMER_TASK_STACK_DEPTH,FootprintOK,Queues01 |
4 | FREERTOS.Tasks01=LEDTask,24,128,StartLEDTask,Default,NULL,Dynamic,NULL,NULL;KeyScanTask,24,128,StartKeyScanTask,Default,NULL,Dynamic,NULL,NULL;UartTask,24,512,StartUartTask,Default,NULL,Dynamic,NULL,NULL;CoreTask,24,128,StartCoreTask,Default,NULL,Dynamic,NULL,NULL;SensorTask,24,128,StartSensorTask,Default,NULL,Dynamic,NULL,NULL | 4 | FREERTOS.Queues01=KeyStatusQueue,4,uint8_t,0,Dynamic,NULL,NULL |
5 | FREERTOS.Tasks01=LEDTask,29,512,StartLEDTask,Default,NULL,Dynamic,NULL,NULL;KeyScanTask,27,512,StartKeyScanTask,Default,NULL,Dynamic,NULL,NULL;UartTask,27,512,StartUartTask,Default,NULL,Dynamic,NULL,NULL;CoreTask,27,512,StartCoreTask,Default,NULL,Dynamic,NULL,NULL;SensorTask,29,512,StartSensorTask,Default,NULL,Dynamic,NULL,NULL | ||
5 | FREERTOS.configTIMER_TASK_STACK_DEPTH=128 | 6 | FREERTOS.configTIMER_TASK_STACK_DEPTH=128 |
6 | FREERTOS.configTOTAL_HEAP_SIZE=2560 | 7 | FREERTOS.configTOTAL_HEAP_SIZE=2560 |
7 | File.Version=6 | 8 | File.Version=6 |
... | @@ -21,14 +22,15 @@ Mcu.Package=LQFP48 | ... | @@ -21,14 +22,15 @@ Mcu.Package=LQFP48 |
21 | Mcu.Pin0=PC14-OSC32_IN | 22 | Mcu.Pin0=PC14-OSC32_IN |
22 | Mcu.Pin1=PC15-OSC32_OUT | 23 | Mcu.Pin1=PC15-OSC32_OUT |
23 | Mcu.Pin10=PA14 | 24 | Mcu.Pin10=PA14 |
24 | Mcu.Pin11=PB6 | 25 | Mcu.Pin11=PB5 |
25 | Mcu.Pin12=PB7 | 26 | Mcu.Pin12=PB6 |
26 | Mcu.Pin13=PB8 | 27 | Mcu.Pin13=PB7 |
27 | Mcu.Pin14=PB9 | 28 | Mcu.Pin14=PB8 |
28 | Mcu.Pin15=VP_FREERTOS_VS_CMSIS_V2 | 29 | Mcu.Pin15=PB9 |
29 | Mcu.Pin16=VP_SYS_VS_tim1 | 30 | Mcu.Pin16=VP_FREERTOS_VS_CMSIS_V2 |
30 | Mcu.Pin17=VP_TIM3_VS_no_output1 | 31 | Mcu.Pin17=VP_SYS_VS_tim1 |
31 | Mcu.Pin18=VP_TIM6_VS_ClockSourceINT | 32 | Mcu.Pin18=VP_TIM3_VS_no_output1 |
33 | Mcu.Pin19=VP_TIM6_VS_ClockSourceINT | ||
32 | Mcu.Pin2=PF0-OSC_IN | 34 | Mcu.Pin2=PF0-OSC_IN |
33 | Mcu.Pin3=PF1-OSC_OUT | 35 | Mcu.Pin3=PF1-OSC_OUT |
34 | Mcu.Pin4=PA2 | 36 | Mcu.Pin4=PA2 |
... | @@ -37,7 +39,7 @@ Mcu.Pin6=PA9 | ... | @@ -37,7 +39,7 @@ Mcu.Pin6=PA9 |
37 | Mcu.Pin7=PA10 | 39 | Mcu.Pin7=PA10 |
38 | Mcu.Pin8=PA12 | 40 | Mcu.Pin8=PA12 |
39 | Mcu.Pin9=PA13 | 41 | Mcu.Pin9=PA13 |
40 | Mcu.PinsNb=19 | 42 | Mcu.PinsNb=20 |
41 | Mcu.ThirdPartyNb=0 | 43 | Mcu.ThirdPartyNb=0 |
42 | Mcu.UserConstants= | 44 | Mcu.UserConstants= |
43 | Mcu.UserName=STM32F030C8Tx | 45 | Mcu.UserName=STM32F030C8Tx |
... | @@ -80,6 +82,13 @@ PA9.GPIO_PuPd=GPIO_PULLUP | ... | @@ -80,6 +82,13 @@ PA9.GPIO_PuPd=GPIO_PULLUP |
80 | PA9.GPIO_Speed=GPIO_SPEED_FREQ_MEDIUM | 82 | PA9.GPIO_Speed=GPIO_SPEED_FREQ_MEDIUM |
81 | PA9.Mode=Asynchronous | 83 | PA9.Mode=Asynchronous |
82 | PA9.Signal=USART1_TX | 84 | PA9.Signal=USART1_TX |
85 | PB5.GPIOParameters=GPIO_Speed,PinState,GPIO_PuPd,GPIO_Label | ||
86 | PB5.GPIO_Label=LED3 | ||
87 | PB5.GPIO_PuPd=GPIO_PULLUP | ||
88 | PB5.GPIO_Speed=GPIO_SPEED_FREQ_HIGH | ||
89 | PB5.Locked=true | ||
90 | PB5.PinState=GPIO_PIN_SET | ||
91 | PB5.Signal=GPIO_Output | ||
83 | PB6.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label | 92 | PB6.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label |
84 | PB6.GPIO_Label=LED2 | 93 | PB6.GPIO_Label=LED2 |
85 | PB6.GPIO_PuPd=GPIO_PULLDOWN | 94 | PB6.GPIO_PuPd=GPIO_PULLDOWN | ... | ... |
-
Please register or sign in to post a comment