本帖最后由 TL-LED 于 2023-6-22 11:44 编辑
下面来学习下官网的ModusToolbox开发环境的搭建。
一、软件ModusToolbox下载及安装
1.1、软件下载
下载地址:https://www.infineon.com/cms/en/design-support/tools/sdk/modustoolbox-software/
选择windows的版本
1.2、软件安装
选择安装位置, 这里我选择默认位置。
选择默认安装
安装最后提示警告,需要设置环境变量
安装完成
设置环境变量
1.3、启动软件
二、创建项目
2.1、软件启动后,创建开发板芯片对应的项目工程文件
2.2、选择GPIO的例程
2.3、编译项目
2.4、屏蔽掉外部的32.768KHz时钟源,测试的开发板上没有外部时钟,运行程序会卡到这里。
2.5、程序部分
main.c
int main(void)
{
cy_rslt_t result;
uint32_t count = 0;
uint32_t delay_led_blink = DELAY_LONG_MS;
/* Initialize the device and board peripherals */
result = cybsp_init();
/* Board init failed. Stop program execution */
handle_error(result);
/* Initialize retarget-io to use the debug UART port */
result = cy_retarget_io_init(CYBSP_DEBUG_UART_TX, CYBSP_DEBUG_UART_RX,
CY_RETARGET_IO_BAUDRATE);
/* Retarget-io init failed. Stop program execution */
handle_error(result);
/* Initialize the user LED */
result = cyhal_gpio_init(CYBSP_USER_LED, CYHAL_GPIO_DIR_OUTPUT,
CYHAL_GPIO_DRIVE_STRONG, CYBSP_LED_STATE_OFF);
/* User LED init failed. Stop program execution */
handle_error(result);
/* Initialize the user button */
result = cyhal_gpio_init(CYBSP_USER_BTN, CYHAL_GPIO_DIR_INPUT,
CYBSP_USER_BTN_DRIVE, CYBSP_BTN_OFF);
/* User button init failed. Stop program execution */
handle_error(result);
/* Configure GPIO interrupt */
gpio_btn_callback_data.callback = gpio_interrupt_handler;
cyhal_gpio_register_callback(CYBSP_USER_BTN,
&gpio_btn_callback_data);
cyhal_gpio_enable_event(CYBSP_USER_BTN, CYHAL_GPIO_IRQ_FALL,
GPIO_INTERRUPT_PRIORITY, true);
/* Enable global interrupts */
__enable_irq();
/* \x1b[2J\x1b[;H - ANSI ESC sequence for clear screen */
//printf("\x1b[2J\x1b[;H");
printf("PSOC62 TEST! https://bbs.eeworld.com.cn\r\n");
printf("**************** HAL: GPIO Interrupt ****************\r\n");
for (;;)
{
/* Check the interrupt status */
if (true == gpio_intr_flag)
{
gpio_intr_flag = false;
/* Update LED toggle delay */
if (DELAY_LONG_MS == delay_led_blink)
{
delay_led_blink = DELAY_SHORT_MS;
}
else
{
delay_led_blink = DELAY_LONG_MS;
}
}
/* Blink LED four times */
for (count = 0; count < LED_BLINK_COUNT; count++)
{
cyhal_gpio_write(CYBSP_USER_LED, CYBSP_LED_STATE_ON);
cyhal_system_delay_ms(delay_led_blink);
printf("led_on!\r\n");
cyhal_gpio_write(CYBSP_USER_LED, CYBSP_LED_STATE_OFF);
cyhal_system_delay_ms(delay_led_blink);
printf("led_off!\r\n");
}
/* Enter deep sleep mode */
//cyhal_syspm_deepsleep();
}
}
三、程序运行
3.1、连接硬件
3.2、程序运行
串口输出
1000