Esempio n. 1
0
void main (void)
{
  int i; 
  LPLD_Nrf24L01_Init();
#if NRF24L01_WORKMODE == NRF24L01_TX_WORKMODE 
  gpio_init_struct.GPIO_PTx = PTB;        //PORTB
  gpio_init_struct.GPIO_Pins = GPIO_Pin6; //引脚6
  gpio_init_struct.GPIO_Dir = DIR_INPUT;  //输入
  gpio_init_struct.GPIO_PinControl = INPUT_PULL_UP|IRQC_FA;  //内部上拉|下降沿中断
  gpio_init_struct.GPIO_Isr = portb_handle;        //中断函数
  
  LPLD_GPIO_Init(gpio_init_struct);
  LPLD_GPIO_EnableIrq(gpio_init_struct); //内部下拉,使能开发板上的按键 S1 PORTB6
  LPLD_Nrf24L01_TxModeInit();
#else
  gpio_init_struct.GPIO_PTx = PTC;        //PORTC
  gpio_init_struct.GPIO_Pins = GPIO_Pin1; //引脚1
  gpio_init_struct.GPIO_Dir = DIR_INPUT;  //输入
  gpio_init_struct.GPIO_PinControl = INPUT_PULL_DOWN|IRQC_FA;  //内部下拉|下降沿中断
  gpio_init_struct.GPIO_Isr = portc_handle;      //中断函数
    
  LPLD_GPIO_Init(gpio_init_struct);
  LPLD_GPIO_EnableIrq(gpio_init_struct); //内部下拉,使能PORTC1作为NRF24L01的IRQ中断
  LPLD_Nrf24L01_RxModeInit();
#endif
   
  while(1)
  {
#if NRF24L01_WORKMODE == NRF24L01_TX_WORKMODE
    if(Flag_Smitte)
    {
      for(i = 0 ;i <32 ;i++)//设置发送的32个字节数据
      {
        tx_buf[i] = i;
      }
      if(LPLD_Nrf24L01_SendFrame(tx_buf,NRF24L01_PLOAD_LEN))
      {
        printf("Nrf24l01 Send Succeed!!\r\n");
      }
      else
      {
        printf("Nrf24l01 Send Error!!\r\n");
      }
      Flag_Smitte = 0;
    }
#endif
    
  }
}
void init_gpio_PE24()
{
  
  gpio_init_struct.GPIO_PTx = PTD;
  gpio_init_struct.GPIO_Pins = GPIO_Pin7;
  gpio_init_struct.GPIO_Dir = DIR_INPUT;
  gpio_init_struct.GPIO_Isr = buttonsetisr;
  gpio_init_struct.GPIO_PinControl = INPUT_PULL_UP|IRQC_FA;     //内部上拉|下降沿中断
  LPLD_GPIO_Init(gpio_init_struct);
  LPLD_GPIO_EnableIrq(gpio_init_struct);
  
  gpio_init_struct.GPIO_PTx = PTA;
  gpio_init_struct.GPIO_Pins = GPIO_Pin6|GPIO_Pin8|GPIO_Pin10;
  gpio_init_struct.GPIO_Dir = DIR_INPUT;
  gpio_init_struct.GPIO_Isr = buttonisr;
  gpio_init_struct.GPIO_PinControl = INPUT_PULL_UP|IRQC_FA;     //内部上拉|下降沿中断
  LPLD_GPIO_Init(gpio_init_struct);
  LPLD_GPIO_EnableIrq(gpio_init_struct);
  
  
  
}
Esempio n. 3
0
/*
 * 初始化连接按键的GPIO引脚
 *
 */
