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); }
/* * 初始化连接按键的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 }
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); }