mihome_bridge: adapt to mihome module

This commit is contained in:
wangyz1997 2024-05-16 01:15:51 +08:00
parent 2ba8d82609
commit e0a357e2ea
7 changed files with 179 additions and 173 deletions

View File

@ -385,7 +385,7 @@
#define HID_KBD_USAGE_DELFWD 0x4c /* Keyboard Delete Forward */ #define HID_KBD_USAGE_DELFWD 0x4c /* Keyboard Delete Forward */
#define HID_KBD_USAGE_END 0x4d /* Keyboard End */ #define HID_KBD_USAGE_END 0x4d /* Keyboard End */
#define HID_KBD_USAGE_PAGEDOWN 0x4e /* Keyboard PageDown */ #define HID_KBD_USAGE_PAGEDOWN 0x4e /* Keyboard PageDown */
#define HID_KBD_USAGE_RIGHT 0x4f /* eyboard RightArrow */ #define HID_KBD_USAGE_RIGHT 0x4f /* Keyboard RightArrow */
#define HID_KBD_USAGE_LEFT 0x50 /* Keyboard LeftArrow */ #define HID_KBD_USAGE_LEFT 0x50 /* Keyboard LeftArrow */
#define HID_KBD_USAGE_DOWN 0x51 /* Keyboard DownArrow */ #define HID_KBD_USAGE_DOWN 0x51 /* Keyboard DownArrow */
#define HID_KBD_USAGE_UP 0x52 /* Keyboard UpArrow */ #define HID_KBD_USAGE_UP 0x52 /* Keyboard UpArrow */

View File

