Open Hardware Abstraction Layer (HAL) API to see the functions that use for GPIO Pin
HAL API documentation
The HAL API documentation provides a comprehensive set of functions to interact with the board efficiently. This API documentation offers detailed guidance on utilizing various functionalities to optimize your development process.
Coding
Coding: Open the main.c file and add the following code to the main(void) function.
Here is the sample functions that we use from the HAL API documentation
Build the Application
👉 Build the Application
Launching the Application
👉 Launching the Application
Before launching the program to the board, make sure that you have already connected the board to the computer through a USB cable.
set up USB cable
Launching Program
👉 Check the Result
🎉 Congratulations! You can now complete Lab103
Supported toolchains (make variable 'TOOLCHAIN')
GNU Arm® embedded compiler v10.3.1 (GCC_ARM) - Default value of TOOLCHAIN
int main(void)
{
cy_rslt_t result;
/* Initialize the device and board peripherals */
result = cybsp_init() ;
/*BSP init failed. Stop program execution */
if (result != CY_RSLT_SUCCESS)
{
CY_ASSERT(0);
}
__enable_irq();
/* Initialize the User LED */
cyhal_gpio_init(CYBSP_USER_LED, CYHAL_GPIO_DIR_OUTPUT, CYHAL_GPIO_DRIVE_STRONG, CYBSP_LED_STATE_ON);
/* Initialize the user button */
cyhal_gpio_init(CYBSP_USER_BTN, CYHAL_GPIO_DIR_INPUT, CYHAL_GPIO_DRIVE_PULLDOWN, CYBSP_BTN_OFF);
/* Initialize retarget-io to use the debug UART port. It sets up the standard input/output functions (such as printf)*/
cy_retarget_io_init(CYBSP_DEBUG_UART_TX, CYBSP_DEBUG_UART_RX, CY_RETARGET_IO_BAUDRATE);
printf("\x1b[2J\x1b[;H");
for (;;)
{
//Button is active low
if(!cyhal_gpio_read(CYBSP_USER_BTN)){
// Button is pressed
cyhal_gpio_write(CYBSP_USER_LED, CYBSP_LED_STATE_ON);
printf("Button Pressed --> LED ON \r\n");
cyhal_system_delay_ms(250);
}
else {
// Button is not pressed
cyhal_gpio_write(CYBSP_USER_LED, CYBSP_LED_STATE_OFF);
printf("Button not Pressed --> LED OFF \r\n");
cyhal_system_delay_ms(250);
}
}
}