任何单片机,从点灯开始(GPIO输出)

1、LED初始化(fsl_gpio.h)

void LED_INIT(void)
{gpio_pin_config_t LEDconfig;//GPIO初始化句柄CLOCK_EnableClock(kCLOCK_PortB);//GPIOB端口时钟初始化PORT_SetPinMux(LED_PORT,LED1,kPORT_MuxAsGpio);//端口复用为GPIO模式PORT_SetPinMux(LED_PORT,LED2,kPORT_MuxAsGpio);//端口复用为GPIO模式PORT_SetPinMux(LED_PORT,LED3,kPORT_MuxAsGpio);//端口复用为GPIO模式PORT_SetPinMux(LED_PORT,LED4,kPORT_MuxAsGpio);//端口复用为GPIO模式LEDconfig.pinDirection = kGPIO_DigitalOutput;//配置为输出模式LEDconfig.outputLogic = 0;      //输出0  GPIO_PinInit(LED_GPIOINSTANCE,LED1,&LEDconfig); //GPIO初始化GPIO_PinInit(LED_GPIOINSTANCE,LED2,&LEDconfig); //GPIO初始化GPIO_PinInit(LED_GPIOINSTANCE,LED3,&LEDconfig); //GPIO初始化GPIO_PinInit(LED_GPIOINSTANCE,LED4,&LEDconfig); //GPIO初始化
}

其实GPIO初始化就相当于对PORT进行初始化,并把它复用为GPIO,所以,GPIO在这里也是一种复用功能,若不复用成GPIO,则为DISABLE。

2、宏定义

#define LED_PORT                PORTB
#define LED_GPIOINSTANCE        GPIOB
#define LED1                    20U
#define LED2                    21U
#define LED3                    22U
#define LED4                    23U

数字后面加 “ U ”表示无符号,则 “23U” 表示无符号整型

按键(GPIO输入)

1、按键初始化(fsl_gpio.h)

void KEY_INIT(void)
{gpio_pin_config_t keyconfig;//GPIO初始化句柄CLOCK_EnableClock(kCLOCK_PortD);//GPIOD端口时钟初始化PORT_SetPinMux(KEY_PORT,KEY_PIN,kPORT_MuxAsGpio);//端口复用为GPIO模式keyconfig.pinDirection = kGPIO_DigitalInput;//配置为输入GPIO_PinInit(KEY_GPIOINSTANCE,KEY_PIN,&keyconfig);
}

2、宏定义

#define KEY_PORT              PORTD
#define KEY_GPIOINSTANCE     GPIOD
#define KEY_PIN              7U

个人心得:

1、 port在复用时填入的是PORTx,而不是GPIOx,容易填错造成初始化失败。
2、SDK包和ST标准库的初始化顺序一样,都是:定义初始化结构句柄—初始化端口时钟—引脚复用—配置初始化结构体—初始化,而不一样在于,SDK包使用GPIO时也要复用,不复用则用不了,而标准库没复用默认为GPIO模式
3、使用NXP的SDK包和ST的标准库差不多,相等于换了个包装的ST标准库一样。

