久久精品国产精品国产一区,少妇扒开毛毛自慰喷水,国产精品无码电影在线观看 ,久久天天躁夜夜躁狠狠85麻豆

思澈科技軟件開發(fā)工具包  2.20
GPIO

HAL GPIO 模塊提供抽象的軟件接口操作硬件GPIO模塊. HPSYS和LPSYS各有一個(gè)GPIO模塊,支持的特性有:

  • 輸出模式
  • 輸入模式, 可檢測(cè)輸入電平觸發(fā)中斷,支持高電平、低電平、上升沿、下降沿和雙沿檢測(cè)

HPSYS的硬件GPIO模塊為 hwp_gpio1 (或稱為GPIO_A), LPSYS的硬件GPIO模塊為 hwp_gpio2 (或稱為GPIO_B).

Note
如果需要設(shè)置GPIO管腳為其他功能,或者更改上下拉驅(qū)動(dòng)能力,請(qǐng)參考pinmux的設(shè)置PINMUX

詳細(xì)的API說(shuō)明參考 GPIO .

使用GPIO HAL

輸出模式

配置GPIO1 pin10(即GPIO_A10)為輸出模式,輸出高電平

void write_pin(void)
{
GPIO_InitTypeDef GPIO_InitStruct;
uint16_t pin = 10;
/* set GPIO1 pin10 to output mode */
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT;
GPIO_InitStruct.Pin = pin;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(gpio, &GPIO_InitStruct);
/* set pin to high */
HAL_GPIO_WritePin(gpio, pin, GPIO_PIN_SET);
}

輸入模式(無(wú)中斷)

配置GPIO1 pin10(即GPIO_A10)為輸入模式,讀取電平狀態(tài)

void read_pin(void)
{
GPIO_InitTypeDef GPIO_InitStruct;
uint16_t pin = 10;
/* set GPIO1 pin10 to input mode */
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
GPIO_InitStruct.Pin = pin;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(gpio, &GPIO_InitStruct);
/* read pin state */
state = HAL_GPIO_ReadPin(gpio, pin);
}

輸入模式(有中斷)

配置GPIO1 pin10(即GPIO_A10)為輸入模式,雙沿檢測(cè)

/* GPIO1 IRQ Handler in vector table */
void GPIO1_IRQHandler(void)
{
for (uint32_t i = 0; i <= 41; i++)
{
}
}
/* override the weak Callback to add user defined action, it's called by HAL_GPIO_EXTI_IRQHandler */
void HAL_GPIO_EXTI_Callback(GPIO_TypeDef *hgpio, uint16_t GPIO_Pin)
{
state = HAL_GPIO_ReadPin(hgpio, GPIO_Pin);
}
void detect_pin(void)
{
GPIO_InitTypeDef GPIO_InitStruct;
uint16_t pin = 10;
/* set GPIO1 pin10 to input mode */
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
GPIO_InitStruct.Pin = pin;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(gpio, &GPIO_InitStruct);
/* enable GPIO1 pin10 double edge detection */
GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING_FALLING;
GPIO_InitStruct.Pin = pin;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(gpio, &GPIO_InitStruct);
/* Enable GPIO1 interrupt */
HAL_NVIC_SetPriority(GPIO1_IRQn, 5, 0);
HAL_NVIC_EnableIRQ(GPIO1_IRQn);
}
GPIO_InitTypeDef::Mode
uint32_t Mode
Definition: bf0_hal_gpio.h:124
GPIO_MODE_INPUT
#define GPIO_MODE_INPUT
Definition: bf0_hal_gpio.h:178
GPIO_NOPULL
#define GPIO_NOPULL
Definition: bf0_hal_gpio.h:195
GPIO_InitTypeDef::Pull
uint32_t Pull
Definition: bf0_hal_gpio.h:127
HAL_GPIO_WritePin
void HAL_GPIO_WritePin(GPIO_TypeDef *hgpio, uint16_t GPIO_Pin, GPIO_PinState PinState)
Set or clear the selected data port bit.
HAL_GPIO_EXTI_IRQHandler
void HAL_GPIO_EXTI_IRQHandler(GPIO_TypeDef *hgpio, uint16_t GPIO_Pin)
Handle EXTI interrupt request.
GPIO_MODE_IT_RISING_FALLING
#define GPIO_MODE_IT_RISING_FALLING
Definition: bf0_hal_gpio.h:183
GPIO_PinState
GPIO_PinState
GPIO Bit SET and Bit RESET enumeration.
Definition: bf0_hal_gpio.h:135
GPIO_TypeDef
Definition: bf0_hal_gpio.h:73
HAL_NVIC_SetPriority
void HAL_NVIC_SetPriority(IRQn_Type IRQn, uint32_t PreemptPriority, uint32_t SubPriority)
Set the priority of an interrupt.
HAL_GPIO_EXTI_Callback
void HAL_GPIO_EXTI_Callback(GPIO_TypeDef *hgpio, uint16_t GPIO_Pin)
EXTI line detection callback.
HAL_NVIC_EnableIRQ
void HAL_NVIC_EnableIRQ(IRQn_Type IRQn)
Enable a device specific interrupt in the NVIC interrupt controller.
GPIO_InitTypeDef::Pin
uint32_t Pin
Definition: bf0_hal_gpio.h:121
GPIO_MODE_OUTPUT
#define GPIO_MODE_OUTPUT
Definition: bf0_hal_gpio.h:179
hwp_gpio1
#define hwp_gpio1
Definition: register.h:583
HAL_GPIO_Init
void HAL_GPIO_Init(GPIO_TypeDef *hgpio, GPIO_InitTypeDef *GPIO_Init)
Initialize the GPIO peripheral according to the specified parameters in the GPIO_Init.
GPIO_InitTypeDef
GPIO Init structure definition.
Definition: bf0_hal_gpio.h:120
HAL_GPIO_ReadPin
GPIO_PinState HAL_GPIO_ReadPin(GPIO_TypeDef *hgpio, uint16_t GPIO_Pin)
Read the specified input port pin.