O_嵌入式专题目录

单个IO呼吸灯

volatile uint32_t LED_i=0,LED_time=1600;
volatile uint8_t LED_Flag=0,iFor=0;
while (1)
{
    HAL_IWDG_Refresh(&hiwdg);
    if(LED_i>=(LED_time-1))
      LED_Flag=1;
    else if(LED_i<=1)
      LED_Flag=0;

    if(LED_Flag)
      LED_i--;
    else
      LED_i++;

    HAL_GPIO_WritePin(RS485_LED_GPIO_Port, RS485_LED_Pin, GPIO_PIN_SET);
    delay_LED(LED_i);
    HAL_GPIO_WritePin(RS485_LED_GPIO_Port, RS485_LED_Pin, GPIO_PIN_RESET);
    delay_LED(LED_time-LED_i);
}

7个IO控制惯性流水灯

  volatile uint32_t LED_i=0,LED_time=1600;
  volatile uint8_t LED_Flag=0,iFor=0;
  volatile uint8_t LED_PortValue=0x01;
  while (1)
  {
    HAL_IWDG_Refresh(&hiwdg);
    if(LED_i>=(LED_time-1))
      LED_Flag=1;
    else if(LED_i<=1)
      LED_Flag=0;

    if(LED_Flag)
      LED_i--;
    else
      LED_i++;
       
    if(LED_PortValue&0x01)
      HAL_GPIO_WritePin(RS485_LED_GPIO_Port, RS485_LED_Pin, GPIO_PIN_RESET);
    else
      HAL_GPIO_WritePin(RS485_LED_GPIO_Port, RS485_LED_Pin, GPIO_PIN_SET);
   
    if(LED_PortValue&0x02)
      HAL_GPIO_WritePin(Relay1_LED_GPIO_Port, Relay1_LED_Pin, GPIO_PIN_RESET);
    else
      HAL_GPIO_WritePin(Relay1_LED_GPIO_Port, Relay1_LED_Pin, GPIO_PIN_SET);
   
    if(LED_PortValue&0x04)
      HAL_GPIO_WritePin(Relay2_LED_GPIO_Port, Relay2_LED_Pin, GPIO_PIN_RESET);
    else
      HAL_GPIO_WritePin(Relay2_LED_GPIO_Port, Relay2_LED_Pin, GPIO_PIN_SET);
   
    if(LED_PortValue&0x08)
      HAL_GPIO_WritePin(PA1_LED_GPIO_Port, PA1_LED_Pin, GPIO_PIN_RESET);
    else
      HAL_GPIO_WritePin(PA1_LED_GPIO_Port, PA1_LED_Pin, GPIO_PIN_SET);
   
    if(LED_PortValue&0x10)
      HAL_GPIO_WritePin(PA2_LED_GPIO_Port, PA2_LED_Pin, GPIO_PIN_RESET);
    else
      HAL_GPIO_WritePin(PA2_LED_GPIO_Port, PA2_LED_Pin, GPIO_PIN_SET);
   
    if(LED_PortValue&0x20)
      HAL_GPIO_WritePin(PA3_LED_GPIO_Port, PA3_LED_Pin, GPIO_PIN_RESET);
    else
      HAL_GPIO_WritePin(PA3_LED_GPIO_Port, PA3_LED_Pin, GPIO_PIN_SET);
   
    if(LED_PortValue&0x40)
      HAL_GPIO_WritePin(PA4_LED_GPIO_Port, PA4_LED_Pin, GPIO_PIN_RESET);
    else
      HAL_GPIO_WritePin(PA4_LED_GPIO_Port, PA4_LED_Pin, GPIO_PIN_SET);
   
    delay_LED(LED_i);
   
    HAL_GPIO_TogglePin(RS485_LED_GPIO_Port, RS485_LED_Pin);
    HAL_GPIO_TogglePin(Relay1_LED_GPIO_Port, Relay1_LED_Pin);
    HAL_GPIO_TogglePin(Relay2_LED_GPIO_Port, Relay2_LED_Pin);
    HAL_GPIO_TogglePin(PA1_LED_GPIO_Port, PA1_LED_Pin);
    HAL_GPIO_TogglePin(PA2_LED_GPIO_Port, PA2_LED_Pin);
    HAL_GPIO_TogglePin(PA3_LED_GPIO_Port, PA3_LED_Pin);
    HAL_GPIO_TogglePin(PA4_LED_GPIO_Port, PA4_LED_Pin);
    delay_LED(LED_time-LED_i);

    iFor++;
    if(iFor>10)
    {
      iFor=0;
      if(LED_PortValue&0x40)
        LED_PortValue=LED_PortValue<<1;
      else
        LED_PortValue=(LED_PortValue<<1)+0x01;
    }
  }

