华大460 GPIO 例程赏析_20220911

今天来看一下这个GPIO的PORT_Init函数。

1.首先看一下声明

    /* LED0 Port/Pin initialization */
    PORT_Init(LED0_PORT, LED0_PIN, &stcPortInit);
//声明PORT_Init函数
//1.有三个形参 LED0_PORT LED0_PIN 传递了一个地址,&stcPortInit
//第三个形参是指针,这个说明函数在定义的时候,定义了一个指针。

2.在看一下定义

en_result_t PORT_Init(en_port_t enPort, uint16_t u16Pin, const stc_port_init_t *pstcPortInit)

//101.en_result_t有意思了,这个是什么?en_result_t是enum数据类型,函数返回的是枚举型的值。
//102.en_port_t 是enum枚举型
//103. const const

2.1 101 

typedef enum en_result
{
    Ok                       = 0u,   ///< No error
    Error                    = 1u,   ///< Non-specific error code
    ErrorAddressAlignment    = 2u,   ///< Address alignment does not match
    ErrorAccessRights        = 3u,   ///< Wrong mode (e.g. user/system) mode is set
    ErrorInvalidParameter    = 4u,   ///< Provided parameter is not valid
    ErrorOperationInProgress = 5u,   ///< A conflicting or requested operation is still in progress
    ErrorInvalidMode         = 6u,   ///< Operation not allowed in current mode
    ErrorUninitialized       = 7u,   ///< Module (or part of it) was not initialized properly
    ErrorBufferFull          = 8u,   ///< Circular buffer can not be written because the buffer is full
    ErrorTimeout             = 9u,   ///< Time Out error occurred (e.g. I2C arbitration lost, Flash time-out, etc.)
    ErrorNotReady            = 10u,  ///< A requested final state is not reached
    OperationInProgress      = 11u,  ///< Indicator for operation in progress (e.g. ADC conversion not finished, DMA channel used, etc.)
} en_result_t;

 


版权声明:本文为weixin_39657978原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。