#include "../main/SystemInclude.h" /*****GPIO初始化*****/ void SystemGPIOInit(void) { GPIO_InitTypeDef GPIO_InitStruct; GPIO_InitStruct.Pin = GPIO_PIN_All; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Current = GPIO_CURRENT_2mA; GPIO_InitStruct.Pull = GPIO_PULLUP; GPIO_InitStruct.SchmittTrigger = ENABLE; GPIO_InitStruct.Alternate = GPIOx_AF_GPIO; // // AF为普通IO LHL_GPIO_Init(pGPIO0, &GPIO_InitStruct); LHL_GPIO_Init(pGPIO1, &GPIO_InitStruct); GPIO_InitStruct.Pin &= ~(GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3 | GPIO_PIN_4); //避开XIN XOUT SWDIO SWCLK LHL_GPIO_Init(pGPIO2, &GPIO_InitStruct); // TEST_PIN_OUT(); // SET_PIN(GPIO1, GPIO_PIN_7); //// // TDU_SET_PIN_OUT(); // CLR_TDU_SET_PIN(); //// SET_TDU_SET_PIN(); // // HEATING_PIN_OUT(); // CLR_HEATING_PIN(); //// SET_HEATING_PIN(); // // HP_CON_PIN_OUT(); //// CLR_HP_CON_PIN(); // SET_HP_CON_PIN(); } /*****输出*****/ void EnableOutput(GPIO_TypeDef* GPIOx, uint16_t GPIO_PinPos) { GPIOx->OE |= 1<IE &= ~(1<DR &= ~(3u << (GPIO_PinPos * 2)); GPIOx->DR |= ((uint32_t)GPIO_CURRENT_2mA << (GPIO_PinPos * 2)); // 推挽输出设定 GPIOx->OD &= ~(1u << GPIO_PinPos); // // 开漏输出设定 // GPIOx->OD |= (1u << GPIO_PinPos); } /*****输入*****/ void EnableInput(GPIO_TypeDef* GPIOx, uint16_t GPIO_PinPos) { GPIOx->OE &= ~(1u << GPIO_PinPos); GPIOx->IE |= (1u << GPIO_PinPos); } /*****上拉*****/ void EnablePullUp(GPIO_TypeDef* GPIOx, uint16_t GPIO_PinPos) { GPIOx->PDE &= ~(1u << GPIO_PinPos); GPIOx->PUE |= (1u << GPIO_PinPos); } /*****下拉*****/ void EnablePullDown(GPIO_TypeDef* GPIOx, uint16_t GPIO_PinPos) { GPIOx->PUE &= ~(1u << GPIO_PinPos); GPIOx->PDE |= (1u << GPIO_PinPos); }