gpio的使用是掌握一个开发板的切入点,对它的掌握是进行开发的一个基础。
在开发板上,已配备了一个rgb_led、2个led、 2个按键及一个无源蜂鸣器。
对于rgb_led的使用,我们从例程就可以掌握。
在对2个led和按键来讲,在测试却发现,即使不对其进行配置和编程,却也能实现按键与led的一对一控制,且在编程的情况下也不受控制,不知原因何在?
1
蜂鸣器的使用
板载蜂鸣器的原理图见图1所示,由于采用的是无源蜂鸣器,故需要为其提供脉冲信号才能发声。
图1蜂鸣器原理图
为使蜂鸣器工作,需将其连接的引脚pe5配置为输出模式,使用语句为:
gpio_enable_pin_output(hpm_gpio0,gpio_di_gpioe, 5);
为使蜂鸣器发出滴答的声音,需向其不断地输出高低变化的电平信号,其程序为:
while(1){ gpio_write_pin(hpm_gpio0, gpio_di_gpioe, 5, 1); rt_thread_mdelay(200); gpio_write_pin(hpm_gpio0, gpio_di_gpioe, 5, 0); rt_thread_mdelay(200);}
2
按键识别与控制
鉴于板载的led和key无法进行编程控制,故采用了一个外部的触摸模块来替代按键的输入模式测试。
与通常的输入模式设置语句不同,它没有使用gpio_enable_pin_input这样的句式,而是通过gpio_disable_pin_output来进行配置。
在触摸模块与pe25相连接的情况下,其配置的语句为:
gpio_disable_pin_output(hpm_gpio0,gpio_di_gpioe, 25);
以触摸模块控制红色rgb_led灯的主程序为:
int main(void){ app_init_led_pins(); app_led_write(0, app_led_on); app_led_write(1, app_led_on); app_led_write(2, app_led_on); gpio_disable_pin_output(hpm_gpio0, gpio_di_gpioe, 25); while(1){ if(gpio_read_pin(hpm_gpio0, gpio_di_gpioe, 25)==1) app_led_write(0, app_led_off); else app_led_write(0, app_led_on); rt_thread_mdelay(200); } return 0;}
经编译和下载,其执行效果如图2和图3所示。
图2空闲状态
图3触摸状态
掌握了gpio口的使用,就为程序的开发设计打开了一扇方便之门。添加关注!文章转载请注明出处。
基于LTC3388设计的低功率医疗电源电路
ARM或成移动互联网时代新王者
Reno6发布会曝光猛料,OPPO Watch 2系列下半年出世
哪种板材最适合于微波频段或毫米波频段功率放大器的应用
稳懋斥巨资于南科建厂,功率放大器产能提升两倍
【技术分享】学好开发板,GPIO使用是关键!先楫HPM6750系列试用初体验
Vivo正在开发其最近推出的V20智能手机的后继产品
铅酸电池充放电保护电路图
关于MLCC陶瓷电容详解,简单易懂
树莓派3型号B初学者指南
魅族PRO7曝光:联发科X30+双曲面+双摄像头
荣耀9最新消息:华为P10因“闪存门”风波不断,荣耀9或将6月发布赶来救场
PCB设计中EMI传导干扰该如何处理?
欧姆龙推出机器人3D视觉传感技术 计划于2020年实现商业化
电池技术再迎颠覆 固态电池横空出世
怎样对基于Abaqus汽车悬置系统高频隔振性能进行分析呢
Zigbee技术在电力无线抄表系统中的应用
针对家庭 AC/DC IoT 的 11 种 PowerLab 参考设计
用于75Ω测量的CATV最小损耗衰减器
HarmonyOS让以IoT设备为主体的移动产业畅享数字社会的便利