作业1:光电开关,检测到光电开关发生变化打开风扇。

while (1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_2)==GPIO_PIN_RESET) //PB2光电开关,GPIO_PIN_RESET==0
{
HAL_Delay(300); //300ms
while(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_2)==GPIO_PIN_RESET);
HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_6); //翻转PC6风扇
}
}
作业2:火焰传感器,检测到有明火靠近时打开蜂鸣器报警。

while (1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_3)==GPIO_PIN_SET) //PB3火焰感应,GPIO_PIN_RESET==0
{
//HAL_Delay(300); //300ms
//while(HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_3)==GPIO_PIN_RESET);
//HAL_GPIO_TogglePin(GPIOA,GPIO_PIN_15); //翻转PA15
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_15,GPIO_PIN_SET); //打开PA15
}
else
{
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_15,GPIO_PIN_RESET); //关闭PA15
}
}