查看: 2969|回复: 8

[其他] 怎样把一个数据赋值给GPIO端口

[复制链接]
  • TA的每日心情
    难过
    2020-6-22 15:24
  • 签到天数: 79 天

    连续签到: 1 天

    [LV.6]常住居民II

    11

    主题

    509

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1565
    最后登录
    2020-6-22
    发表于 2016-1-26 10:51:47 | 显示全部楼层 |阅读模式
            PORTD = cmd;                   这样赋值编译报错
           //FGPIOD_PTOR = cmd;       这样赋值编译不报错
           不知道怎样把一个数据赋值给GPIO端口

           希望老师们指点

    /************8080时序*************/

    void WrateC(unsigned char cmd)  //写入指令到LCD
    {
            //R_S=0;   //选择指令存储器       
            //FGPIOC_PSOR  |=  (1<<0);                                    // 配置GPIO 置高
            FGPIOC_PCOR  |=  ( 1<<0);                                    // 配置GPIO 为低  也就是输出清0  RS
        //C_S=0;
            //FGPIOB_PSOR  |=  (1<<18);                                    // 配置GPIO 置高    CS
            FGPIOB_PCOR  |=  ( 1<<18);                                    // 配置GPIO 为低  也就是输出清0
            //W_R=0;
            //FGPIOC_PSOR  |=  (1<<1);                                    // 配置GPIO 置高   WR写
            FGPIOC_PCOR  |=  ( 1<<1);                                    // 配置GPIO 为低  也就是输出清0
            //R_D=1;
            FGPIOC_PSOR  |=  (1<<2);                                    // 配置GPIO 置高   RD读
            //P1=cmd;
            PORTD = cmd;
            //FGPIOD_PTOR = cmd;
            //W_R=1;       
            FGPIOC_PSOR  |=  (1<<1);                                    // 配置GPIO 置高   WR写
        //C_S=1;
            FGPIOB_PSOR  |=  (1<<18);                                    // 配置GPIO 置高    CS 片选
    }

    我知道答案 目前已有8人回答
    回复

    使用道具 举报

    该用户从未签到

    124

    主题

    3600

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    5781
    最后登录
    1970-1-1
    发表于 2016-1-26 17:12:54 | 显示全部楼层
    楼主用的MCU型号是什么呢/
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    2020-6-22 15:24
  • 签到天数: 79 天

    连续签到: 1 天

    [LV.6]常住居民II

    11

    主题

    509

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1565
    最后登录
    2020-6-22
     楼主| 发表于 2016-1-27 08:46:28 | 显示全部楼层
    我用的MCU型号MKL26Z128VLH4
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    124

    主题

    3600

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    5781
    最后登录
    1970-1-1
    发表于 2016-1-27 09:49:38 | 显示全部楼层
    头文件与.c中对应的寄存器名称要一致,你看一下
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    2020-6-22 15:24
  • 签到天数: 79 天

    连续签到: 1 天

    [LV.6]常住居民II

    11

    主题

    509

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1565
    最后登录
    2020-6-22
     楼主| 发表于 2016-1-27 09:59:24 | 显示全部楼层
    我搞不清头文件里那个是
    所以希望指点一下
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    1

    主题

    59

    帖子

    0

    注册会员

    Rank: 2

    积分
    183
    最后登录
    2016-4-26
    发表于 2016-3-9 16:17:52 | 显示全部楼层
    PORTD未定义
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    2020-6-22 15:24
  • 签到天数: 79 天

    连续签到: 1 天

    [LV.6]常住居民II

    11

    主题

    509

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1565
    最后登录
    2020-6-22
     楼主| 发表于 2016-3-9 16:23:34 | 显示全部楼层

    能给个PORTD未定义例子吗?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    2020-6-22 15:24
  • 签到天数: 79 天

    连续签到: 1 天

    [LV.6]常住居民II

    11

    主题

    509

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1565
    最后登录
    2020-6-22
     楼主| 发表于 2016-3-9 16:34:22 | 显示全部楼层
    这是我程序里定义端口方法
    void ioInit(void)//I/O Instial
    {
              // GPIOʱÖÓʹÄÜ
              PORT_ENABLE_CLK(MKL_PORTA);     // GPIOʱÖÓʹÄÜ              
        PORT_ENABLE_CLK(MKL_PORTB);
        PORT_ENABLE_CLK(MKL_PORTC);
        PORT_ENABLE_CLK(MKL_PORTD);
        PORT_ENABLE_CLK(MKL_PORTE);
        //IO¹¦ÄÜÑ¡Ôñ
                    IO_FUN_SEL(MKL_PORTC,8,1);      //Led1
                    IO_FUN_SEL(MKL_PORTC,7,1);      //Led2
              IO_FUN_SEL(MKL_PORTE,20,1);     //Led3
              IO_FUN_SEL(MKL_PORTE,21,1);     //Led4
              IO_FUN_SEL(MKL_PORTC,6,1);      //Led5
              IO_FUN_SEL(MKL_PORTE,0,1);      //RUN-LED
              IO_FUN_SEL(MKL_PORTE,1,1);      //STOP-LED
              //°´¼üʹÄÜ
              IO_FUN_SEL(MKL_PORTB,2,1);      //UP
                    IO_FUN_SEL(MKL_PORTB,1,1);      //DOWN
        IO_FUN_SEL(MKL_PORTC,5,1);      //LOCAL
        IO_FUN_SEL(MKL_PORTC,3,1);      //MENU
        IO_FUN_SEL(MKL_PORTC,4,1);      //ESC
              IO_FUN_SEL(MKL_PORTB,16,1);     //JOG
              IO_FUN_SEL(MKL_PORTB,3,1);      //DATA
                    IO_FUN_SEL(MKL_PORTB,0,1);      //FWD
                    IO_FUN_SEL(MKL_PORTC,11,1);     //FUWEI
                    IO_FUN_SEL(MKL_PORTC,10,1);     //RUN
                    IO_FUN_SEL(MKL_PORTC,9,1);      //STOP       
                    //LCDÒº¾§ÆÁÒý½ÅʹÄÜ       
                    IO_FUN_SEL(MKL_PORTD,6,1);      //LCD Clock
                    IO_FUN_SEL(MKL_PORTD,7,1);      //LCD Data
                    IO_FUN_SEL(MKL_PORTC,0,1);      //Cmd:1=Data & 0=Command
                    IO_FUN_SEL(MKL_PORTB,19,1);     //Reset LCD:- Enable
                    IO_FUN_SEL(MKL_PORTB,18,1);     //CS       
              IO_FUN_SEL(MKL_PORTA,12,1);     //PS
              IO_FUN_SEL(MKL_PORTC,1,1);      //WR
              IO_FUN_SEL(MKL_PORTC,2,1);      //RD
              IO_FUN_SEL(MKL_PORTA,5,1);      //beiguang       
        //IOÉèÖÃΪÊä³öģʽ        //LCDÒº¾§ÆÁÒý½ÅʹÄÜ       
                    GPIO_DDR_OUTPUT(MKL_PORTD,6);   //LCD Clock
                    GPIO_DDR_OUTPUT(MKL_PORTD,7);   //LCD Data
                    GPIO_DDR_OUTPUT(MKL_PORTC,0);   //Cmd:1=Data & 0=Command
                    GPIO_DDR_OUTPUT(MKL_PORTB,19);  //Reset LCD:- Enable
                    GPIO_DDR_OUTPUT(MKL_PORTB,18);  //CS
                    GPIO_DDR_OUTPUT(MKL_PORTA,12);  //PS
                    GPIO_DDR_OUTPUT(MKL_PORTC,1);   //WR
                    GPIO_DDR_OUTPUT(MKL_PORTC,2);   //RD
                    GPIO_DDR_OUTPUT(MKL_PORTA,5);   //beiguang
                    //LED·¢¹â¹Ü
                    GPIO_DDR_OUTPUT(MKL_PORTC,8);   //Led1
                    GPIO_DDR_OUTPUT(MKL_PORTC,7);   //Led2
                    GPIO_DDR_OUTPUT(MKL_PORTE,20);  //Led3
                    GPIO_DDR_OUTPUT(MKL_PORTE,21);  //Led4
                    GPIO_DDR_OUTPUT(MKL_PORTC,6);   //Led5
                    GPIO_DDR_OUTPUT(MKL_PORTE,0);   //RUN-LED
                    GPIO_DDR_OUTPUT(MKL_PORTE,1);   //STOP-LED       
        //ÉèÖð´¼üΪÊäÈëģʽ
        GPIO_DDR_INPUT(MKL_PORTB,2);    //UP
                    GPIO_DDR_INPUT(MKL_PORTB,1);    //DOWN
                    GPIO_DDR_INPUT(MKL_PORTC,5);    //LOCAL
                    GPIO_DDR_INPUT(MKL_PORTC,3);    //MENU
                    GPIO_DDR_INPUT(MKL_PORTC,4);    //ESC
                    GPIO_DDR_INPUT(MKL_PORTB,16);   //JOG
                    GPIO_DDR_INPUT(MKL_PORTB,3);    //DATA
                    GPIO_DDR_INPUT(MKL_PORTB,0);    //FWD
                    GPIO_DDR_INPUT(MKL_PORTC,11);   //FUWEI
                    GPIO_DDR_INPUT(MKL_PORTC,10);   //RUN
        GPIO_DDR_INPUT(MKL_PORTC,9);    //STOP       
        //LEDµÆ³õʼ»¯Îª¸ß       
                    GPIO_SET(MKL_PORTC,8);          //Led1
                    GPIO_SET(MKL_PORTC,7);          //Led2
                    GPIO_SET(MKL_PORTE,20);          //Led3
                    GPIO_SET(MKL_PORTE,21);          //Led4
                    GPIO_SET(MKL_PORTC,6);          //Led5
                    GPIO_SET(MKL_PORTE,0);          //RUN-LED
                    GPIO_SET(MKL_PORTE,1);          //STOP-LED
    }
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-12-28 09:35
  • 签到天数: 19 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    4

    主题

    178

    帖子

    0

    高级会员

    Rank: 4

    积分
    593
    最后登录
    2017-8-22
    发表于 2016-3-9 16:43:20 | 显示全部楼层
    我刚学这个,还看不懂代码
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-7-23 04:25 , Processed in 0.105311 second(s), 28 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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