/*----------------------------------------------------------------------- io初始化 -----------------------------------------------------------------------*/ void LCDGPIO_init() { LPLD_GPIO_Init(PTB,4,DIR_OUTPUT,OUTPUT_H,IRQC_DIS); LPLD_GPIO_Init(PTB,2,DIR_OUTPUT,OUTPUT_H,IRQC_DIS); LPLD_GPIO_Init(PTA,28,DIR_OUTPUT,OUTPUT_H,IRQC_DIS); LPLD_GPIO_Init(PTA,26,DIR_OUTPUT,OUTPUT_H,IRQC_DIS); LPLD_GPIO_Init(PTB,3,DIR_OUTPUT,OUTPUT_H,IRQC_DIS); //LPLD_GPIO_Init(PTA,24,DIR_OUTPUT,OUTPUT_H,IRQC_DIS);//bl使能背景灯 }
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_gpio2() { gpio_init_struct2.GPIO_PTx = PTC; gpio_init_struct2.GPIO_Pins = GPIO_Pin12|GPIO_Pin13|GPIO_Pin14|GPIO_Pin15; gpio_init_struct2.GPIO_Dir = DIR_INPUT; gpio_init_struct2.GPIO_PinControl = INPUT_PULL_DOWN|IRQC_DIS; LPLD_GPIO_Init(gpio_init_struct2); }
void gpio_init (void) { gpio_init_struct.GPIO_PTx = PTB; gpio_init_struct.GPIO_Pins = GPIO_Pin20|GPIO_Pin21|GPIO_Pin22|GPIO_Pin23; gpio_init_struct.GPIO_Dir = DIR_OUTPUT; gpio_init_struct.GPIO_Output = OUTPUT_H; gpio_init_struct.GPIO_PinControl = IRQC_DIS; LPLD_GPIO_Init(gpio_init_struct); }
void init_gpio1() { gpio_init_struct1.GPIO_PTx = PTC; gpio_init_struct1.GPIO_Pins = GPIO_Pin8|GPIO_Pin9|GPIO_Pin10|GPIO_Pin11; gpio_init_struct1.GPIO_Dir = DIR_OUTPUT; gpio_init_struct1.GPIO_Output = OUTPUT_H; gpio_init_struct1.GPIO_PinControl = IRQC_DIS; LPLD_GPIO_Init(gpio_init_struct1); }
/* * LPLD_SCCB_Init * 初始化SCCB所需引脚 */ void LPLD_SCCB_Init(void) { GPIO_InitTypeDef ptb; /********用户可修改值 开始***********/ ptb.GPIO_PTx = PTB; ptb.GPIO_Pins = GPIO_Pin0 | GPIO_Pin1; /********用户可修改值 结束***********/ ptb.GPIO_Dir = DIR_OUTPUT; ptb.GPIO_Output = OUTPUT_H; ptb.GPIO_PinControl = NULL; LPLD_GPIO_Init(ptb); }
/* * 初始化连接LED灯的GPIO引脚 * */ void init_gpio() { #if(CARD) // 配置 PTD8~PTD15 为GPIO功能,输出,高电平,禁用中断 gpio_init_struct.GPIO_PTx = PTD; gpio_init_struct.GPIO_Pins = GPIO_Pin8_15; gpio_init_struct.GPIO_Dir = DIR_OUTPUT; gpio_init_struct.GPIO_Output = OUTPUT_H; gpio_init_struct.GPIO_PinControl = IRQC_DIS; LPLD_GPIO_Init(gpio_init_struct); #else gpio_init_struct.GPIO_PTx = PTB; gpio_init_struct.GPIO_Pins = GPIO_Pin20|GPIO_Pin21|GPIO_Pin22|GPIO_Pin23; gpio_init_struct.GPIO_Dir = DIR_OUTPUT; gpio_init_struct.GPIO_Output = OUTPUT_H; gpio_init_struct.GPIO_PinControl = IRQC_DIS; LPLD_GPIO_Init(gpio_init_struct); #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_all_pulse_counter() { GPIO_InitTypeDef gpio_init_struct={0}; gpio_init_struct.GPIO_PTx = PTA; gpio_init_struct.GPIO_Pins = GPIO_Pin12 | GPIO_Pin13; gpio_init_struct.GPIO_Dir = DIR_INPUT; gpio_init_struct.GPIO_PinControl = INPUT_PULL_UP | INPUT_PF_EN; LPLD_GPIO_Init(gpio_init_struct); //配置正交解码功能参数 FTM_InitTypeDef ftm_init_struct={0}; ftm_init_struct.FTM_Ftmx = FTM1; //只有FTM1和FTM2有正交解码功能 ftm_init_struct.FTM_Mode = FTM_MODE_QD; //正交解码功能 ftm_init_struct.FTM_QdMode = QD_MODE_PHAB; //AB相输入模式 //初始化FTM LPLD_FTM_Init(ftm_init_struct); //使能AB相输入通道 //PTB0引脚接A相输入、PTB1引脚接B相输入 LPLD_FTM_QD_Enable(FTM1, PTA12, PTA13); gpio_init_struct.GPIO_PTx = PTB; gpio_init_struct.GPIO_Pins = GPIO_Pin18 | GPIO_Pin19; gpio_init_struct.GPIO_Dir = DIR_INPUT; gpio_init_struct.GPIO_PinControl = INPUT_PULL_UP | INPUT_PF_EN; LPLD_GPIO_Init(gpio_init_struct); //配置正交解码功能参数 ftm_init_struct.FTM_Ftmx = FTM2; //只有FTM1和FTM2有正交解码功能 ftm_init_struct.FTM_Mode = FTM_MODE_QD; //正交解码功能 ftm_init_struct.FTM_QdMode = QD_MODE_PHAB; //AB相输入模式 //初始化FTM LPLD_FTM_Init(ftm_init_struct); //使能AB相输入通道 //PTB0引脚接A相输入、PTB1引脚接B相输入 LPLD_FTM_QD_Enable(FTM2, PTB18, PTB19); }
//------------------------------------------------------------------------------- void GPIO_Init(void) { /*蜂鸣器*/ gpio_init_struct0.GPIO_PTx = PTA; gpio_init_struct0.GPIO_Pins = GPIO_Pin9; gpio_init_struct0.GPIO_Dir = DIR_OUTPUT; gpio_init_struct0.GPIO_Output = OUTPUT_L; gpio_init_struct0.GPIO_PinControl = IRQC_DIS|OUTPUT_DSH; /*0LED初始化*/ gpio_init_struct1.GPIO_PTx = PTC; gpio_init_struct1.GPIO_Pins = GPIO_Pin16|GPIO_Pin17|GPIO_Pin18|GPIO_Pin19; gpio_init_struct1.GPIO_Dir = DIR_OUTPUT; gpio_init_struct1.GPIO_Output = OUTPUT_L; gpio_init_struct1.GPIO_PinControl = IRQC_DIS; /*按键触发接口E4到E7*/ gpio_init_struct2.GPIO_PTx = PTE; gpio_init_struct2.GPIO_Pins = GPIO_Pin4|GPIO_Pin5|GPIO_Pin6|GPIO_Pin7; gpio_init_struct2.GPIO_Dir = DIR_INPUT; gpio_init_struct2.GPIO_PinControl = INPUT_PULL_UP; LPLD_GPIO_Init(gpio_init_struct0); LPLD_GPIO_Init(gpio_init_struct1); LPLD_GPIO_Init(gpio_init_struct2); }
void infrare_init() { //前排红外front_infrare LPLD_GPIO_Init(PTB, 9, DIR_INPUT, INPUT_PUP, IRQC_DIS); LPLD_GPIO_Init(PTB, 10, DIR_INPUT, INPUT_PUP, IRQC_DIS); LPLD_GPIO_Init(PTB, 11, DIR_INPUT, INPUT_PUP, IRQC_DIS); LPLD_GPIO_Init(PTB, 18, DIR_INPUT, INPUT_PUP, IRQC_DIS); LPLD_GPIO_Init(PTB, 19, DIR_INPUT, INPUT_PUP, IRQC_DIS); LPLD_GPIO_Init(PTB, 20, DIR_INPUT, INPUT_PUP, IRQC_DIS); LPLD_GPIO_Init(PTB, 21, DIR_INPUT, INPUT_PUP, IRQC_DIS); LPLD_GPIO_Init(PTB, 22, DIR_INPUT, INPUT_PUP, IRQC_DIS); LPLD_GPIO_Init(PTC, 6, DIR_INPUT, INPUT_PUP, IRQC_DIS); LPLD_GPIO_Init(PTC, 7, DIR_INPUT, INPUT_PUP, IRQC_DIS); LPLD_GPIO_Init(PTC, 8, DIR_INPUT, INPUT_PUP, IRQC_DIS); //后排红外tail_infrare LPLD_GPIO_Init(PTB, 0, DIR_INPUT, INPUT_PUP, IRQC_DIS); LPLD_GPIO_Init(PTA, 5, DIR_INPUT, INPUT_PUP, IRQC_DIS); LPLD_GPIO_Init(PTA, 12, DIR_INPUT, INPUT_PUP, IRQC_DIS); LPLD_GPIO_Init(PTA, 13, DIR_INPUT, INPUT_PUP, IRQC_DIS); LPLD_GPIO_Init(PTA, 14, DIR_INPUT, INPUT_PUP, IRQC_DIS); LPLD_GPIO_Init(PTA, 16, DIR_INPUT, INPUT_PUP, IRQC_DIS); LPLD_GPIO_Init(PTA, 17, DIR_INPUT, INPUT_PUP, IRQC_DIS); LPLD_GPIO_Init(PTD, 1, DIR_INPUT, INPUT_PUP, IRQC_DIS); LPLD_GPIO_Init(PTD, 2, DIR_INPUT, INPUT_PUP, IRQC_DIS); LPLD_GPIO_Init(PTD, 3, DIR_INPUT, INPUT_PUP, IRQC_DIS); LPLD_GPIO_Init(PTB, 1, DIR_INPUT, INPUT_PUP, IRQC_DIS); //左侧红外left_infrare LPLD_GPIO_Init(PTE, 24, DIR_INPUT, INPUT_PUP, IRQC_DIS); LPLD_GPIO_Init(PTE, 25, DIR_INPUT, INPUT_PUP, IRQC_DIS); LPLD_GPIO_Init(PTE, 26, DIR_INPUT, INPUT_PUP, IRQC_DIS); //右侧红外right_infrare LPLD_GPIO_Init(PTC, 9, DIR_INPUT, INPUT_PUP, IRQC_DIS); LPLD_GPIO_Init(PTC, 12, DIR_INPUT, INPUT_PUP, IRQC_DIS); LPLD_GPIO_Init(PTC, 13, DIR_INPUT, INPUT_PUP, IRQC_DIS); LPLD_PIT_Init(PIT1,5000,infrare_update); }
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); }
void init_gpio() { //拨码开关 LPLD_GPIO_Init(PTE, 0, DIR_INPUT, INPUT_PUP, IRQC_DIS); LPLD_GPIO_Init(PTE, 1, DIR_INPUT, INPUT_PUP, IRQC_DIS); LPLD_GPIO_Init(PTE, 2, DIR_INPUT, INPUT_PUP, IRQC_DIS); LPLD_GPIO_Init(PTE, 3, DIR_INPUT, INPUT_PUP, IRQC_DIS); LPLD_GPIO_Init(PTE, 4, DIR_INPUT, INPUT_PUP, IRQC_DIS); LPLD_GPIO_Init(PTE, 5, DIR_INPUT, INPUT_PUP, IRQC_DIS); LPLD_GPIO_Init(PTE, 6, DIR_INPUT, INPUT_PUP, IRQC_DIS); //核心板指示灯 LPLD_GPIO_Init(PTA, 15, DIR_OUTPUT, OUTPUT_L, IRQC_DIS); //蜂鸣器 LPLD_GPIO_Init(PTB, 23, DIR_OUTPUT, OUTPUT_L, IRQC_DIS); //前排红外r1 LPLD_GPIO_Init(PTB, 9, DIR_INPUT, INPUT_PUP, IRQC_DIS); LPLD_GPIO_Init(PTB, 10, DIR_INPUT, INPUT_PUP, IRQC_DIS); LPLD_GPIO_Init(PTB, 11, DIR_INPUT, INPUT_PUP, IRQC_DIS); LPLD_GPIO_Init(PTB, 18, DIR_INPUT, INPUT_PUP, IRQC_DIS); LPLD_GPIO_Init(PTB, 19, DIR_INPUT, INPUT_PUP, IRQC_DIS); LPLD_GPIO_Init(PTB, 20, DIR_INPUT, INPUT_PUP, IRQC_DIS); LPLD_GPIO_Init(PTB, 21, DIR_INPUT, INPUT_PUP, IRQC_DIS); LPLD_GPIO_Init(PTB, 22, DIR_INPUT, INPUT_PUP, IRQC_DIS); LPLD_GPIO_Init(PTC, 6, DIR_INPUT, INPUT_PUP, IRQC_DIS); LPLD_GPIO_Init(PTC, 7, DIR_INPUT, INPUT_PUP, IRQC_DIS); LPLD_GPIO_Init(PTC, 8, DIR_INPUT, INPUT_PUP, IRQC_DIS); //后排红外r2 LPLD_GPIO_Init(PTD, 0, DIR_INPUT, INPUT_PUP, IRQC_DIS); LPLD_GPIO_Init(PTA, 5, DIR_INPUT, INPUT_PUP, IRQC_DIS); LPLD_GPIO_Init(PTA, 12, DIR_INPUT, INPUT_PUP, IRQC_DIS); LPLD_GPIO_Init(PTA, 13, DIR_INPUT, INPUT_PUP, IRQC_DIS); LPLD_GPIO_Init(PTA, 14, DIR_INPUT, INPUT_PUP, IRQC_DIS); LPLD_GPIO_Init(PTA, 16, DIR_INPUT, INPUT_PUP, IRQC_DIS); LPLD_GPIO_Init(PTA, 17, DIR_INPUT, INPUT_PUP, IRQC_DIS); //左侧红外r3 LPLD_GPIO_Init(PTE, 24, DIR_INPUT, INPUT_PUP, IRQC_DIS); LPLD_GPIO_Init(PTE, 25, DIR_INPUT, INPUT_PUP, IRQC_DIS); LPLD_GPIO_Init(PTE, 26, DIR_INPUT, INPUT_PUP, IRQC_DIS); //右侧红外r4 LPLD_GPIO_Init(PTC, 9, DIR_INPUT, INPUT_PUP, IRQC_DIS); LPLD_GPIO_Init(PTC, 12, DIR_INPUT, INPUT_PUP, IRQC_DIS); LPLD_GPIO_Init(PTC, 13, DIR_INPUT, INPUT_PUP, IRQC_DIS); // 接近开关 //LPLD_GPIO_Init(PTB, 0, DIR_INPUT, INPUT_PUP, IRQC_DIS); }