From e0a357e2ea5efb22511939342e41c29fcfa50543 Mon Sep 17 00:00:00 2001 From: wangyz1997 Date: Thu, 16 May 2024 01:15:51 +0800 Subject: [PATCH] mihome_bridge: adapt to mihome module --- .../3rdParty/cherryusb/class/hid/usb_hid.h | 2 +- mihome_bridge/Core/Inc/bsp_key_in_out.h | 10 +- mihome_bridge/Core/Inc/main.h | 48 ++--- .../Core/Src/hid_keyboard_template.c | 4 +- mihome_bridge/Core/Src/main.c | 103 +++++----- mihome_bridge/MDK-ARM/mihome_bridge.uvoptx | 2 +- mihome_bridge/mihome_bridge.ioc | 183 +++++++++--------- 7 files changed, 179 insertions(+), 173 deletions(-) diff --git a/mihome_bridge/3rdParty/cherryusb/class/hid/usb_hid.h b/mihome_bridge/3rdParty/cherryusb/class/hid/usb_hid.h index 4fd1f8e..08299f5 100644 --- a/mihome_bridge/3rdParty/cherryusb/class/hid/usb_hid.h +++ b/mihome_bridge/3rdParty/cherryusb/class/hid/usb_hid.h @@ -385,7 +385,7 @@ #define HID_KBD_USAGE_DELFWD 0x4c /* Keyboard Delete Forward */ #define HID_KBD_USAGE_END 0x4d /* Keyboard End */ #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_DOWN 0x51 /* Keyboard DownArrow */ #define HID_KBD_USAGE_UP 0x52 /* Keyboard UpArrow */ diff --git a/mihome_bridge/Core/Inc/bsp_key_in_out.h b/mihome_bridge/Core/Inc/bsp_key_in_out.h index 794c207..b601b40 100644 --- a/mihome_bridge/Core/Inc/bsp_key_in_out.h +++ b/mihome_bridge/Core/Inc/bsp_key_in_out.h @@ -4,13 +4,13 @@ #include "main.h" #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_OUT_KEY_COUNT 8 -#define BSP_KEY_OUT_PRESSED_GPIO_LEVEL GPIO_PIN_SET -#define BSP_KEY_OUT_SHORT_PRESS_INTERVAL 200 //短按时间 -#define BSP_KEY_OUT_RELEASE_INTERVAL 200 //双击的两次点击间的延时 -#define BSP_KEY_OUT_LONG_PRESS_INTERVAL 1000 //长按时间 +#define BSP_KEY_OUT_PRESSED_GPIO_LEVEL GPIO_PIN_RESET +#define BSP_KEY_OUT_SHORT_PRESS_INTERVAL 100 //短按时间 +#define BSP_KEY_OUT_RELEASE_INTERVAL 100 //双击的两次点击间的延时 +#define BSP_KEY_OUT_LONG_PRESS_INTERVAL 2000 //长按时间 typedef enum { bsp_key_none = 0, diff --git a/mihome_bridge/Core/Inc/main.h b/mihome_bridge/Core/Inc/main.h index 5f4ea1b..a7f6367 100644 --- a/mihome_bridge/Core/Inc/main.h +++ b/mihome_bridge/Core/Inc/main.h @@ -59,32 +59,32 @@ void Error_Handler(void); /* Private defines -----------------------------------------------------------*/ #define BSP_KEY_IN_OUT_INTERAEL_MS 10 #define BSP_KEY_IN_OUT_TIM htim6 -#define KEY_IN1_Pin GPIO_PIN_4 -#define KEY_IN1_GPIO_Port GPIOA -#define KEY_IN2_Pin GPIO_PIN_5 -#define KEY_IN2_GPIO_Port GPIOA -#define KEY_IN3_Pin GPIO_PIN_6 -#define KEY_IN3_GPIO_Port GPIOA -#define KEY_IN4_Pin GPIO_PIN_7 -#define KEY_IN4_GPIO_Port GPIOA -#define KEY_OUT4_Pin GPIO_PIN_12 -#define KEY_OUT4_GPIO_Port GPIOB -#define KEY_OUT3_Pin GPIO_PIN_13 -#define KEY_OUT3_GPIO_Port GPIOB -#define KEY_OUT2_Pin GPIO_PIN_14 -#define KEY_OUT2_GPIO_Port GPIOB -#define KEY_OUT1_Pin GPIO_PIN_15 -#define KEY_OUT1_GPIO_Port GPIOB +#define KEY_OUT8_Pin GPIO_PIN_0 +#define KEY_OUT8_GPIO_Port GPIOA +#define KEY_OUT7_Pin GPIO_PIN_1 +#define KEY_OUT7_GPIO_Port GPIOA +#define KEY_OUT6_Pin GPIO_PIN_2 +#define KEY_OUT6_GPIO_Port GPIOA +#define KEY_OUT5_Pin GPIO_PIN_3 +#define KEY_OUT5_GPIO_Port GPIOA +#define KEY_OUT1_Pin GPIO_PIN_4 +#define KEY_OUT1_GPIO_Port GPIOA +#define KEY_OUT2_Pin GPIO_PIN_5 +#define KEY_OUT2_GPIO_Port GPIOA +#define KEY_OUT3_Pin GPIO_PIN_6 +#define KEY_OUT3_GPIO_Port GPIOA +#define KEY_OUT4_Pin GPIO_PIN_7 +#define KEY_OUT4_GPIO_Port GPIOA #define PIR_Pin GPIO_PIN_8 #define PIR_GPIO_Port GPIOA -#define KEY_OUT5_Pin GPIO_PIN_6 -#define KEY_OUT5_GPIO_Port GPIOB -#define KEY_OUT6_Pin GPIO_PIN_7 -#define KEY_OUT6_GPIO_Port GPIOB -#define KEY_OUT7_Pin GPIO_PIN_8 -#define KEY_OUT7_GPIO_Port GPIOB -#define KEY_OUT8_Pin GPIO_PIN_9 -#define KEY_OUT8_GPIO_Port GPIOB +#define KEY_IN4_Pin GPIO_PIN_15 +#define KEY_IN4_GPIO_Port GPIOA +#define KEY_IN3_Pin GPIO_PIN_3 +#define KEY_IN3_GPIO_Port GPIOB +#define KEY_IN2_Pin GPIO_PIN_4 +#define KEY_IN2_GPIO_Port GPIOB +#define KEY_IN1_Pin GPIO_PIN_5 +#define KEY_IN1_GPIO_Port GPIOB /* USER CODE BEGIN Private defines */ diff --git a/mihome_bridge/Core/Src/hid_keyboard_template.c b/mihome_bridge/Core/Src/hid_keyboard_template.c index 76d1299..ed7acdd 100644 --- a/mihome_bridge/Core/Src/hid_keyboard_template.c +++ b/mihome_bridge/Core/Src/hid_keyboard_template.c @@ -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]; -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); int ret = usbd_ep_start_write(busid, HID_INT_EP, write_buffer, 8); diff --git a/mihome_bridge/Core/Src/main.c b/mihome_bridge/Core/Src/main.c index b3a2c6a..0902794 100644 --- a/mihome_bridge/Core/Src/main.c +++ b/mihome_bridge/Core/Src/main.c @@ -57,7 +57,7 @@ static void MX_USART1_UART_Init(void); static void MX_TIM6_Init(void); /* USER CODE BEGIN PFP */ 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 */ /* Private user code ---------------------------------------------------------*/ @@ -112,47 +112,48 @@ int main(void) /* USER CODE BEGIN 2 */ hid_keyboard_init(0, USB_BASE); 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 */ /* Infinite loop */ /* USER CODE BEGIN WHILE */ + bsp_key_number_e key; + bsp_key_event_type_e event; + while (1) { - bsp_key_number_e key; - 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) { - if (key == bsp_key1) { - 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) { - 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) { - hid_keyboard_test(0, HID_KBD_USAGE_1 + 2); + } else if (key == bsp_key4) { - hid_keyboard_test(0, HID_KBD_USAGE_1 + 3); + } - } else if (event == bsp_key_event_long) { - if (key == bsp_key1) { - 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); + } else { //抬起USB键盘按键 + hid_keyboard_test(0, 0x00, 0x00); } /* USER CODE END WHILE */ @@ -292,26 +293,18 @@ static void MX_GPIO_Init(void) __HAL_RCC_GPIOB_CLK_ENABLE(); /*Configure GPIO pin Output Level */ - HAL_GPIO_WritePin(GPIOB, 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_PIN_RESET); + HAL_GPIO_WritePin(GPIOA, KEY_OUT8_Pin|KEY_OUT7_Pin|KEY_OUT6_Pin|KEY_OUT5_Pin + |KEY_OUT1_Pin|KEY_OUT2_Pin|KEY_OUT3_Pin|KEY_OUT4_Pin + |PIR_Pin, GPIO_PIN_SET); - /*Configure GPIO pin Output Level */ - HAL_GPIO_WritePin(PIR_GPIO_Port, PIR_Pin, GPIO_PIN_SET); - - /*Configure GPIO pins : KEY_IN1_Pin KEY_IN2_Pin KEY_IN3_Pin KEY_IN4_Pin */ - GPIO_InitStruct.Pin = KEY_IN1_Pin|KEY_IN2_Pin|KEY_IN3_Pin|KEY_IN4_Pin; - GPIO_InitStruct.Mode = GPIO_MODE_INPUT; + /*Configure GPIO pins : KEY_OUT8_Pin KEY_OUT7_Pin KEY_OUT6_Pin KEY_OUT5_Pin + 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 + |KEY_OUT1_Pin|KEY_OUT2_Pin|KEY_OUT3_Pin|KEY_OUT4_Pin; + GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_OD; 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; - HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); + HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); /*Configure GPIO 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; 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 END MX_GPIO_Init_2 */ } diff --git a/mihome_bridge/MDK-ARM/mihome_bridge.uvoptx b/mihome_bridge/MDK-ARM/mihome_bridge.uvoptx index 566c6fb..5697f94 100644 --- a/mihome_bridge/MDK-ARM/mihome_bridge.uvoptx +++ b/mihome_bridge/MDK-ARM/mihome_bridge.uvoptx @@ -308,7 +308,7 @@ Drivers/STM32F0xx_HAL_Driver - 1 + 0 0 0 0 diff --git a/mihome_bridge/mihome_bridge.ioc b/mihome_bridge/mihome_bridge.ioc index 5992590..c88a0b2 100644 --- a/mihome_bridge/mihome_bridge.ioc +++ b/mihome_bridge/mihome_bridge.ioc @@ -24,20 +24,20 @@ Mcu.Pin13=PA11 Mcu.Pin14=PA12 Mcu.Pin15=PA13 Mcu.Pin16=PA14 -Mcu.Pin17=PB6 -Mcu.Pin18=PB7 -Mcu.Pin19=PB8 -Mcu.Pin2=PA4 -Mcu.Pin20=PB9 +Mcu.Pin17=PA15 +Mcu.Pin18=PB3 +Mcu.Pin19=PB4 +Mcu.Pin2=PA0 +Mcu.Pin20=PB5 Mcu.Pin21=VP_SYS_VS_Systick Mcu.Pin22=VP_TIM6_VS_ClockSourceINT -Mcu.Pin3=PA5 -Mcu.Pin4=PA6 -Mcu.Pin5=PA7 -Mcu.Pin6=PB12 -Mcu.Pin7=PB13 -Mcu.Pin8=PB14 -Mcu.Pin9=PB15 +Mcu.Pin3=PA1 +Mcu.Pin4=PA2 +Mcu.Pin5=PA3 +Mcu.Pin6=PA4 +Mcu.Pin7=PA5 +Mcu.Pin8=PA6 +Mcu.Pin9=PA7 Mcu.PinsNb=23 Mcu.ThirdPartyNb=0 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.SysTick_IRQn=true\:3\:0\:false\:false\:true\:false\:true\:false 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.Mode=Asynchronous PA10.Signal=USART1_RX @@ -64,30 +80,60 @@ PA13.Signal=SYS_SWDIO PA14.Locked=true PA14.Mode=Serial_Wire PA14.Signal=SYS_SWCLK -PA4.GPIOParameters=GPIO_PuPd,GPIO_Label,GPIO_Mode -PA4.GPIO_Label=KEY_IN1 -PA4.GPIO_Mode=GPIO_MODE_INPUT +PA15.GPIOParameters=GPIO_PuPd,GPIO_Label,GPIO_Mode +PA15.GPIO_Label=KEY_IN4 +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_Speed=GPIO_SPEED_FREQ_LOW PA4.Locked=true -PA4.Signal=GPIO_Input -PA5.GPIOParameters=GPIO_PuPd,GPIO_Label,GPIO_Mode -PA5.GPIO_Label=KEY_IN2 -PA5.GPIO_Mode=GPIO_MODE_INPUT +PA4.PinState=GPIO_PIN_SET +PA4.Signal=GPIO_Output +PA5.GPIOParameters=GPIO_Speed,PinState,GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultOutputPP +PA5.GPIO_Label=KEY_OUT2 +PA5.GPIO_ModeDefaultOutputPP=GPIO_MODE_OUTPUT_OD PA5.GPIO_PuPd=GPIO_PULLUP +PA5.GPIO_Speed=GPIO_SPEED_FREQ_LOW PA5.Locked=true -PA5.Signal=GPIO_Input -PA6.GPIOParameters=GPIO_PuPd,GPIO_Label,GPIO_Mode -PA6.GPIO_Label=KEY_IN3 -PA6.GPIO_Mode=GPIO_MODE_INPUT +PA5.PinState=GPIO_PIN_SET +PA5.Signal=GPIO_Output +PA6.GPIOParameters=GPIO_Speed,PinState,GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultOutputPP +PA6.GPIO_Label=KEY_OUT3 +PA6.GPIO_ModeDefaultOutputPP=GPIO_MODE_OUTPUT_OD PA6.GPIO_PuPd=GPIO_PULLUP +PA6.GPIO_Speed=GPIO_SPEED_FREQ_LOW PA6.Locked=true -PA6.Signal=GPIO_Input -PA7.GPIOParameters=GPIO_PuPd,GPIO_Label,GPIO_Mode -PA7.GPIO_Label=KEY_IN4 -PA7.GPIO_Mode=GPIO_MODE_INPUT +PA6.PinState=GPIO_PIN_SET +PA6.Signal=GPIO_Output +PA7.GPIOParameters=GPIO_Speed,PinState,GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultOutputPP +PA7.GPIO_Label=KEY_OUT4 +PA7.GPIO_ModeDefaultOutputPP=GPIO_MODE_OUTPUT_OD PA7.GPIO_PuPd=GPIO_PULLUP +PA7.GPIO_Speed=GPIO_SPEED_FREQ_LOW PA7.Locked=true -PA7.Signal=GPIO_Input +PA7.PinState=GPIO_PIN_SET +PA7.Signal=GPIO_Output PA8.GPIOParameters=GPIO_Speed,PinState,GPIO_Label PA8.GPIO_Label=PIR PA8.GPIO_Speed=GPIO_SPEED_FREQ_LOW @@ -97,69 +143,24 @@ PA8.Signal=GPIO_Output PA9.Locked=true PA9.Mode=Asynchronous PA9.Signal=USART1_TX -PB12.GPIOParameters=GPIO_Speed,PinState,GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultOutputPP -PB12.GPIO_Label=KEY_OUT4 -PB12.GPIO_ModeDefaultOutputPP=GPIO_MODE_OUTPUT_PP -PB12.GPIO_PuPd=GPIO_NOPULL -PB12.GPIO_Speed=GPIO_SPEED_FREQ_LOW -PB12.Locked=true -PB12.PinState=GPIO_PIN_RESET -PB12.Signal=GPIO_Output -PB13.GPIOParameters=GPIO_Speed,PinState,GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultOutputPP -PB13.GPIO_Label=KEY_OUT3 -PB13.GPIO_ModeDefaultOutputPP=GPIO_MODE_OUTPUT_PP -PB13.GPIO_PuPd=GPIO_NOPULL -PB13.GPIO_Speed=GPIO_SPEED_FREQ_LOW -PB13.Locked=true -PB13.PinState=GPIO_PIN_RESET -PB13.Signal=GPIO_Output -PB14.GPIOParameters=GPIO_Speed,PinState,GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultOutputPP -PB14.GPIO_Label=KEY_OUT2 -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 +PB3.GPIOParameters=GPIO_PuPd,GPIO_Label,GPIO_Mode +PB3.GPIO_Label=KEY_IN3 +PB3.GPIO_Mode=GPIO_MODE_INPUT +PB3.GPIO_PuPd=GPIO_PULLUP +PB3.Locked=true +PB3.Signal=GPIO_Input +PB4.GPIOParameters=GPIO_PuPd,GPIO_Label,GPIO_Mode +PB4.GPIO_Label=KEY_IN2 +PB4.GPIO_Mode=GPIO_MODE_INPUT +PB4.GPIO_PuPd=GPIO_PULLUP +PB4.Locked=true +PB4.Signal=GPIO_Input +PB5.GPIOParameters=GPIO_PuPd,GPIO_Label,GPIO_Mode +PB5.GPIO_Label=KEY_IN1 +PB5.GPIO_Mode=GPIO_MODE_INPUT +PB5.GPIO_PuPd=GPIO_PULLUP +PB5.Locked=true +PB5.Signal=GPIO_Input PF0-OSC_IN.Locked=true PF0-OSC_IN.Signal=RCC_OSC_IN PF1-OSC_OUT.Locked=true