7个IO控制呼吸流水灯

  volatile uint32_t iCount[7]={0},LED_i[7]={0},LED_time=600,iFor=0,jFor=0;
  volatile uint8_t LED_Flag[7]={0},LED_PortValue=0x00,LED_Wide=60;
  for(iFor=0;iFor<7;iFor++)
    LED_i[iFor]=LED_Wide*iFor;
 
  while (1)
  {
    HAL_IWDG_Refresh(&hiwdg);

   
    if(iCount[0]<LED_i[0])
      LED_PortValue=LED_PortValue|0x01;
    else
      LED_PortValue=LED_PortValue&0x7E;
    if(iCount[1]<LED_i[1])
      LED_PortValue=LED_PortValue|0x02;
    else
      LED_PortValue=LED_PortValue&0x7D;
    if(iCount[2]<LED_i[2])
      LED_PortValue=LED_PortValue|0x04;
    else
      LED_PortValue=LED_PortValue&0x7B;
    if(iCount[3]<LED_i[3])
      LED_PortValue=LED_PortValue|0x08;
    else
      LED_PortValue=LED_PortValue&0x77;
    if(iCount[4]<LED_i[4])
      LED_PortValue=LED_PortValue|0x10;
    else
      LED_PortValue=LED_PortValue&0x6F;
    if(iCount[5]<LED_i[5])
      LED_PortValue=LED_PortValue|0x20;
    else
      LED_PortValue=LED_PortValue&0x5F;
    if(iCount[6]<LED_i[6])
      LED_PortValue=LED_PortValue|0x40;
    else
      LED_PortValue=LED_PortValue&0x3F;
   
   
    for(iFor=0;iFor<7;iFor++)
    {
      iCount[iFor]++;
      if(iCount[iFor]>(LED_time-1))
      {
        iCount[iFor]=0;
        if(LED_i[iFor]>=(LED_time-1))
          LED_Flag[iFor]=1;
        else if(LED_i[iFor]<=1)
          LED_Flag[iFor]=0;
        if(LED_Flag[iFor])
          LED_i[iFor]--;
        else
          LED_i[iFor]++;
      }
    }
   
   
    if(LED_PortValue&0x01)
      HAL_GPIO_WritePin(RS485_LED_GPIO_Port, RS485_LED_Pin, GPIO_PIN_RESET);
    else
      HAL_GPIO_WritePin(RS485_LED_GPIO_Port, RS485_LED_Pin, GPIO_PIN_SET);
   
    if(LED_PortValue&0x02)
      HAL_GPIO_WritePin(Relay1_LED_GPIO_Port, Relay1_LED_Pin, GPIO_PIN_RESET);
    else
      HAL_GPIO_WritePin(Relay1_LED_GPIO_Port, Relay1_LED_Pin, GPIO_PIN_SET);
   
    if(LED_PortValue&0x04)
      HAL_GPIO_WritePin(Relay2_LED_GPIO_Port, Relay2_LED_Pin, GPIO_PIN_RESET);
    else
      HAL_GPIO_WritePin(Relay2_LED_GPIO_Port, Relay2_LED_Pin, GPIO_PIN_SET);
   
    if(LED_PortValue&0x08)
      HAL_GPIO_WritePin(PA1_LED_GPIO_Port, PA1_LED_Pin, GPIO_PIN_RESET);
    else
      HAL_GPIO_WritePin(PA1_LED_GPIO_Port, PA1_LED_Pin, GPIO_PIN_SET);
   
    if(LED_PortValue&0x10)
      HAL_GPIO_WritePin(PA2_LED_GPIO_Port, PA2_LED_Pin, GPIO_PIN_RESET);
    else
      HAL_GPIO_WritePin(PA2_LED_GPIO_Port, PA2_LED_Pin, GPIO_PIN_SET);
   
    if(LED_PortValue&0x20)
      HAL_GPIO_WritePin(PA3_LED_GPIO_Port, PA3_LED_Pin, GPIO_PIN_RESET);
    else
      HAL_GPIO_WritePin(PA3_LED_GPIO_Port, PA3_LED_Pin, GPIO_PIN_SET);
   
    if(LED_PortValue&0x40)
      HAL_GPIO_WritePin(PA4_LED_GPIO_Port, PA4_LED_Pin, GPIO_PIN_RESET);
    else
      HAL_GPIO_WritePin(PA4_LED_GPIO_Port, PA4_LED_Pin, GPIO_PIN_SET);
  }

评论已关闭

Loading...
Fullscreen Image