how to configure general GPIO pin as a input/output in frdmk64

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

how to configure general GPIO pin as a input/output in frdmk64

Jump to solution
1,570 Views
thivap
Contributor II

hi,

i am using FRDMk64 controller. KDS2.0 and ksdk 1.1.0 version. i am using MQX example.

i want to make

     PORTC -7th pin as input

     PORTC -8th pin as OUTPUT    

how to do that one.

using following API i made as general input/output pin

PORT_HAL_SetMuxMode(PORTC_BASE,7u,kPortMuxAsGpio);

but how to mention INPUT PIN or OUTPUT PIN (i am asking about Direction of pin)

how to mention direction of PIN?

Labels (1)
1 Solution
891 Views
DavidS
NXP Employee
NXP Employee

Hi Thiva,

I got bitten too.  Have to be careful to look at the API calls to make sure correct PORT (PTE) or GPIO (PORTE) registers being referenced.

Example that should work:

#if 1//DES 1=customer test code, 0=default code

   PORT_HAL_SetMuxMode((PORT_Type *)PORTE,26u,kPortMuxAsGpio);//dtr output

   PORT_HAL_SetOpenDrainCmd((PORT_Type *)PORTE,26u, 1);//DES added...FRDM-K64F can use open drain since LED pulled high

   GPIO_HAL_SetPinDir((GPIO_Type *)PTE,26u,kGpioDigitalOutput);

   GPIO_HAL_TogglePortOutput((GPIO_Type *)PTE,(1<<26u));//DES added
   GPIO_HAL_TogglePortOutput((GPIO_Type *)PTE,(1<<26u));//DES added
   GPIO_HAL_TogglePortOutput((GPIO_Type *)PTE,(1<<26u));//DES added
   GPIO_HAL_TogglePortOutput((GPIO_Type *)PTE,(1<<26u));//DES added

   GPIO_HAL_WritePinOutput ((GPIO_Type *)PTE,26u,1);//MAKE DTR high

   GPIO_HAL_WritePinOutput ((GPIO_Type *)PTE,26u,0);//MAKE DTR low

   GPIO_HAL_WritePinOutput ((GPIO_Type *)PTE,26u,1);//MAKE DTR high

   GPIO_HAL_WritePinOutput ((GPIO_Type *)PTE,26u,0);//MAKE DTR low

   GPIO_HAL_WritePinOutput ((GPIO_Type *)PTE,26u,1);//MAKE DTR high

#endif

Regards,

David

View solution in original post

0 Kudos
3 Replies
891 Views
RadekS
NXP Employee
NXP Employee

Hi thiva p,

for example:

GPIO_HAL_SetPinDir(GPIOC_BASE, 7, kGpioDigitalInput);

GPIO_HAL_SetPinDir(GPIOC_BASE, 8, kGpioDigitalOutput);

I hope it helps you.

Have a great day,
RadekS

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

891 Views
thivap
Contributor II

hi,

i tried same way but its not working,

i tried following step

          PORT_HAL_SetMuxMode(PORTE_BASE,26u,kPortMuxAsGpio);//dtr output

          GPIO_HAL_SetPinDir(PORTE_BASE,26u,kGpioDigitalOutput);

         GPIO_HAL_WritePinOutput (PORTE_BASE,26,0);//MAKE DTR low

when i measured with multi-meter i am getting always PORTE-26 pin as high only. (i am getting 3V).

why its not going to ZERO (low) volt.

thanks and regards

thiva

0 Kudos
892 Views
DavidS
NXP Employee
NXP Employee

Hi Thiva,

I got bitten too.  Have to be careful to look at the API calls to make sure correct PORT (PTE) or GPIO (PORTE) registers being referenced.

Example that should work:

#if 1//DES 1=customer test code, 0=default code

   PORT_HAL_SetMuxMode((PORT_Type *)PORTE,26u,kPortMuxAsGpio);//dtr output

   PORT_HAL_SetOpenDrainCmd((PORT_Type *)PORTE,26u, 1);//DES added...FRDM-K64F can use open drain since LED pulled high

   GPIO_HAL_SetPinDir((GPIO_Type *)PTE,26u,kGpioDigitalOutput);

   GPIO_HAL_TogglePortOutput((GPIO_Type *)PTE,(1<<26u));//DES added
   GPIO_HAL_TogglePortOutput((GPIO_Type *)PTE,(1<<26u));//DES added
   GPIO_HAL_TogglePortOutput((GPIO_Type *)PTE,(1<<26u));//DES added
   GPIO_HAL_TogglePortOutput((GPIO_Type *)PTE,(1<<26u));//DES added

   GPIO_HAL_WritePinOutput ((GPIO_Type *)PTE,26u,1);//MAKE DTR high

   GPIO_HAL_WritePinOutput ((GPIO_Type *)PTE,26u,0);//MAKE DTR low

   GPIO_HAL_WritePinOutput ((GPIO_Type *)PTE,26u,1);//MAKE DTR high

   GPIO_HAL_WritePinOutput ((GPIO_Type *)PTE,26u,0);//MAKE DTR low

   GPIO_HAL_WritePinOutput ((GPIO_Type *)PTE,26u,1);//MAKE DTR high

#endif

Regards,

David

0 Kudos