查看: 743|回复: 0

[分享] (kinetis K60)kinetis初体验之GPIO寄存器

[复制链接]
  • TA的每日心情
    开心
    2022-4-14 11:08
  • 签到天数: 47 天

    [LV.5]常住居民I

    23

    主题

    131

    帖子

    0

    高级会员

    Rank: 4

    积分
    724
    最后登录
    2024-1-20
    发表于 2020-7-7 23:07:30 | 显示全部楼层 |阅读模式
    (kinetis K60)kinetis初体验之GPIO寄存器


    寄存器功能I0口初始化


    I0口初始化


    PORT寄存器

    一个简单的流水灯

    1. #include "common.h"

    2. #define LED1(a) if(a)\
    3.                    GPIOA_PDOR &= ~(1<<10);\
    4.                else\
    5.                    GPIOA_PDOR |= (1<<10)   

    6.                   
    7. #define LED2(a) if(a)\
    8.                    GPIOA_PDOR &= ~(1<<11);\
    9.                else\
    10.                    GPIOA_PDOR |= (1<<11)        
    11. #define LED3(a) if(a)\
    12.                    GPIOA_PDOR &= ~(1<<28);\
    13.                else\
    14.                    GPIOA_PDOR |= (1<<28)
    15.                   
    16. #define LED4(a) if(a)\
    17.                    GPIOA_PDOR &= ~(1<<29);\
    18.                else\
    19.                    GPIOA_PDOR |= (1<<29)   
    20.                      
    21. void init_gpio(void);
    22. void delay(long count);


    23. void main (void)
    24. {
    25.   init_gpio();

    26.   LED2(0);  
    27.   LED3(0);
    28.   
    29.   while(1)
    30.   {
    31.     LED4(0);   //灭
    32.     LED1(1);   //亮
    33.     delay(3000000);
    34.     LED2(1);
    35.     LED1(0);
    36.     delay(3000000);
    37.     LED3(1);
    38.     LED2(0);
    39.     delay(3000000);
    40.     LED3(0);
    41.     LED4(1);
    42.     delay(3000000);
    43.   }
    44. }

    45. void init_gpio()
    46. {

    47.   PORTA_PCR10 &= ~0x700;    //MUX 000
    48.   PORTA_PCR10 |= PORT_PCR_MUX(1);   //MUX 001 GPIO模式
    49.   PORTA_PCR11 &= ~0x700;
    50.   PORTA_PCR11 |= PORT_PCR_MUX(1);  
    51.   PORTA_PCR28 &= ~0x700;
    52.   PORTA_PCR28 |= PORT_PCR_MUX(1);  
    53.   PORTA_PCR29 &= ~0x700;
    54.   PORTA_PCR29 |= PORT_PCR_MUX(1);  
    55.   
    56.   GPIOA_PDDR |= ((1<<10)|(1<<11)|(1<<28)|(1<<29));  //设置为输出
    57. }

    58. void delay(long count)
    59. {
    60.   while(count--)
    61.       asm("nop");
    62. }
    复制代码



    签到签到
    回复

    使用道具 举报

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

    本版积分规则

    关闭

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

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2024-4-26 06:50 , Processed in 0.114933 second(s), 18 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表