@ -4,13 +4,13 @@
#include "main.h" #include "main.h"
#define BSP_KEY_IN_KEY_COUNT 4 #define BSP_KEY_IN_KEY_COUNT 4
#define BSP_KEY_IN_PRESSED_GPIO_LEVEL GPIO_PIN_RESET #define BSP_KEY_IN_PRESSED_GPIO_LEVEL GPIO_PIN_SET
#define BSP_KEY_IN_LONG_PRESS_THRESHOLD_MS 500 #define BSP_KEY_IN_LONG_PRESS_THRESHOLD_MS 500
#define BSP_KEY_OUT_KEY_COUNT 8 #define BSP_KEY_OUT_KEY_COUNT 8
#define BSP_KEY_OUT_PRESSED_GPIO_LEVEL GPIO_PIN_SET #define BSP_KEY_OUT_PRESSED_GPIO_LEVEL GPIO_PIN_RESET
#define BSP_KEY_OUT_SHORT_PRESS_INTERVAL 200 //短按时间 #define BSP_KEY_OUT_SHORT_PRESS_INTERVAL 100 //短按时间
#define BSP_KEY_OUT_RELEASE_INTERVAL 200 //双击的两次点击间的延时 #define BSP_KEY_OUT_RELEASE_INTERVAL 100 //双击的两次点击间的延时
#define BSP_KEY_OUT_LONG_PRESS_INTERVAL 1000 //长按时间 #define BSP_KEY_OUT_LONG_PRESS_INTERVAL 2000 //长按时间
typedef enum { typedef enum {
bsp_key_none = 0, bsp_key_none = 0,

View File

@ -59,32 +59,32 @@ void Error_Handler(void);
/* Private defines -----------------------------------------------------------*/ /* Private defines -----------------------------------------------------------*/
#define BSP_KEY_IN_OUT_INTERAEL_MS 10 #define BSP_KEY_IN_OUT_INTERAEL_MS 10
#define BSP_KEY_IN_OUT_TIM htim6 #define BSP_KEY_IN_OUT_TIM htim6
#define KEY_IN1_Pin GPIO_PIN_4 #define KEY_OUT8_Pin GPIO_PIN_0
#define KEY_IN1_GPIO_Port GPIOA #define KEY_OUT8_GPIO_Port GPIOA
#define KEY_IN2_Pin GPIO_PIN_5 #define KEY_OUT7_Pin GPIO_PIN_1
#define KEY_IN2_GPIO_Port GPIOA #define KEY_OUT7_GPIO_Port GPIOA
#define KEY_IN3_Pin GPIO_PIN_6 #define KEY_OUT6_Pin GPIO_PIN_2
#define KEY_IN3_GPIO_Port GPIOA #define KEY_OUT6_GPIO_Port GPIOA
#define KEY_IN4_Pin GPIO_PIN_7 #define KEY_OUT5_Pin GPIO_PIN_3
#define KEY_IN4_GPIO_Port GPIOA #define KEY_OUT5_GPIO_Port GPIOA
#define KEY_OUT4_Pin GPIO_PIN_12 #define KEY_OUT1_Pin GPIO_PIN_4
#define KEY_OUT4_GPIO_Port GPIOB #define KEY_OUT1_GPIO_Port GPIOA
#define KEY_OUT3_Pin GPIO_PIN_13 #define KEY_OUT2_Pin GPIO_PIN_5
#define KEY_OUT3_GPIO_Port GPIOB #define KEY_OUT2_GPIO_Port GPIOA
#define KEY_OUT2_Pin GPIO_PIN_14 #define KEY_OUT3_Pin GPIO_PIN_6
#define KEY_OUT2_GPIO_Port GPIOB #define KEY_OUT3_GPIO_Port GPIOA
#define KEY_OUT1_Pin GPIO_PIN_15 #define KEY_OUT4_Pin GPIO_PIN_7
#define KEY_OUT1_GPIO_Port GPIOB #define KEY_OUT4_GPIO_Port GPIOA
#define PIR_Pin GPIO_PIN_8 #define PIR_Pin GPIO_PIN_8
#define PIR_GPIO_Port GPIOA #define PIR_GPIO_Port GPIOA
#define KEY_OUT5_Pin GPIO_PIN_6 #define KEY_IN4_Pin GPIO_PIN_15
#define KEY_OUT5_GPIO_Port GPIOB #define KEY_IN4_GPIO_Port GPIOA
#define KEY_OUT6_Pin GPIO_PIN_7 #define KEY_IN3_Pin GPIO_PIN_3
#define KEY_OUT6_GPIO_Port GPIOB #define KEY_IN3_GPIO_Port GPIOB
#define KEY_OUT7_Pin GPIO_PIN_8 #define KEY_IN2_Pin GPIO_PIN_4
#define KEY_OUT7_GPIO_Port GPIOB #define KEY_IN2_GPIO_Port GPIOB
#define KEY_OUT8_Pin GPIO_PIN_9 #define KEY_IN1_Pin GPIO_PIN_5
#define KEY_OUT8_GPIO_Port GPIOB #define KEY_IN1_GPIO_Port GPIOB
/* USER CODE BEGIN Private defines */ /* USER CODE BEGIN Private defines */

View File

@ -232,9 +232,9 @@ void hid_keyboard_init(uint8_t busid, uint32_t reg_base)
USB_NOCACHE_RAM_SECTION USB_MEM_ALIGNX uint8_t write_buffer[64]; USB_NOCACHE_RAM_SECTION USB_MEM_ALIGNX uint8_t write_buffer[64];
void hid_keyboard_test(uint8_t busid, uint8_t key) void hid_keyboard_test(uint8_t busid, uint8_t key1, uint8_t key2)
{ {
const uint8_t sendbuffer[8] = { 0x00, 0x00, key, 0x00, 0x00, 0x00, 0x00, 0x00 }; const uint8_t sendbuffer[8] = { key1, 0x00, key2, 0x00, 0x00, 0x00, 0x00, 0x00 };
memcpy(write_buffer, sendbuffer, 8); memcpy(write_buffer, sendbuffer, 8);
int ret = usbd_ep_start_write(busid, HID_INT_EP, write_buffer, 8); int ret = usbd_ep_start_write(busid, HID_INT_EP, write_buffer, 8);

View File

@ -57,7 +57,7 @@ static void MX_USART1_UART_Init(void);
static void MX_TIM6_Init(void); static void MX_TIM6_Init(void);
/* USER CODE BEGIN PFP */ /* USER CODE BEGIN PFP */
void hid_keyboard_init(uint8_t busid, uint32_t reg_base); void hid_keyboard_init(uint8_t busid, uint32_t reg_base);
void hid_keyboard_test(uint8_t busid, uint8_t key); void hid_keyboard_test(uint8_t busid, uint8_t key1, uint8_t key2);
/* USER CODE END PFP */ /* USER CODE END PFP */
/* Private user code ---------------------------------------------------------*/ /* Private user code ---------------------------------------------------------*/
@ -112,47 +112,48 @@ int main(void)
/* USER CODE BEGIN 2 */ /* USER CODE BEGIN 2 */
hid_keyboard_init(0, USB_BASE); hid_keyboard_init(0, USB_BASE);
bsp_key_in_out_init(); bsp_key_in_out_init();
bsp_key_out_set_event(bsp_key1, bsp_key_event_double);
bsp_key_out_set_event(bsp_key2, bsp_key_event_double);
bsp_key_out_set_event(bsp_key3, bsp_key_event_double);
bsp_key_out_set_event(bsp_key4, bsp_key_event_double);
bsp_key_out_set_event(bsp_key5, bsp_key_event_long);
bsp_key_out_set_event(bsp_key6, bsp_key_event_long);
bsp_key_out_set_event(bsp_key7, bsp_key_event_long);
bsp_key_out_set_event(bsp_key8, bsp_key_event_long);
/* USER CODE END 2 */ /* USER CODE END 2 */
/* Infinite loop */ /* Infinite loop */
/* USER CODE BEGIN WHILE */ /* USER CODE BEGIN WHILE */
while (1) {
bsp_key_number_e key; bsp_key_number_e key;
bsp_key_event_type_e event; bsp_key_event_type_e event;
bsp_key_in_get_event(&key, &event);
bsp_key_out_set_event(key, event);
if (event == bsp_key_event_press) { while (1) {
if (key == bsp_key1) { bsp_key_in_get_event(&key, &event);
hid_keyboard_test(0, HID_KBD_USAGE_1);
if (key != bsp_key_none) { //有按键按下 无论长短按
bsp_key_out_set_event(key, bsp_key_event_press); //输出短按事件 将该按键恢复至未触发状态
if (key == bsp_key1) { //触发USB键盘按键
hid_keyboard_test(0, 1u << 3, HID_KBD_USAGE_A + 'L' - 'A'); //Left GUI + L
} else if (key == bsp_key2) { } else if (key == bsp_key2) {
hid_keyboard_test(0, HID_KBD_USAGE_1 + 1); hid_keyboard_test(0, 1u << 3, HID_KBD_USAGE_A + 'R' - 'A'); //Left GUI + R
HAL_Delay(100);
hid_keyboard_test(0, 0, HID_KBD_USAGE_A + 'Y' - 'A');
hid_keyboard_test(0, 0, HID_KBD_USAGE_A + 'U' - 'A');
hid_keyboard_test(0, 0, HID_KBD_USAGE_A + 'A' - 'A');
hid_keyboard_test(0, 0, HID_KBD_USAGE_A + 'N' - 'A');
hid_keyboard_test(0, 0, HID_KBD_USAGE_A + 'S' - 'A');
hid_keyboard_test(0, 0, HID_KBD_USAGE_A + 'H' - 'A');
hid_keyboard_test(0, 0, HID_KBD_USAGE_A + 'E' - 'A');
hid_keyboard_test(0, 0, HID_KBD_USAGE_A + 'N' - 'A');
hid_keyboard_test(0, 0, HID_KBD_USAGE_PERIOD);
hid_keyboard_test(0, 0, HID_KBD_USAGE_A + 'E' - 'A');
hid_keyboard_test(0, 0, HID_KBD_USAGE_A + 'X' - 'A');
hid_keyboard_test(0, 0, HID_KBD_USAGE_A + 'E' - 'A');
hid_keyboard_test(0, 0, HID_KBD_USAGE_ENTER);
HAL_Delay(500);
hid_keyboard_test(0, 0, HID_KBD_USAGE_LEFT);
HAL_Delay(100);
hid_keyboard_test(0, 0, HID_KBD_USAGE_ENTER);
} else if (key == bsp_key3) { } else if (key == bsp_key3) {
hid_keyboard_test(0, HID_KBD_USAGE_1 + 2);
} else if (key == bsp_key4) { } else if (key == bsp_key4) {
hid_keyboard_test(0, HID_KBD_USAGE_1 + 3);
} }
} else if (event == bsp_key_event_long) { } else { //抬起USB键盘按键
if (key == bsp_key1) { hid_keyboard_test(0, 0x00, 0x00);
hid_keyboard_test(0, HID_KBD_USAGE_A);
} else if (key == bsp_key2) {
hid_keyboard_test(0, HID_KBD_USAGE_A + 1);
} else if (key == bsp_key3) {
hid_keyboard_test(0, HID_KBD_USAGE_A + 2);
} else if (key == bsp_key4) {
hid_keyboard_test(0, HID_KBD_USAGE_A + 3);
}
} else {
hid_keyboard_test(0, 0x00);
} }
/* USER CODE END WHILE */ /* USER CODE END WHILE */
@ -292,26 +293,18 @@ static void MX_GPIO_Init(void)
__HAL_RCC_GPIOB_CLK_ENABLE(); __HAL_RCC_GPIOB_CLK_ENABLE();
/*Configure GPIO pin Output Level */ /*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(GPIOB, KEY_OUT4_Pin|KEY_OUT3_Pin|KEY_OUT2_Pin|KEY_OUT1_Pin HAL_GPIO_WritePin(GPIOA, KEY_OUT8_Pin|KEY_OUT7_Pin|KEY_OUT6_Pin|KEY_OUT5_Pin
|KEY_OUT5_Pin|KEY_OUT6_Pin|KEY_OUT7_Pin|KEY_OUT8_Pin, GPIO_PIN_RESET); |KEY_OUT1_Pin|KEY_OUT2_Pin|KEY_OUT3_Pin|KEY_OUT4_Pin
|PIR_Pin, GPIO_PIN_SET);
/*Configure GPIO pin Output Level */ /*Configure GPIO pins : KEY_OUT8_Pin KEY_OUT7_Pin KEY_OUT6_Pin KEY_OUT5_Pin
HAL_GPIO_WritePin(PIR_GPIO_Port, PIR_Pin, GPIO_PIN_SET); KEY_OUT1_Pin KEY_OUT2_Pin KEY_OUT3_Pin KEY_OUT4_Pin */
GPIO_InitStruct.Pin = KEY_OUT8_Pin|KEY_OUT7_Pin|KEY_OUT6_Pin|KEY_OUT5_Pin
/*Configure GPIO pins : KEY_IN1_Pin KEY_IN2_Pin KEY_IN3_Pin KEY_IN4_Pin */ |KEY_OUT1_Pin|KEY_OUT2_Pin|KEY_OUT3_Pin|KEY_OUT4_Pin;
GPIO_InitStruct.Pin = KEY_IN1_Pin|KEY_IN2_Pin|KEY_IN3_Pin|KEY_IN4_Pin; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_OD;
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
GPIO_InitStruct.Pull = GPIO_PULLUP; GPIO_InitStruct.Pull = GPIO_PULLUP;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
/*Configure GPIO pins : KEY_OUT4_Pin KEY_OUT3_Pin KEY_OUT2_Pin KEY_OUT1_Pin
KEY_OUT5_Pin KEY_OUT6_Pin KEY_OUT7_Pin KEY_OUT8_Pin */
GPIO_InitStruct.Pin = KEY_OUT4_Pin|KEY_OUT3_Pin|KEY_OUT2_Pin|KEY_OUT1_Pin
|KEY_OUT5_Pin|KEY_OUT6_Pin|KEY_OUT7_Pin|KEY_OUT8_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
/*Configure GPIO pin : PIR_Pin */ /*Configure GPIO pin : PIR_Pin */
GPIO_InitStruct.Pin = PIR_Pin; GPIO_InitStruct.Pin = PIR_Pin;
@ -320,6 +313,18 @@ static void MX_GPIO_Init(void)
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(PIR_GPIO_Port, &GPIO_InitStruct); HAL_GPIO_Init(PIR_GPIO_Port, &GPIO_InitStruct);
/*Configure GPIO pin : KEY_IN4_Pin */
GPIO_InitStruct.Pin = KEY_IN4_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
GPIO_InitStruct.Pull = GPIO_PULLUP;
HAL_GPIO_Init(KEY_IN4_GPIO_Port, &GPIO_InitStruct);
/*Configure GPIO pins : KEY_IN3_Pin KEY_IN2_Pin KEY_IN1_Pin */
GPIO_InitStruct.Pin = KEY_IN3_Pin|KEY_IN2_Pin|KEY_IN1_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
GPIO_InitStruct.Pull = GPIO_PULLUP;
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
/* USER CODE BEGIN MX_GPIO_Init_2 */ /* USER CODE BEGIN MX_GPIO_Init_2 */
/* USER CODE END MX_GPIO_Init_2 */ /* USER CODE END MX_GPIO_Init_2 */
} }

View File

@ -308,7 +308,7 @@
<Group> <Group>
<GroupName>Drivers/STM32F0xx_HAL_Driver</GroupName> <GroupName>Drivers/STM32F0xx_HAL_Driver</GroupName>
<tvExp>1</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel> <cbSel>0</cbSel>
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>

View File

@ -24,20 +24,20 @@ Mcu.Pin13=PA11
Mcu.Pin14=PA12 Mcu.Pin14=PA12
Mcu.Pin15=PA13 Mcu.Pin15=PA13
Mcu.Pin16=PA14 Mcu.Pin16=PA14
Mcu.Pin17=PB6 Mcu.Pin17=PA15
Mcu.Pin18=PB7 Mcu.Pin18=PB3
Mcu.Pin19=PB8 Mcu.Pin19=PB4
Mcu.Pin2=PA4 Mcu.Pin2=PA0
Mcu.Pin20=PB9 Mcu.Pin20=PB5
Mcu.Pin21=VP_SYS_VS_Systick Mcu.Pin21=VP_SYS_VS_Systick
Mcu.Pin22=VP_TIM6_VS_ClockSourceINT Mcu.Pin22=VP_TIM6_VS_ClockSourceINT
Mcu.Pin3=PA5 Mcu.Pin3=PA1
Mcu.Pin4=PA6 Mcu.Pin4=PA2
Mcu.Pin5=PA7 Mcu.Pin5=PA3
Mcu.Pin6=PB12 Mcu.Pin6=PA4
Mcu.Pin7=PB13 Mcu.Pin7=PA5
Mcu.Pin8=PB14 Mcu.Pin8=PA6
Mcu.Pin9=PB15 Mcu.Pin9=PA7
Mcu.PinsNb=23 Mcu.PinsNb=23
Mcu.ThirdPartyNb=0 Mcu.ThirdPartyNb=0
Mcu.UserConstants=BSP_KEY_IN_OUT_INTERAEL_MS,10;BSP_KEY_IN_OUT_TIM,$$_TIM6_IP_HANDLE_$$ Mcu.UserConstants=BSP_KEY_IN_OUT_INTERAEL_MS,10;BSP_KEY_IN_OUT_TIM,$$_TIM6_IP_HANDLE_$$
@ -51,6 +51,22 @@ NVIC.PendSV_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
NVIC.SVC_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:true NVIC.SVC_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:true
NVIC.SysTick_IRQn=true\:3\:0\:false\:false\:true\:false\:true\:false NVIC.SysTick_IRQn=true\:3\:0\:false\:false\:true\:false\:true\:false
NVIC.TIM6_DAC_IRQn=true\:1\:0\:true\:false\:true\:true\:true\:true NVIC.TIM6_DAC_IRQn=true\:1\:0\:true\:false\:true\:true\:true\:true
PA0.GPIOParameters=GPIO_Speed,PinState,GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultOutputPP
PA0.GPIO_Label=KEY_OUT8
PA0.GPIO_ModeDefaultOutputPP=GPIO_MODE_OUTPUT_OD
PA0.GPIO_PuPd=GPIO_PULLUP
PA0.GPIO_Speed=GPIO_SPEED_FREQ_LOW
PA0.Locked=true
PA0.PinState=GPIO_PIN_SET
PA0.Signal=GPIO_Output
PA1.GPIOParameters=GPIO_Speed,PinState,GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultOutputPP
PA1.GPIO_Label=KEY_OUT7
PA1.GPIO_ModeDefaultOutputPP=GPIO_MODE_OUTPUT_OD
PA1.GPIO_PuPd=GPIO_PULLUP
PA1.GPIO_Speed=GPIO_SPEED_FREQ_LOW
PA1.Locked=true
PA1.PinState=GPIO_PIN_SET
PA1.Signal=GPIO_Output
PA10.Locked=true PA10.Locked=true
PA10.Mode=Asynchronous PA10.Mode=Asynchronous
PA10.Signal=USART1_RX PA10.Signal=USART1_RX
@ -64,30 +80,60 @@ PA13.Signal=SYS_SWDIO
PA14.Locked=true PA14.Locked=true
PA14.Mode=Serial_Wire PA14.Mode=Serial_Wire
PA14.Signal=SYS_SWCLK PA14.Signal=SYS_SWCLK
PA4.GPIOParameters=GPIO_PuPd,GPIO_Label,GPIO_Mode PA15.GPIOParameters=GPIO_PuPd,GPIO_Label,GPIO_Mode
PA4.GPIO_Label=KEY_IN1 PA15.GPIO_Label=KEY_IN4
PA4.GPIO_Mode=GPIO_MODE_INPUT PA15.GPIO_Mode=GPIO_MODE_INPUT
PA15.GPIO_PuPd=GPIO_PULLUP
PA15.Locked=true
PA15.Signal=GPIO_Input
PA2.GPIOParameters=GPIO_Speed,PinState,GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultOutputPP
PA2.GPIO_Label=KEY_OUT6
PA2.GPIO_ModeDefaultOutputPP=GPIO_MODE_OUTPUT_OD
PA2.GPIO_PuPd=GPIO_PULLUP
PA2.GPIO_Speed=GPIO_SPEED_FREQ_LOW
PA2.Locked=true
PA2.PinState=GPIO_PIN_SET
PA2.Signal=GPIO_Output
PA3.GPIOParameters=GPIO_Speed,PinState,GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultOutputPP
PA3.GPIO_Label=KEY_OUT5
PA3.GPIO_ModeDefaultOutputPP=GPIO_MODE_OUTPUT_OD
PA3.GPIO_PuPd=GPIO_PULLUP
PA3.GPIO_Speed=GPIO_SPEED_FREQ_LOW
PA3.Locked=true
PA3.PinState=GPIO_PIN_SET
PA3.Signal=GPIO_Output
PA4.GPIOParameters=GPIO_Speed,PinState,GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultOutputPP
PA4.GPIO_Label=KEY_OUT1
PA4.GPIO_ModeDefaultOutputPP=GPIO_MODE_OUTPUT_OD
PA4.GPIO_PuPd=GPIO_PULLUP PA4.GPIO_PuPd=GPIO_PULLUP
PA4.GPIO_Speed=GPIO_SPEED_FREQ_LOW
PA4.Locked=true PA4.Locked=true
PA4.Signal=GPIO_Input PA4.PinState=GPIO_PIN_SET
PA5.GPIOParameters=GPIO_PuPd,GPIO_Label,GPIO_Mode PA4.Signal=GPIO_Output
PA5.GPIO_Label=KEY_IN2 PA5.GPIOParameters=GPIO_Speed,PinState,GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultOutputPP
PA5.GPIO_Mode=GPIO_MODE_INPUT PA5.GPIO_Label=KEY_OUT2
PA5.GPIO_ModeDefaultOutputPP=GPIO_MODE_OUTPUT_OD
PA5.GPIO_PuPd=GPIO_PULLUP PA5.GPIO_PuPd=GPIO_PULLUP
PA5.GPIO_Speed=GPIO_SPEED_FREQ_LOW
PA5.Locked=true PA5.Locked=true
PA5.Signal=GPIO_Input PA5.PinState=GPIO_PIN_SET
PA6.GPIOParameters=GPIO_PuPd,GPIO_Label,GPIO_Mode PA5.Signal=GPIO_Output
PA6.GPIO_Label=KEY_IN3 PA6.GPIOParameters=GPIO_Speed,PinState,GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultOutputPP
PA6.GPIO_Mode=GPIO_MODE_INPUT PA6.GPIO_Label=KEY_OUT3
PA6.GPIO_ModeDefaultOutputPP=GPIO_MODE_OUTPUT_OD
PA6.GPIO_PuPd=GPIO_PULLUP PA6.GPIO_PuPd=GPIO_PULLUP
PA6.GPIO_Speed=GPIO_SPEED_FREQ_LOW
PA6.Locked=true PA6.Locked=true
PA6.Signal=GPIO_Input PA6.PinState=GPIO_PIN_SET
PA7.GPIOParameters=GPIO_PuPd,GPIO_Label,GPIO_Mode PA6.Signal=GPIO_Output
PA7.GPIO_Label=KEY_IN4 PA7.GPIOParameters=GPIO_Speed,PinState,GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultOutputPP
PA7.GPIO_Mode=GPIO_MODE_INPUT PA7.GPIO_Label=KEY_OUT4
PA7.GPIO_ModeDefaultOutputPP=GPIO_MODE_OUTPUT_OD
PA7.GPIO_PuPd=GPIO_PULLUP PA7.GPIO_PuPd=GPIO_PULLUP
PA7.GPIO_Speed=GPIO_SPEED_FREQ_LOW
PA7.Locked=true PA7.Locked=true
PA7.Signal=GPIO_Input PA7.PinState=GPIO_PIN_SET
PA7.Signal=GPIO_Output
PA8.GPIOParameters=GPIO_Speed,PinState,GPIO_Label PA8.GPIOParameters=GPIO_Speed,PinState,GPIO_Label
PA8.GPIO_Label=PIR PA8.GPIO_Label=PIR
PA8.GPIO_Speed=GPIO_SPEED_FREQ_LOW PA8.GPIO_Speed=GPIO_SPEED_FREQ_LOW
@ -97,69 +143,24 @@ PA8.Signal=GPIO_Output
PA9.Locked=true PA9.Locked=true
PA9.Mode=Asynchronous PA9.Mode=Asynchronous
PA9.Signal=USART1_TX PA9.Signal=USART1_TX
PB12.GPIOParameters=GPIO_Speed,PinState,GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultOutputPP PB3.GPIOParameters=GPIO_PuPd,GPIO_Label,GPIO_Mode
PB12.GPIO_Label=KEY_OUT4 PB3.GPIO_Label=KEY_IN3
PB12.GPIO_ModeDefaultOutputPP=GPIO_MODE_OUTPUT_PP PB3.GPIO_Mode=GPIO_MODE_INPUT
PB12.GPIO_PuPd=GPIO_NOPULL PB3.GPIO_PuPd=GPIO_PULLUP
PB12.GPIO_Speed=GPIO_SPEED_FREQ_LOW PB3.Locked=true
PB12.Locked=true PB3.Signal=GPIO_Input
PB12.PinState=GPIO_PIN_RESET PB4.GPIOParameters=GPIO_PuPd,GPIO_Label,GPIO_Mode
PB12.Signal=GPIO_Output PB4.GPIO_Label=KEY_IN2
PB13.GPIOParameters=GPIO_Speed,PinState,GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultOutputPP PB4.GPIO_Mode=GPIO_MODE_INPUT
PB13.GPIO_Label=KEY_OUT3 PB4.GPIO_PuPd=GPIO_PULLUP
PB13.GPIO_ModeDefaultOutputPP=GPIO_MODE_OUTPUT_PP PB4.Locked=true
PB13.GPIO_PuPd=GPIO_NOPULL PB4.Signal=GPIO_Input
PB13.GPIO_Speed=GPIO_SPEED_FREQ_LOW PB5.GPIOParameters=GPIO_PuPd,GPIO_Label,GPIO_Mode
PB13.Locked=true PB5.GPIO_Label=KEY_IN1
PB13.PinState=GPIO_PIN_RESET PB5.GPIO_Mode=GPIO_MODE_INPUT
PB13.Signal=GPIO_Output PB5.GPIO_PuPd=GPIO_PULLUP
PB14.GPIOParameters=GPIO_Speed,PinState,GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultOutputPP PB5.Locked=true
PB14.GPIO_Label=KEY_OUT2 PB5.Signal=GPIO_Input
PB14.GPIO_ModeDefaultOutputPP=GPIO_MODE_OUTPUT_PP
PB14.GPIO_PuPd=GPIO_NOPULL
PB14.GPIO_Speed=GPIO_SPEED_FREQ_LOW
PB14.Locked=true
PB14.PinState=GPIO_PIN_RESET
PB14.Signal=GPIO_Output
PB15.GPIOParameters=GPIO_Speed,PinState,GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultOutputPP
PB15.GPIO_Label=KEY_OUT1
PB15.GPIO_ModeDefaultOutputPP=GPIO_MODE_OUTPUT_PP
PB15.GPIO_PuPd=GPIO_NOPULL
PB15.GPIO_Speed=GPIO_SPEED_FREQ_LOW
PB15.Locked=true
PB15.PinState=GPIO_PIN_RESET
PB15.Signal=GPIO_Output
PB6.GPIOParameters=PinState,GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultOutputPP
PB6.GPIO_Label=KEY_OUT5
PB6.GPIO_ModeDefaultOutputPP=GPIO_MODE_OUTPUT_PP
PB6.GPIO_PuPd=GPIO_NOPULL
PB6.Locked=true
PB6.PinState=GPIO_PIN_RESET
PB6.Signal=GPIO_Output
PB7.GPIOParameters=GPIO_Speed,PinState,GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultOutputPP
PB7.GPIO_Label=KEY_OUT6
PB7.GPIO_ModeDefaultOutputPP=GPIO_MODE_OUTPUT_PP
PB7.GPIO_PuPd=GPIO_NOPULL
PB7.GPIO_Speed=GPIO_SPEED_FREQ_LOW
PB7.Locked=true
PB7.PinState=GPIO_PIN_RESET
PB7.Signal=GPIO_Output
PB8.GPIOParameters=GPIO_Speed,PinState,GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultOutputPP
PB8.GPIO_Label=KEY_OUT7
PB8.GPIO_ModeDefaultOutputPP=GPIO_MODE_OUTPUT_PP
PB8.GPIO_PuPd=GPIO_NOPULL
PB8.GPIO_Speed=GPIO_SPEED_FREQ_LOW
PB8.Locked=true
PB8.PinState=GPIO_PIN_RESET
PB8.Signal=GPIO_Output
PB9.GPIOParameters=GPIO_Speed,PinState,GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultOutputPP
PB9.GPIO_Label=KEY_OUT8
PB9.GPIO_ModeDefaultOutputPP=GPIO_MODE_OUTPUT_PP
PB9.GPIO_PuPd=GPIO_NOPULL
PB9.GPIO_Speed=GPIO_SPEED_FREQ_LOW
PB9.Locked=true
PB9.PinState=GPIO_PIN_RESET
PB9.Signal=GPIO_Output
PF0-OSC_IN.Locked=true PF0-OSC_IN.Locked=true
PF0-OSC_IN.Signal=RCC_OSC_IN PF0-OSC_IN.Signal=RCC_OSC_IN
PF1-OSC_OUT.Locked=true PF1-OSC_OUT.Locked=true