[原创] 【英飞凌PSOC 62S4 PIONEER KIT 测评】——GPIO

bitter   2023-3-31 22:35 楼主

【英飞凌PSOC 62S4 PIONEER KIT 测评】——GPIO

  • 基本介绍

配置和初始化GPIO后,可以读写引脚的数据,同时支持上升沿、下降沿和双边沿的中断请求。但是,需要注意,如果GPIO被用做I2C或PWM等外设的输入输出则不需要调用GPIO的配置与初始化,外设的初始化将自动配置和初始化相应的GPIO。

  • 主要API介绍
  1. GPIO初始化cyhal_gpio_init()

image-20230331223044-13.png  

其中,(1)cyhal_gpio_direction_t枚举为

image-20230331223044-14.png  

(2)cyhal_gpio_drive_mode_t枚举为

image-20230331223044-15.png  

注意:如果GPIO为输入,那么不能设置CYHAL_GPIO_DRIVE_STRONG,否则会导致过流。

  1. GPIO事件使能cyhal_gpio_enable_event()

image-20230331223044-16.png  

其中,cyhal_gpio_event_t枚举为

image-20230331223044-17.png  

3.GPIO回调函数cyhal_gpio_register_callback()

image-20230331223044-18.png  

其中,cyhal_gpio_callback_data_t结构体为

image-20230331223044-19.png  

  • GPIO简单程序

功能描述:当按下按钮时,快闪4次LED,再次按下时,慢闪4次LED。

代码描述:

  1. 初始化P2_5(与LED连接,高电平灭)为强输出模式,默认输出高电平

image-20230331223044-20.png  

  1. 初始化P0_4(与按钮连接,按下为低电平)为输入上拉模式,默认输入高电平

image-20230331223044-21.png  

  1. 当P0_4按下时,产生一个优先级为7的中断,中断回调函数为gpio_interrupt_handler

image-20230331223044-22.png  

  1. 在中断回调函数gpio_interrupt_handler中,将变量gpio_intr_flag赋值为TRUE

image-20230331223044-23.png  

  1. 在一个死循环中,如果变量gpio_intr_flag为TRUE,则将delay_led_blink由DELAY_LONG_MS(500ms)改为DELAY_SHORT_MS(250ms),或DELAY_SHORT_MS改为DELAY_LONG_MS。将P2_5输出低电平(点亮LED),延迟一定时间,将P2_5输出高电平(熄灭LED),循环4次。

image-20230331223044-24.png

VID_20230331_223322

 

PS:

  1. 似乎可以使用psoc creator进行图形化编程,下载了最新版本的,好像2020年cypress被infineon收购后就一直没更新了?也没找到对这块开发板的支持包之类的,到有没有读者知道该怎么弄?
本帖最后由 bitter 于 2023-3-31 22:37 编辑

    main.c (2023-3-31 22:35 上传)

    2.35 KB, 下载次数: 0

    源代码

回复评论 (2)

似乎可以使用psoc creator进行图形化编程,那不是爽歪歪!

点赞  2023-4-1 18:01
引用: lugl4313820 发表于 2023-4-1 18:01 似乎可以使用psoc creator进行图形化编程,那不是爽歪歪!

似乎是可以,但是没找到对应的支持包

点赞  2023-4-3 09:30
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复