mihome_bridge: adapt to latest pcb pinout

This commit is contained in:
wangyz1997 2024-06-05 00:19:50 +08:00
parent 01f90d4718
commit ffff597d41
5 changed files with 121 additions and 97 deletions

View File

@ -59,24 +59,18 @@ void Error_Handler(void);
/* Private defines -----------------------------------------------------------*/
#define BSP_KEY_IN_OUT_INTERAEL_MS 10
#define BSP_KEY_IN_OUT_TIM htim6
#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_OUT7_Pin GPIO_PIN_4
#define KEY_OUT7_GPIO_Port GPIOA
#define KEY_OUT8_Pin GPIO_PIN_5
#define KEY_OUT8_GPIO_Port GPIOA
#define LED_STAT_Pin GPIO_PIN_12
#define LED_STAT_GPIO_Port GPIOB
#define LED_PWR_Pin GPIO_PIN_14
#define LED_PWR_GPIO_Port GPIOB
#define KEY_IN4_Pin GPIO_PIN_15
#define KEY_IN4_GPIO_Port GPIOA
#define KEY_IN3_Pin GPIO_PIN_3
@ -85,6 +79,14 @@ void Error_Handler(void);
#define KEY_IN2_GPIO_Port GPIOB
#define KEY_IN1_Pin GPIO_PIN_5
#define KEY_IN1_GPIO_Port GPIOB
#define KEY_OUT4_Pin GPIO_PIN_6
#define KEY_OUT4_GPIO_Port GPIOB
#define KEY_OUT3_Pin GPIO_PIN_7
#define KEY_OUT3_GPIO_Port GPIOB
#define KEY_OUT2_Pin GPIO_PIN_8
#define KEY_OUT2_GPIO_Port GPIOB
#define KEY_OUT1_Pin GPIO_PIN_9
#define KEY_OUT1_GPIO_Port GPIOB
/* USER CODE BEGIN Private defines */

View File

@ -233,6 +233,7 @@ static void usbd_event_handler(uint8_t busid, uint8_t event)
break;
case USBD_EVENT_CONFIGURED:
hid_km_state = HID_STATE_IDLE;
HAL_GPIO_WritePin(LED_STAT_GPIO_Port, LED_STAT_Pin, GPIO_PIN_SET);
break;
case USBD_EVENT_SET_REMOTE_WAKEUP:
break;

View File

