- I'm writing code using MCUXpresso IDE for a LPC1788 -
Has anybody used LPCOpen's Chip_GPIO_Init() function before? I started looking at the documentation at [1] and followed the links to the input parameter to that function [2] and [3]. So the definition of the structure given in the documentation [3] includes the data fields:
DATA
RESERVED
DIR
IS
IBE
IEV
IE
RIS
MIS
IC
However when I define the structure in C code "LPC_GPIO_T gpio;" and type "gpio." the IDE's autocompletion gives me the options:
CLR
DIR
MASK
RESERVED0
SET
There is a discrepancy between the documentation for LPCOpen and the IDE's interpretation, and I wonder which is correct. The documentation isn't clear on the function Chip_GPIO_Init() and what should be passed in. It appears to be a structure but perhaps I just call it with the address 0x20098000 which appears to be the base address of GPIO registers in the LPC1788, as in "Chip_GPIO_Init((LPC_GPIO_T *)0x20098000);"
Can anybody confirm the correct calling convention and if there's better documentation out there somewhere please let me know.
[1] LPCOpen Platform: CHIP: LPC17xx/40xx GPIO driver
[2] LPCOpen Platform: CHIP: LPC11xx Peripheral addresses and register set declarations
I should have added that the documentation section which I've found on the website [1] doesn't contain a User Guide for MCUXpresso but a very short (Not documentation) Quick Start Guide rather then any real User Guide. There is a guide for Porting and for both Keil and IAR but I'm not using either of those. That documentation was created in Feb 2013 so is LPCOpen old unsupported code at this stage?
Hi John Whitmore,
typedef struct { /* GPIO_PORT Structure */
__IO uint32_t DIR; /*!< Offset 0x0000: GPIO Port Direction control register */
uint32_t RESERVED0[3];
__IO uint32_t MASK; /*!< Offset 0x0010: GPIO Mask register */
__IO uint32_t PIN; /*!< Offset 0x0014: Pin value register using FIOMASK */
__IO uint32_t SET; /*!< Offset 0x0018: Output Set register using FIOMASK */
__O uint32_t CLR; /*!< Offset 0x001C: Output Clear register using FIOMASK */
} LPC_GPIO_T;
Have a great day,
TIC
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Thanks for that response jeremyzhou. I should not have searched on line for documentation on LPCOpen as that threw up old, out of date documents, which I was reading. Sorry about that and thanks for your help. The code is the documentation I guess.