123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119 |
- #include "gpio.h"
- #include "board_gpio.h"
- /**
- ******************************************************************************
- ** \brief 初始化外部GPIO引脚
- **
- ** \return 无
- ******************************************************************************/
- void board_GpioInit(void)
- {
- stc_gpio_cfg_t GpioInitStruct;
- DDL_ZERO_STRUCT(GpioInitStruct);
-
- Sysctrl_SetPeripheralGate(SysctrlPeripheralGpio,TRUE);
- ///< 端口方向配置->输入
- GpioInitStruct.enDir = GpioDirOut;
- ///< 端口驱动能力配置->高驱动能力
- GpioInitStruct.enDrv = GpioDrvH;
- ///< 端口上下拉配置->上拉
- GpioInitStruct.enPu = GpioPuDisable;
- GpioInitStruct.enPd = GpioPdDisable;
- ///< 端口开漏输出配置->开漏输出关闭
- GpioInitStruct.enOD = GpioOdDisable;
- ///< 端口输入/输出值寄存器总线控制模式配置->AHB
- GpioInitStruct.enCtrlMode = GpioAHB;
-
-
- /****************************** LED指示灯***************************/
-
- GpioInitStruct.enDrv = GpioDrvH;
- GpioInitStruct.enDir = GpioDirOut;
- Gpio_Init(LED_TX_PORT, LED_TX_PIN, &GpioInitStruct);
- Gpio_Init(LED_RX_PORT, LED_RX_PIN, &GpioInitStruct);
-
- Gpio_WriteOutputIO(LED_TX_PORT, LED_TX_PIN, TRUE); //输出高,熄灭LED
- Gpio_WriteOutputIO(LED_RX_PORT, LED_RX_PIN, TRUE); //输出高,熄灭LED
-
-
- /******************************发射按键输入脚 *******************************/
-
- ///< 端口方向配置->输入
- GpioInitStruct.enDir = GpioDirIn;
- ///< 端口驱动能力配置->高驱动能力
- GpioInitStruct.enDrv = GpioDrvH;
- ///< 端口上下拉配置->上拉
- GpioInitStruct.enPu = GpioPuEnable;
- GpioInitStruct.enPd = GpioPdDisable;
- ///< 端口开漏输出配置->开漏输出关闭
- GpioInitStruct.enOD = GpioOdDisable;
- ///< 端口输入/输出值寄存器总线控制模式配置->AHB
- GpioInitStruct.enCtrlMode = GpioAHB;
-
- ///< KEY按键初始化
- Gpio_Init(GPIO_PORT_KEY, GPIO_PIN_KEY, &GpioInitStruct);
-
-
- /********************************* RF IRQ | RF RST ******************************************/
- ///< 端口方向配置->输入
- GpioInitStruct.enDir = GpioDirIn;
- ///< 端口驱动能力配置->高驱动能力
- GpioInitStruct.enDrv = GpioDrvH;
- ///< 端口上下拉配置->上拉
- GpioInitStruct.enPu = GpioPuDisable;
- GpioInitStruct.enPd = GpioPdDisable;
- ///< 端口开漏输出配置->开漏输出关闭
- GpioInitStruct.enOD = GpioOdDisable;
- ///< 端口输入/输出值寄存器总线控制模式配置->AHB
- GpioInitStruct.enCtrlMode = GpioAHB;
-
- ///< GPIO IO rf_irq 初始化
- Gpio_Init(RADIO_IRQ_PORT, RADIO_IRQ_PIN, &GpioInitStruct);
-
- ///< 打开并配置 rf_irq 为上升沿中断
- Gpio_EnableIrq(RADIO_IRQ_PORT, RADIO_IRQ_PIN, GpioIrqRising);
-
- ///< 使能端口系统中断
- EnableNvic(PORTA_IRQn, IrqLevel3, TRUE);
-
-
- ///< 端口方向配置->输出
- GpioInitStruct.enDir = GpioDirOut;
-
- ///< GPIO IO rf_reset初始化
- Gpio_Init(RADIO_RST_POT, RADIO_RST_PIN, &GpioInitStruct);
-
- }
- void App_LowPowerModeGpioSet(void)
- {
- ///< 打开GPIO外设时钟门控
- Sysctrl_SetPeripheralGate(SysctrlPeripheralGpio, TRUE);
- //swd as gpio
- //Sysctrl_SetFunc(SysctrlSWDUseIOEn, TRUE);
- ///< 配置为数字端口
- M0P_GPIO->PAADS = 0;
- M0P_GPIO->PBADS = 0;
- M0P_GPIO->PCADS = 0;
- M0P_GPIO->PDADS = 0;
- ///< 配置为端口输入
- M0P_GPIO->PADIR = 0XFFFF;
- M0P_GPIO->PBDIR = 0XFFFF;
- M0P_GPIO->PCDIR = 0XFFFF;
- M0P_GPIO->PDDIR = 0XFFFF;
- ///< 输入下拉
- M0P_GPIO->PAPD = 0xFFFF;
- M0P_GPIO->PBPD = 0xFFFF;
- M0P_GPIO->PCPD = 0xFFFF;
- M0P_GPIO->PDPD = 0xFFFF;
- }
|