用SDK包开发K66FX18学习笔记(1)
任何单片机,从点灯开始(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)相关推荐
- 用SDK包开发K66FX18学习笔记(5)
ADC采集(光敏电阻) 1.宏定义 #define ADC0_INSTANCE ADC0 #define ADC1_GPIO GPIOA #define ADC1_PORT PORTA #define ...
- 用SDK包开发K66FX18学习笔记(2)
PIT定时器(更新中断) 1.宏定义 #define PIT_CHANNAL kPIT_Chnl_0 //通道0 #define PIT_DELAY 500000 //500MS #define PI ...
- 用SDK包开发K66FX18学习笔记(4)
FTM脉冲输入捕获 1.宏定义 #define INCAP_INSTANCE FTM1 //端口号 #define INCAP_CHANNEL0 kFTM_Chnl_0 //通道号 #define I ...
- 用SDK包开发K66FX18学习笔记(3)
FTM输出PWM 1.宏定义 #define FTM_INSTANCE FTM2 //FTM端口 #define FTM_CHANNAL0 0U //FTM通道 #define FTM_CHANNAL ...
- iTOP-RK3568开发板学习笔记(1)编译+烧录系统
迅为 RK3568 开发板学习笔记 文章目录 准备开发环境 复制 Linux SDK 编译 Buildroot 烧录固件 准备开发环境 将 ITOP-RK3568 资料包中的虚拟机开发环境解压到自己的 ...
- 多人网络游戏服务器开发基础学习笔记 II: 帧同步 | 游戏客户端预测原理分析 | FPS 游戏状态同步
这篇是对书本 网络多人游戏架构与编程 的学习第二篇(第一篇:多人网络游戏服务器开发基础学习笔记 I:基本知识 | 游戏设计模式 | 网游服务器层次结构 | 游戏对象序列化 | 游戏 RPC 框架 | ...
- “物联网开发实战”学习笔记-(四)智能音箱制作和语音控制
"物联网开发实战"学习笔记-(四)智能音箱制作和语音控制 这次来造一个属于自己的智能音箱,这里详细介绍了智能音箱的语音控制的实现. 智能音箱的技术架构 智能音箱主要涉及拾音.前端信 ...
- 涂鸦LZ201-CN开发板学习笔记(一)
涂鸦LZ201-CN开发板学习笔记(一) 前言 一.引出 二.准备流程 1.购买开发板 2.创建产品 (1)创建产品 (2)功能定义 (3)设备交互 (4)硬件开发 3.检查开发板 第一步: 第二步: ...
- “物联网开发实战”学习笔记-(二)手机控制智能电灯
"物联网开发实战"学习笔记-(二)手机控制智能电灯 如果搭建好硬件平台后,这一次我们的任务主要是调试好智能电灯,并且连接到腾讯云的物联网平台. 腾讯云物联网平台 腾讯物联网平台的优 ...
最新文章
- java heep space错误解决办法
- shape(15,)与(15,1)的区别
- 用Unity3D实现智能巡逻兵游戏
- vanilla_如何在Vanilla JavaScript中操作DOM
- 一般处理程序(ashx)和页面处理程序(aspx)的区别
- html传输的数值表示的含义,数字传递游戏的意义与感悟_传数字游戏心得体会
- php调用第三方的api,PHP接口编程——调用第三方接口获取天气
- 特斯拉又熬过破产危机后,马斯克说自动驾驶芯片已经准备好了
- 会计计算机,什么是好的计算机会计软件?
- ubuntu服务器基本安全配置
- 2022年安全员-B证考试试题模拟考试平台操作
- echarts 2.0 macarons主题安装
- 锂离子电池HPPC测量
- python求导并作图_科学网—python-符号运算(求导等) - 夏江江的博文
- Axure 蚂蚁设计团队组件库 让交互稿美美搭
- 搜狗输入法linux在哪,在Linux中安装搜狗输入法
- Dr. Evil Underscores
- php在使用MySQL查询时特殊字符自动转义的问题
- SAS linux windows 性能,在Linux上提高SAS JBOD性能的多路径
- python从第二行开始写_Python第2课 - 第一个Python程序