@ -123,8 +123,10 @@ int main(void)
if (key != bsp_key_none) { //有按键按下
if (event == bsp_key_event_long) { //按下超时
HAL_GPIO_WritePin(LED_STAT_GPIO_Port, LED_STAT_Pin, GPIO_PIN_SET);
bsp_key_out_set_event(key, bsp_key_event_press); //输出对应按键的短按事件 将该按键恢复至未触发状态
} else { //按下边沿
HAL_GPIO_WritePin(LED_STAT_GPIO_Port, LED_STAT_Pin, GPIO_PIN_RESET);
if (key == bsp_key1) { //触发USB键盘按键
hid_consumer_control_key_send(0, HID_CONSUMER_USAGE_PLAYPAUSE); //暂停/继续播放
hid_consumer_control_key_send(0, 0); //抬起
@ -283,25 +285,33 @@ static void MX_GPIO_Init(void)
__HAL_RCC_GPIOB_CLK_ENABLE();
/*Configure GPIO pin Output Level */
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);
HAL_GPIO_WritePin(GPIOA, KEY_OUT6_Pin|KEY_OUT5_Pin|KEY_OUT7_Pin|KEY_OUT8_Pin, GPIO_PIN_SET);
/*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;
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(LED_STAT_GPIO_Port, LED_STAT_Pin, GPIO_PIN_RESET);
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(GPIOB, KEY_OUT4_Pin|KEY_OUT3_Pin|KEY_OUT2_Pin|KEY_OUT1_Pin, GPIO_PIN_SET);
/*Configure GPIO pins : KEY_OUT6_Pin KEY_OUT5_Pin KEY_OUT7_Pin KEY_OUT8_Pin */
GPIO_InitStruct.Pin = KEY_OUT6_Pin|KEY_OUT5_Pin|KEY_OUT7_Pin|KEY_OUT8_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_OD;
GPIO_InitStruct.Pull = GPIO_PULLUP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
/*Configure GPIO pin : PIR_Pin */
GPIO_InitStruct.Pin = PIR_Pin;
/*Configure GPIO pin : LED_STAT_Pin */
GPIO_InitStruct.Pin = LED_STAT_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(PIR_GPIO_Port, &GPIO_InitStruct);
HAL_GPIO_Init(LED_STAT_GPIO_Port, &GPIO_InitStruct);
/*Configure GPIO pin : LED_PWR_Pin */
GPIO_InitStruct.Pin = LED_PWR_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
GPIO_InitStruct.Pull = GPIO_PULLDOWN;
HAL_GPIO_Init(LED_PWR_GPIO_Port, &GPIO_InitStruct);
/*Configure GPIO pin : KEY_IN4_Pin */
GPIO_InitStruct.Pin = KEY_IN4_Pin;
@ -315,6 +325,13 @@ static void MX_GPIO_Init(void)
GPIO_InitStruct.Pull = GPIO_PULLUP;
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
/*Configure GPIO pins : KEY_OUT4_Pin KEY_OUT3_Pin KEY_OUT2_Pin KEY_OUT1_Pin */
GPIO_InitStruct.Pin = KEY_OUT4_Pin|KEY_OUT3_Pin|KEY_OUT2_Pin|KEY_OUT1_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_OD;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
/* USER CODE BEGIN MX_GPIO_Init_2 */
/* USER CODE END MX_GPIO_Init_2 */
}

View File

@ -403,6 +403,11 @@
<FileType>1</FileType>
<FilePath>..\Core\Src\bsp_key_in_out.c</FilePath>
</File>
<File>
<FileName>hid_keyboard_mouse.c</FileName>
<FileType>1</FileType>
<FilePath>..\Core\Src\hid_keyboard_mouse.c</FilePath>
</File>
<File>
<FileName>main.c</FileName>
<FileType>1</FileType>
@ -418,11 +423,6 @@
<FileType>1</FileType>
<FilePath>../Core/Src/stm32f0xx_hal_msp.c</FilePath>
</File>
<File>
<FileName>hid_keyboard_mouse.c</FileName>
<FileType>1</FileType>
<FilePath>..\Core\Src\hid_keyboard_mouse.c</FilePath>
</File>
</Files>
</Group>
<Group>

View File

@ -17,28 +17,29 @@ Mcu.Name=STM32F072C(8-B)Tx
Mcu.Package=LQFP48
Mcu.Pin0=PF0-OSC_IN
Mcu.Pin1=PF1-OSC_OUT
Mcu.Pin10=PA8
Mcu.Pin11=PA9
Mcu.Pin12=PA10
Mcu.Pin13=PA11
Mcu.Pin14=PA12
Mcu.Pin15=PA13
Mcu.Pin16=PA14
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=PA1
Mcu.Pin4=PA2
Mcu.Pin5=PA3
Mcu.Pin6=PA4
Mcu.Pin7=PA5
Mcu.Pin8=PA6
Mcu.Pin9=PA7
Mcu.PinsNb=23
Mcu.Pin10=PA11
Mcu.Pin11=PA12
Mcu.Pin12=PA13
Mcu.Pin13=PA14
Mcu.Pin14=PA15
Mcu.Pin15=PB3
Mcu.Pin16=PB4
Mcu.Pin17=PB5
Mcu.Pin18=PB6
Mcu.Pin19=PB7
Mcu.Pin2=PA2
Mcu.Pin20=PB8
Mcu.Pin21=PB9
Mcu.Pin22=VP_SYS_VS_Systick
Mcu.Pin23=VP_TIM6_VS_ClockSourceINT
Mcu.Pin3=PA3
Mcu.Pin4=PA4
Mcu.Pin5=PA5
Mcu.Pin6=PB12
Mcu.Pin7=PB14
Mcu.Pin8=PA9
Mcu.Pin9=PA10
Mcu.PinsNb=24
Mcu.ThirdPartyNb=0
Mcu.UserConstants=BSP_KEY_IN_OUT_INTERAEL_MS,10;BSP_KEY_IN_OUT_TIM,$$_TIM6_IP_HANDLE_$$
Mcu.UserName=STM32F072C8Tx
@ -51,22 +52,6 @@ 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
@ -89,7 +74,7 @@ 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_PuPd=GPIO_NOPULL
PA2.GPIO_Speed=GPIO_SPEED_FREQ_LOW
PA2.Locked=true
PA2.PinState=GPIO_PIN_SET
@ -97,52 +82,39 @@ 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_PuPd=GPIO_NOPULL
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_Label=KEY_OUT7
PA4.GPIO_ModeDefaultOutputPP=GPIO_MODE_OUTPUT_OD
PA4.GPIO_PuPd=GPIO_PULLUP
PA4.GPIO_PuPd=GPIO_NOPULL
PA4.GPIO_Speed=GPIO_SPEED_FREQ_LOW
PA4.Locked=true
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_Label=KEY_OUT8
PA5.GPIO_ModeDefaultOutputPP=GPIO_MODE_OUTPUT_OD
PA5.GPIO_PuPd=GPIO_PULLUP
PA5.GPIO_PuPd=GPIO_NOPULL
PA5.GPIO_Speed=GPIO_SPEED_FREQ_LOW
PA5.Locked=true
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.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.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
PA8.Locked=true
PA8.PinState=GPIO_PIN_SET
PA8.Signal=GPIO_Output
PA9.Locked=true
PA9.Mode=Asynchronous
PA9.Signal=USART1_TX
PB12.GPIOParameters=GPIO_Label
PB12.GPIO_Label=LED_STAT
PB12.Locked=true
PB12.Signal=GPIO_Output
PB14.GPIOParameters=GPIO_PuPd,GPIO_Label
PB14.GPIO_Label=LED_PWR
PB14.GPIO_PuPd=GPIO_PULLDOWN
PB14.Locked=true
PB14.Signal=GPIO_Input
PB3.GPIOParameters=GPIO_PuPd,GPIO_Label,GPIO_Mode
PB3.GPIO_Label=KEY_IN3
PB3.GPIO_Mode=GPIO_MODE_INPUT
@ -161,6 +133,38 @@ PB5.GPIO_Mode=GPIO_MODE_INPUT
PB5.GPIO_PuPd=GPIO_PULLUP
PB5.Locked=true
PB5.Signal=GPIO_Input
PB6.GPIOParameters=GPIO_Speed,PinState,GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultOutputPP
PB6.GPIO_Label=KEY_OUT4
PB6.GPIO_ModeDefaultOutputPP=GPIO_MODE_OUTPUT_OD
PB6.GPIO_PuPd=GPIO_NOPULL
PB6.GPIO_Speed=GPIO_SPEED_FREQ_LOW
PB6.Locked=true
PB6.PinState=GPIO_PIN_SET
PB6.Signal=GPIO_Output
PB7.GPIOParameters=GPIO_Speed,PinState,GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultOutputPP
PB7.GPIO_Label=KEY_OUT3
PB7.GPIO_ModeDefaultOutputPP=GPIO_MODE_OUTPUT_OD
PB7.GPIO_PuPd=GPIO_NOPULL
PB7.GPIO_Speed=GPIO_SPEED_FREQ_LOW
PB7.Locked=true
PB7.PinState=GPIO_PIN_SET
PB7.Signal=GPIO_Output
PB8.GPIOParameters=GPIO_Speed,PinState,GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultOutputPP
PB8.GPIO_Label=KEY_OUT2
PB8.GPIO_ModeDefaultOutputPP=GPIO_MODE_OUTPUT_OD
PB8.GPIO_PuPd=GPIO_NOPULL
PB8.GPIO_Speed=GPIO_SPEED_FREQ_LOW
PB8.Locked=true
PB8.PinState=GPIO_PIN_SET
PB8.Signal=GPIO_Output
PB9.GPIOParameters=GPIO_Speed,PinState,GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultOutputPP
PB9.GPIO_Label=KEY_OUT1
PB9.GPIO_ModeDefaultOutputPP=GPIO_MODE_OUTPUT_OD
PB9.GPIO_PuPd=GPIO_NOPULL
PB9.GPIO_Speed=GPIO_SPEED_FREQ_LOW
PB9.Locked=true
PB9.PinState=GPIO_PIN_SET
PB9.Signal=GPIO_Output
PF0-OSC_IN.Locked=true
PF0-OSC_IN.Signal=RCC_OSC_IN
PF1-OSC_OUT.Locked=true
@ -180,7 +184,7 @@ ProjectManager.FreePins=false
ProjectManager.HalAssertFull=false
ProjectManager.HeapSize=0x0
ProjectManager.KeepUserCode=true
ProjectManager.LastFirmware=true
ProjectManager.LastFirmware=false
ProjectManager.LibraryCopy=1
ProjectManager.MainLocation=Core/Src
ProjectManager.NoMain=false