2.1GPIO 和HAL代码
目录
1.初尝试 HAL库初步尝试——复制函数
2.点蜂鸣器 点蜂鸣器 if(read){write}else{write}
3.点蜂鸣器+继电器+光敏电阻 点蜂鸣器+继电器+光敏电阻(消抖)
注意:代码写在两句之间![](https://i-blog.csdnimg.cn/blog_migrate/c0ce7df584829c236c04d0f1be5676bd.png)
1.初尝试
从stm32f1xx_hal_GPIO.c文件中复制代码
GPIO_PinState为返回值:0或1
2.点蜂鸣器
按下按键4,蜂鸣器响应,松开停止
3.点蜂鸣器+继电器+光敏电阻
按下按键4,蜂鸣器响应,再按一下停止(延时120ms消抖)
光敏电阻(配LED1):
持续检测,一直输出高电平或低电平的信号,不用消抖
while (1)
{
/* USER CODE END WHILE */
if(0==HAL_GPIO_ReadPin(KEY0_GPIO_Port,KEY0_Pin))//点蜂鸣器
{
HAL_Delay(10);
if(0==HAL_GPIO_ReadPin(KEY0_GPIO_Port,KEY0_Pin))
HAL_GPIO_TogglePin(BEEP_GPIO_Port, BEEP_Pin);
}
if(0==HAL_GPIO_ReadPin(KEY1_GPIO_Port,KEY1_Pin))//点继电器
{
HAL_Delay(10);
if(0==HAL_GPIO_ReadPin(KEY1_GPIO_Port,KEY1_Pin))
HAL_GPIO_TogglePin(JDQ_GPIO_Port, JDQ_Pin);
}
if(0==HAL_GPIO_ReadPin(SUN_GPIO_Port,SUN_Pin ))//点光敏电阻
{
HAL_GPIO_WritePin(LED1_GPIO_Port,LED1_Pin,0);
}
else
{
HAL_GPIO_WritePin(LED1_GPIO_Port,LED1_Pin,1);
}
/* USER CODE BEGIN 3 */
}
/* USER CODE END 3 */
}
现象:如图红字