查看: 1992|回复: 0

NXP S08P-Lite开发板 试用活动(6)GPIO使用

[复制链接]
  • TA的每日心情
    开心
    2019-1-15 15:24
  • 签到天数: 164 天

    连续签到: 2 天

    [LV.7]常住居民III

    发表于 2018-11-11 17:35:21 | 显示全部楼层 |阅读模式
    分享到:
    本帖最后由 原来的你 于 2018-11-11 17:43 编辑

    前面我们对S08P的开发有了初步的了解,现在我们不如主题,开始步入S08P软件开发,对于任何一个MCU来说,大家喜欢先从GPIO开始入门,本节我们也讲解如何使用S08P的GPIO。在前面的原理图中我们分析了NXP S08P-Lite的原理图,其中有User LEDs,我们可以通过控制GPIO来点亮灯来表示我们对GPIO的使用,下图是对应原理图:

    1.png

    对于User LEDs我们使用了8个GPIO,分别是PTE7、PTG0、PTG1、PTG2、PTG3、PTH2、PTH6、PTH7,对于LED我们需要

    设置GPIO为输出,根据手册可以看到,只要配置引脚的输出使能寄存器为1即可。比如PTE7脚,PORT_PTEOE_PTEOE7 = 1,改变引脚的高低电平只需要写对应的数据寄存器为1或0即可,比如PTE7脚设置高电平:PORT_PTED_PTED7 = 1,低电平:PORT_PTED_PTED7 = 0。

    所以我们GPIO的初始化为

    1. #define LED0_Init()                PORT_PTEOE_PTEOE7 = 1

    2. #define LED0_Toggle()           PORT_PTED_PTED7  ^= 1

    3. #define LED0_On()                    PORT_PTED_PTED7   = 0

    4. #define LED0_Off()                    PORT_PTED_PTED7   = 1



    5. #define LED1_Init()                PORT_PTGOE_PTGOE0 = 1

    6. #define LED1_Toggle()            PORT_PTGD_PTGD0  ^= 1

    7. #define LED1_On()                    PORT_PTGD_PTGD0   = 0

    8. #define LED1_Off()                    PORT_PTGD_PTGD0   = 1



    9. #define LED2_Init()                 PORT_PTGOE_PTGOE1 = 1

    10. #define LED2_Toggle()            PORT_PTGD_PTGD1  ^= 1

    11. #define LED2_On()                   PORT_PTGD_PTGD1   = 0

    12. #define LED2_Off()                  PORT_PTGD_PTGD1   = 1



    13. #define LED3_Init()                 PORT_PTGOE_PTGOE2 = 1

    14. #define LED3_Toggle()            PORT_PTGD_PTGD2  ^= 1

    15. #define LED3_On()                  PORT_PTGD_PTGD2   = 0

    16. #define LED3_Off()                  PORT_PTGD_PTGD2   = 1



    17. #define LED4_Init()                 PORT_PTGOE_PTGOE3 = 1

    18. #define LED4_Toggle()            PORT_PTGD_PTGD3  ^= 1

    19. #define LED4_On()                  PORT_PTGD_PTGD3   = 0

    20. #define LED4_Off()                  PORT_PTGD_PTGD3   = 1



    21. #define LED5_Init()                 PORT_PTHOE_PTHOE2 = 1

    22. #define LED5_Toggle()            PORT_PTHD_PTHD2  ^= 1

    23. #define LED5_On()                     PORT_PTHD_PTHD2   = 0

    24. #define LED5_Off()                     PORT_PTHD_PTHD2   = 1



    25. #define LED6_Init()                 PORT_PTHOE_PTHOE6 = 1

    26. #define LED6_Toggle()            PORT_PTHD_PTHD6  ^= 1

    27. #define LED6_On()                    PORT_PTHD_PTHD6   = 0

    28. #define LED6_Off()                    PORT_PTHD_PTHD6   = 1



    29. #define LED7_Init()                PORT_PTHOE_PTHOE7 = 1

    30. #define LED7_Toggle()            PORT_PTHD_PTHD7  ^= 1

    31. #define LED7_On()                    PORT_PTHD_PTHD7   = 0

    32. #define LED7_Off()                    PORT_PTHD_PTHD7   = 1

    33. void LED_Init(void)

    34. {

    35.     // 8 LEDs are connected to PTE7, PTG0/1/2/3, PTH2/6/7

    36.     // configure the pin as GPIO output

    37.     LED0_Init();

    38.     LED1_Init();

    39.     LED2_Init();

    40.     LED3_Init();

    41.     LED4_Init();

    42.     LED5_Init();

    43.     LED6_Init();

    44.     LED7_Init();

    45.    

    46.     LED0_Off();

    47.     LED1_Off();

    48.     LED2_Off();

    49.     LED3_Off();

    50.     LED4_Off();

    51.     LED5_Off();

    52.     LED6_Off();

    53.     LED7_Off();

    54. }
    复制代码

    当我们希望读取GPIO的状态时,我们只要配置引脚的输入使能寄存器为1,输出使能寄存器为0即可。

    点个流水灯如下:

    IMG_0098.JPG




    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-11-27 03:47 , Processed in 0.105504 second(s), 16 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.