[DemoCode下载] NuTiny-SDK-NUC029SGE开发板按钮与点灯

[复制链接]
 楼主| dongnanxibei 发表于 2025-1-7 18:20 | 显示全部楼层 |阅读模式
  1. /*---------------------------------------------------------------------------------------------------------*/
  2. /*                                                                                                         */
  3. /* SPDX-License-Identifier: Apache-2.0                                                                     */
  4. /* Copyright(c) 2020 Nuvoton Technology Corp. All rights reserved.                                         */
  5. /*                                                                                                         */
  6. /*---------------------------------------------------------------------------------------------------------*/

  7. //***********************************************************************************************************
  8. //  File Function: ML51 GPIO toggle demo code
  9. //***********************************************************************************************************
  10. #include "ml51.h"


  11. //----------------------------------------------------------------------------------------------//
  12. void led_init(void)
  13. {
  14.         //根据原理图,P0.3的LED低电平点亮,因此采用下面三种模式均可实现拉低到地的点亮
  15. //        GPIO_SetMode(Port0,SET_BIT3,GPIO_MODE_PUSHPULL);
  16. //        GPIO_SetMode(Port0,SET_BIT3,GPIO_MODE_OPENDRAIN);
  17.         GPIO_SetMode(Port0,SET_BIT3,GPIO_MODE_QUASI);
  18. }

  19. void led_on(void)
  20. {
  21.         P03=0;//根据原理图LED在P0.3引脚,为低电平点亮
  22. }

  23. void led_off(void)
  24. {
  25.         P03=1;//根据原理图LED在P0.3引脚,为高电平点亮
  26. }

  27. void button_init(void)
  28. {
  29.         //按钮假设采用开发板14引脚的P2.3引脚,则需要配置为输入模式,并使能内部上拉电阻。
  30.         GPIO_SetMode(Port2,SET_BIT3,GPIO_MODE_INPUT);
  31.         GPIO_Pull_Enable(Port2,SET_BIT3,PULLUP);
  32. }
  33. void main (void)
  34. {
  35.         led_init();
  36.         button_init();
  37.   while(1)
  38.   {
  39.                 if(P2&SET_BIT3)//如果没有按下按钮,则闪烁led
  40.                 {
  41.                         led_on();
  42.                         Timer2_Delay(24000000,4,200,1000);
  43.                         led_off();
  44.                         Timer2_Delay(24000000,4,200,1000);
  45.                 }
  46.                 else  //否则按下按钮时候熄灭led
  47.                 {
  48.                         led_off();
  49.                 }               
  50.   }
  51. }



学习了一天,写的测试程序,非常奈斯。这个板子真不错。
 楼主| dongnanxibei 发表于 2025-1-7 18:21 | 显示全部楼层
那个LED的三种模式均可以,不知道三种模式下哪种更优,大佬出来讲讲了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

223

主题

3840

帖子

18

粉丝
快速回复 在线客服 返回列表 返回顶部

223

主题

3840

帖子

18

粉丝
快速回复 在线客服 返回列表 返回顶部