【先楫半导体HPM6750EVKMINI评估板试用体验】+GPIO口及其使用

描述

本文来源电子发烧友社区,作者:jennyzhaojie, 帖子地址:https://bbs.elecfans.com/jishu_2284449_1_1.html

GPIO的使用是掌握一个开发板的切入点,对它的掌握是进行开发的一个基础。
在开发板上,已配备了一个RGB_LED、2个LED、 2个按键及一个无源蜂鸣器。
对于RGB_LED的使用,我们从例程就可以掌握。
在对2个LED和按键来讲,在测试却发现,即使不对其进行配置和编程,却也能实现按键与LED的一对一控制,且在编程的情况下也不受控制,不知原因何在?
1. 蜂鸣器的使用
板载蜂鸣器的原理图见图1所示,由于采用的是无源蜂鸣器,故需要为其提供脉冲信号才能发声。
                              
 
mcu
 
图1蜂鸣器原理图
为使蜂鸣器工作,需将其连接的引脚PE5配置为输出模式,使用语句为:
gpio_enable_pin_output(HPM_GPIO0,GPIO_DI_GPIOE, 5);
为使蜂鸣器发出滴答的声音,需向其不断地输出高低变化的电平信号,其程序为:


  1. while(1)
  2. {
  3.         gpio_write_pin(HPM_GPIO0, GPIO_DI_GPIOE, 5, 1);
  4.         rt_thread_mdelay(200);
  5.         gpio_write_pin(HPM_GPIO0, GPIO_DI_GPIOE, 5, 0);
  6.         rt_thread_mdelay(200);
  7. }
复制代码


2. 按键识别与控制
鉴于板载的LED和KEY无法进行编程控制,故采用了一个外部的触摸模块来替代按键的输入模式测试。
与通常的输入模式设置语句不同,它没有使用gpio_enable_pin_input这样的句式,而是通过gpio_disable_pin_output来进行配置。
在触摸模块与PE25相连接的情况下,其配置的语句为:
gpio_disable_pin_output(HPM_GPIO0,GPIO_DI_GPIOE, 25);
以触摸模块控制红色RGB_LED灯的主程序为:


  1. int main(void)
  2. {
  3.     app_init_led_pins();
  4.     app_led_write(0, APP_LED_ON);
  5.     app_led_write(1, APP_LED_ON);
  6.     app_led_write(2, APP_LED_ON);
  7.     gpio_disable_pin_output(HPM_GPIO0, GPIO_DI_GPIOE, 25);
  8.     while(1){
  9.         if(gpio_read_pin(HPM_GPIO0, GPIO_DI_GPIOE, 25)==1)
  10.            app_led_write(0, APP_LED_OFF);
  11.         else
  12.            app_led_write(0, APP_LED_ON);
  13.         rt_thread_mdelay(200);
  14.     }
  15.     return 0;
  16. }
复制代码


经编译和下载,其执行效果如图2和图3所示。
 
mcu
 
图2空闲状态
 
mcu
 
图3触摸状态
 
掌握了GPIO口的使用,就为程序的开发设计打开了一扇方便之门。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分