void init_gpio()
{

#if(INT) //如果为中断方式
  // 配置 PTB7、PTB6 为GPIO功能,输入,内部上拉,上升沿产生中断
  gpio_init_struct.GPIO_PTx = PTB;      //PORTB
  gpio_init_struct.GPIO_Pins = GPIO_Pin6|GPIO_Pin7;     //引脚6、7
  gpio_init_struct.GPIO_Dir = DIR_INPUT;        //输入
  gpio_init_struct.GPIO_PinControl = INPUT_PULL_UP|IRQC_FA;     //内部上拉|上升沿中断
  gpio_init_struct.GPIO_Isr = portb_isr;        //中断函数
  LPLD_GPIO_Init(gpio_init_struct);
  //使能中断
  LPLD_GPIO_EnableIrq(gpio_init_struct);
#else //如果为查询方式
  // 配置 PTB7、PTB6 为GPIO功能,输入,内部上拉,不产生中断
  gpio_init_struct.GPIO_PTx = PTB;      //PORTB
  gpio_init_struct.GPIO_Pins = GPIO_Pin6|GPIO_Pin7;     //引脚6、7
  gpio_init_struct.GPIO_Dir = DIR_INPUT;        //输入
  gpio_init_struct.GPIO_PinControl = INPUT_PULL_UP|IRQC_DIS;     //内部上拉|不产生中断
  LPLD_GPIO_Init(gpio_init_struct);
#endif
  
}
Esempio n. 4
0
void init_gpio()
{
    GPIO_InitTypeDef gpio_init_struct={0};
    
    gpio_init_struct.GPIO_PTx = PTC;              //PORTC
    gpio_init_struct.GPIO_Pins = GPIO_Pin3|GPIO_Pin4|GPIO_Pin5|GPIO_Pin6|GPIO_Pin7|GPIO_Pin8;     //引脚3、4、5、6、7、8
    gpio_init_struct.GPIO_Dir = DIR_INPUT;        //输入
    gpio_init_struct.GPIO_PinControl = INPUT_PF_EN|IRQC_FA;   //输入低通滤波,下降沿中断
    gpio_init_struct.GPIO_Isr = portc_isr;        //中断函数
    LPLD_GPIO_Init(gpio_init_struct);
    //使能中断
    LPLD_GPIO_EnableIrq(gpio_init_struct);
    
    //CCD1
    gpio_init_struct.GPIO_PTx = PTB;
    gpio_init_struct.GPIO_Pins = GPIO_Pin20;
    gpio_init_struct.GPIO_Dir = DIR_OUTPUT;
    gpio_init_struct.GPIO_Output=OUTPUT_L;
    gpio_init_struct.GPIO_PinControl = IRQC_DIS;
    LPLD_GPIO_Init(gpio_init_struct);
    gpio_init_struct.GPIO_PTx = PTC;
    gpio_init_struct.GPIO_Pins = GPIO_Pin9;
    gpio_init_struct.GPIO_Dir = DIR_OUTPUT;
    gpio_init_struct.GPIO_Output=OUTPUT_L;
    gpio_init_struct.GPIO_PinControl = IRQC_DIS;
    LPLD_GPIO_Init(gpio_init_struct);
    
    //CCD2
    gpio_init_struct.GPIO_PTx = PTA;
    gpio_init_struct.GPIO_Pins = GPIO_Pin16 | GPIO_Pin19;
    gpio_init_struct.GPIO_Dir = DIR_OUTPUT;
    gpio_init_struct.GPIO_Output=OUTPUT_L;
    gpio_init_struct.GPIO_PinControl = IRQC_DIS;
    LPLD_GPIO_Init(gpio_init_struct);
    
    //CCD3
    //    gpio_init_struct.GPIO_PTx = PTB;
    //    gpio_init_struct.GPIO_Pins = GPIO_Pin0 | GPIO_Pin1;
    //    gpio_init_struct.GPIO_Dir = DIR_OUTPUT;
    //    gpio_init_struct.GPIO_Output=OUTPUT_L;
    //    gpio_init_struct.GPIO_PinControl = IRQC_DIS;
    //    LPLD_GPIO_Init(gpio_init_struct);
    
    //光电管 直角检测 
    gpio_init_struct.GPIO_PTx = PTB;
    gpio_init_struct.GPIO_Pins = GPIO_Pin2 | GPIO_Pin9 | GPIO_Pin10 | GPIO_Pin16;
    gpio_init_struct.GPIO_Dir = DIR_INPUT;
    gpio_init_struct.GPIO_PinControl = INPUT_PULL_DOWN | IRQC_DIS;
    LPLD_GPIO_Init(gpio_init_struct);
    
    //蜂鸣器
    gpio_init_struct.GPIO_PTx = PTB;
    gpio_init_struct.GPIO_Pins = GPIO_Pin21;
    gpio_init_struct.GPIO_Dir = DIR_OUTPUT;
    gpio_init_struct.GPIO_Output=OUTPUT_L;
    gpio_init_struct.GPIO_PinControl = IRQC_DIS;
    LPLD_GPIO_Init(gpio_init_struct);
    
    //拨码开关
    gpio_init_struct.GPIO_PTx = PTD;
    gpio_init_struct.GPIO_Pins = GPIO_Pin1 | GPIO_Pin2 | GPIO_Pin3;
    gpio_init_struct.GPIO_Dir = DIR_INPUT;
    gpio_init_struct.GPIO_PinControl = IRQC_DIS | INPUT_PULL_DOWN;
    LPLD_GPIO_Init(gpio_init_struct);
    
    //备用IO
    //    gpio_init_struct.GPIO_PTx = PTA;
    //    gpio_init_struct.GPIO_Pins = GPIO_Pin4 | GPIO_Pin5;
    //    gpio_init_struct.GPIO_Dir = DIR_OUTPUT;
    //    gpio_init_struct.GPIO_Output=OUTPUT_L;
    //    gpio_init_struct.GPIO_PinControl = IRQC_DIS;
    //    LPLD_GPIO_Init(gpio_init_struct);
}