NULL
This commit is contained in:
102
user/MCU/lhl_gpio.c
Executable file → Normal file
102
user/MCU/lhl_gpio.c
Executable file → Normal file
@@ -1,88 +1,68 @@
|
||||
#include "../main/SystemInclude.h"
|
||||
|
||||
/**------------------------------------------------------------------------
|
||||
* @brief ϵͳ GPIO <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊģ<CEAA><C4A3>ģʽ<C4A3>Խ<EFBFBD><D4BD><EFBFBD><CDB9><EFBFBD>
|
||||
* @note GPIO0 <20><> GPIO1 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊģ<CEAA><C4A3>ģʽ<C4A3><CABD>GPIO2 <20>ܿ<EFBFBD> XIN/XOUT/SWDIO/SWCLK <20><><EFBFBD>ţ<EFBFBD>
|
||||
* <20><> GPIO_PIN_1/2/3/4 <20><><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC>״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊģ<CEAA><C4A3>ģʽ<C4A3><CABD>
|
||||
* @param <20><>
|
||||
* @example SystemGPIOInit();
|
||||
**/
|
||||
|
||||
/*****GPIO<49><4F>ʼ<EFBFBD><CABC>*****/
|
||||
void SystemGPIOInit(void)
|
||||
{
|
||||
GPIO_InitTypeDef GPIO_InitStruct;
|
||||
|
||||
GPIO_InitStruct.Pin = GPIO_PIN_All; //<2F><><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; //ģʽ<C4A3><CABD><EFBFBD><EFBFBD> GPIO_MODE_INPUT GPIO_MODE_OUTPUT_PP GPIO_MODE_OUTPUT_OD
|
||||
GPIO_InitStruct.Current = GPIO_CURRENT_2mA; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
GPIO_InitStruct.Pull = GPIO_PULLUP; //Ĭ<><C4AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD> GPIO_PULLDOWN GPIO_NOPULL
|
||||
GPIO_InitStruct.SchmittTrigger = ENABLE; //<2F><><EFBFBD><EFBFBD>ʩ<EFBFBD><CAA9><EFBFBD>ش<EFBFBD><D8B4><EFBFBD><EFBFBD><EFBFBD>
|
||||
GPIO_InitStruct.Alternate = GPIOx_AF_GPIO; //<2F><><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>ͨIO
|
||||
|
||||
LHL_GPIO_Init(GPIO0, &GPIO_InitStruct);
|
||||
LHL_GPIO_Init(GPIO1, &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Ϊ<EFBFBD><EFBFBD>ͨ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); //<2F>ܿ<EFBFBD>XIN XOUT SWDIO SWCLK
|
||||
LHL_GPIO_Init(GPIO2, &GPIO_InitStruct);
|
||||
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();
|
||||
}
|
||||
|
||||
/**------------------------------------------------------------------------
|
||||
* @brief ʹ<><CAB9>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ
|
||||
* @param GPIOx: GPIO <20>˿<EFBFBD> (pGPIO0/pGPIO1/pGPIO2)
|
||||
* @param GPIO_PinPos: <20><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB> (0~15)
|
||||
* @note <20><><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>룬<EFBFBD><EBA3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD>죨ͨ<ECA3A8><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD> OD λ<><CEBB><EFBFBD><EFBFBD>
|
||||
* <20><><EFBFBD>迪©<E8BFAA><C2A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><D6B6><EFBFBD> OD <20>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD>
|
||||
* @example EnableOutput(pGPIO0, 3); // ʹ<><CAB9> P0.3 Ϊ<><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
**/
|
||||
/*****<2A><><EFBFBD><EFBFBD>*****/
|
||||
void EnableOutput(GPIO_TypeDef* GPIOx, uint16_t GPIO_PinPos)
|
||||
{
|
||||
GPIOx->OE |= 1<<GPIO_PinPos; //ʹ<><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
GPIOx->IE &= ~(1<<GPIO_PinPos); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
GPIOx->OE |= 1<<GPIO_PinPos;
|
||||
GPIOx->IE &= ~(1<<GPIO_PinPos);
|
||||
// <20><><EFBFBD>ö˿ڵ<CBBF><DAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
GPIOx->DR &= ~(3u << (GPIO_PinPos * 2));
|
||||
GPIOx->DR |= ((uint32_t)GPIO_CURRENT_2mA << (GPIO_PinPos * 2));
|
||||
|
||||
// <20><><EFBFBD>ö˿ڵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
GPIOx->DR &= ~(3u << (GPIO_PinPos * 2));
|
||||
GPIOx->DR |= ((uint32_t)GPIO_CURRENT_4mA<< (GPIO_PinPos * 2));
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>趨(<28><>ͨIO)
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>趨
|
||||
GPIOx->OD &= ~(1u << GPIO_PinPos);
|
||||
// <20><>©<EFBFBD><C2A9><EFBFBD><EFBFBD><EFBFBD>趨
|
||||
// // <20><>©<EFBFBD><C2A9><EFBFBD><EFBFBD><EFBFBD>趨
|
||||
// GPIOx->OD |= (1u << GPIO_PinPos);
|
||||
}
|
||||
|
||||
/**------------------------------------------------------------------------
|
||||
* @brief ʹ<><CAB9>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>ģʽ
|
||||
* @param GPIOx: GPIO <20>˿<EFBFBD> (pGPIO0/pGPIO1/pGPIO2)
|
||||
* @param GPIO_PinPos: <20><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB> (0~15)
|
||||
* @note <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD><EFBFBD>롣<EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>赥<EFBFBD><E8B5A5><EFBFBD><EFBFBD><EFBFBD>á<EFBFBD>
|
||||
* @example EnableInput(pGPIO0, 3); // ʹ<><CAB9> P0.3 Ϊ<><CEAA><EFBFBD><EFBFBD>
|
||||
**/
|
||||
/*****<2A><><EFBFBD><EFBFBD>*****/
|
||||
void EnableInput(GPIO_TypeDef* GPIOx, uint16_t GPIO_PinPos)
|
||||
{
|
||||
GPIOx->OE &= ~(1u << GPIO_PinPos);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
GPIOx->IE |= (1u << GPIO_PinPos); //ʹ<><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
GPIOx->OE &= ~(1u << GPIO_PinPos);
|
||||
GPIOx->IE |= (1u << GPIO_PinPos);
|
||||
}
|
||||
|
||||
/**------------------------------------------------------------------------
|
||||
* @brief <20><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* @param GPIOx: GPIO <20>˿<EFBFBD> (pGPIO0/pGPIO1/pGPIO2)
|
||||
* @param GPIO_PinPos: <20><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB> (0~15)
|
||||
* @note <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>ģʽ<C4A3><CABD>
|
||||
* @example EnablePullUp(pGPIO0, 3); // ʹ<><CAB9> P0.3 <20>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD>
|
||||
**/
|
||||
/*****<2A><><EFBFBD><EFBFBD>*****/
|
||||
void EnablePullUp(GPIO_TypeDef* GPIOx, uint16_t GPIO_PinPos)
|
||||
{
|
||||
GPIOx->PDE &= ~(1u << GPIO_PinPos);
|
||||
GPIOx->PUE |= (1u << GPIO_PinPos);
|
||||
}
|
||||
|
||||
/**------------------------------------------------------------------------
|
||||
* @brief <20><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* @param GPIOx: GPIO <20>˿<EFBFBD> (pGPIO0/pGPIO1/pGPIO2)
|
||||
* @param GPIO_PinPos: <20><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB> (0~15)
|
||||
* @note <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>ģʽ<C4A3><CABD>
|
||||
* @example EnablePullDown(pGPIO0, 3); // ʹ<><CAB9> P0.3 <20>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD>
|
||||
**/
|
||||
/*****<2A><><EFBFBD><EFBFBD>*****/
|
||||
void EnablePullDown(GPIO_TypeDef* GPIOx, uint16_t GPIO_PinPos)
|
||||
{
|
||||
GPIOx->PUE &= ~(1u << GPIO_PinPos);
|
||||
GPIOx->PDE |= (1u << GPIO_PinPos);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user