用SDK包开发K66FX18学习笔记(1)相关推荐

  1. 用SDK包开发K66FX18学习笔记(5)

    ADC采集(光敏电阻) 1.宏定义 #define ADC0_INSTANCE ADC0 #define ADC1_GPIO GPIOA #define ADC1_PORT PORTA #define ...

  2. 用SDK包开发K66FX18学习笔记(2)

    PIT定时器(更新中断) 1.宏定义 #define PIT_CHANNAL kPIT_Chnl_0 //通道0 #define PIT_DELAY 500000 //500MS #define PI ...

  3. 用SDK包开发K66FX18学习笔记(4)

    FTM脉冲输入捕获 1.宏定义 #define INCAP_INSTANCE FTM1 //端口号 #define INCAP_CHANNEL0 kFTM_Chnl_0 //通道号 #define I ...

  4. 用SDK包开发K66FX18学习笔记(3)

    FTM输出PWM 1.宏定义 #define FTM_INSTANCE FTM2 //FTM端口 #define FTM_CHANNAL0 0U //FTM通道 #define FTM_CHANNAL ...

  5. iTOP-RK3568开发板学习笔记(1)编译+烧录系统

    迅为 RK3568 开发板学习笔记 文章目录 准备开发环境 复制 Linux SDK 编译 Buildroot 烧录固件 准备开发环境 将 ITOP-RK3568 资料包中的虚拟机开发环境解压到自己的 ...

  6. 多人网络游戏服务器开发基础学习笔记 II: 帧同步 | 游戏客户端预测原理分析 | FPS 游戏状态同步

    这篇是对书本 网络多人游戏架构与编程 的学习第二篇(第一篇:多人网络游戏服务器开发基础学习笔记 I:基本知识 | 游戏设计模式 | 网游服务器层次结构 | 游戏对象序列化 | 游戏 RPC 框架 | ...

  7. “物联网开发实战”学习笔记-(四)智能音箱制作和语音控制

    "物联网开发实战"学习笔记-(四)智能音箱制作和语音控制 这次来造一个属于自己的智能音箱,这里详细介绍了智能音箱的语音控制的实现. 智能音箱的技术架构 智能音箱主要涉及拾音.前端信 ...

  8. 涂鸦LZ201-CN开发板学习笔记(一)

    涂鸦LZ201-CN开发板学习笔记(一) 前言 一.引出 二.准备流程 1.购买开发板 2.创建产品 (1)创建产品 (2)功能定义 (3)设备交互 (4)硬件开发 3.检查开发板 第一步: 第二步: ...

  9. “物联网开发实战”学习笔记-(二)手机控制智能电灯

    "物联网开发实战"学习笔记-(二)手机控制智能电灯 如果搭建好硬件平台后,这一次我们的任务主要是调试好智能电灯,并且连接到腾讯云的物联网平台. 腾讯云物联网平台 腾讯物联网平台的优 ...

最新文章

  1. java heep space错误解决办法
  2. shape(15,)与(15,1)的区别
  3. 用Unity3D实现智能巡逻兵游戏
  4. vanilla_如何在Vanilla JavaScript中操作DOM
  5. 一般处理程序(ashx)和页面处理程序(aspx)的区别
  6. html传输的数值表示的含义,数字传递游戏的意义与感悟_传数字游戏心得体会
  7. php调用第三方的api,PHP接口编程——调用第三方接口获取天气
  8. 特斯拉又熬过破产危机后,马斯克说自动驾驶芯片已经准备好了
  9. 会计计算机,什么是好的计算机会计软件?
  10. ubuntu服务器基本安全配置
  11. 2022年安全员-B证考试试题模拟考试平台操作
  12. echarts 2.0 macarons主题安装
  13. 锂离子电池HPPC测量
  14. python求导并作图_科学网—python-符号运算(求导等) - 夏江江的博文
  15. Axure 蚂蚁设计团队组件库 让交互稿美美搭
  16. 搜狗输入法linux在哪,在Linux中安装搜狗输入法
  17. Dr. Evil Underscores
  18. php在使用MySQL查询时特殊字符自动转义的问题
  19. SAS linux windows 性能,在Linux上提高SAS JBOD性能的多路径
  20. python从第二行开始写_Python第2课 - 第一个Python程序

热门文章

  1. android 删除短信无效,android删除短信(绕过权限)
  2. EDK II Module Writers Guide上
  3. 微型计算机增刊2016,科幻世界·2016年增刊
  4. 记中国著名佛学书法家——释心仁
  5. 0xc0000225无法进系统_系统重装|电脑无法开机蓝屏错误代码0xc0000225故障问题
  6. 电脑任务栏突然变得很宽很大
  7. jupyter notebook的安装与启动
  8. MAC 扩展屏,颜色描述文件
  9. 社会生活中十大著名法则
  10. 「大冰撸设计模式」java 创建型模式之单例模式