当前位置:   article > 正文

飞思卡尔S12XE系列---基础GPIO操作_飞思卡尔编程器使用教程

飞思卡尔编程器使用教程

MC9S12XET256MMA普通IO口输入输出功能的使用:
IO口数据方向寄存器:设定0为输入模式,设定1为输出模式。复位后默认输入模式。
IO数据寄存器:输出模式下–设定1为高电平 设定0为低电平
输入模式下–检测1为高电平 检测0为低电平
上/下拉:
输入模式可以设定上/下拉功能,可以保证浮空引脚的输入值固定,对非浮空引脚可以提高响应速度,增强抗干扰能力
输出模式–禁用上下拉。
驱动能力:
输入模式–禁用
输出模式–可以降低引脚驱动功率,使驱动能力降低约50% ,降低功率消耗。

1、创建好工程后打开main.c文件,如下图所示:
在这里插入图片描述
2、通过硬件原理图找到LED对应的端口号和引脚号,以及按键对应的端口号和引脚号,我这里使用PORT B 的第0脚来控制LED的亮灭 以及PORT A的第0脚来检测按键的输入。
在MC9S12XET256.c文件中可以找到PORT AB的数据寄存器以及数据方向寄存器的对应的地址,如下图所示:
在这里插入图片描述
在MC9S12XET256.h文件中能够找到其定义,如下图所示:
PORT B的数据寄存器:
在这里插入图片描述
在这里插入图片描述
PORT AB 的数据方向寄存器:
在这里插入图片描述
在这里插入图片描述
3、在main.c文件中对端口引脚进行初始化。

#include <hidef.h>      /* common defines and macros */
#include "derivative.h"      /* derivative-specific definitions */


#define LED_dir DDRB_DDRB0   //使用宏定义LED引脚方便区分
#define LED_DATA PORTB_PB0   

#define SWITCH_dir DDRA_DDRA0   //使用宏定义按键引脚方便区分
#define SWITCH_DATA PORTA_PA0 

void main(void) 
{
    /* put your own code here */
  
    LED_dir = 1;//初始化LED为输出
    LED_DATA = 0;
    SWITCH_dir = 0;//初始化按键为输入
    SWITCH_DATA = 1;
    EnableInterrupts;


    for(;;) 
    {
        
        if(SWITCH_DATA == 0)//检测到按键按下
        {
            LED_DATA = ~LED_DATA;//LED状态改变
        }
    
    } /* loop forever */
    /* please make sure that you never leave main */
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32

4、编写完成后进行编译,调试。
在这里插入图片描述
5、运行后,按键按下可以看到LED亮,再次按下LED灭,说明程序运行正常。
在这里插入图片描述
这里只进行了简单的输入输出配置,如要设置上/下拉,驱动能力配置可以在MC9S12XET256.h文件中找到对应的寄存器进行配置即可;
在这里插入图片描述
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/241702
推荐阅读
相关标签
  

闽ICP备14008679号