05. NXP官方SDK使用实验
05. NXP官方SDK使用实验
- 官方SDK移植
官方SDK移植
- 新建cc.h文件
SDK包里面会用到很多数据类型,所以需要在该文件中定义一些常用的数据类型
#pragma once
#define __I volatile
#define __O volatile
#define __IO volatiletypedef signed char int8_t;
typedef signed short int int16_t;
typedef signed int int32_t;
typedef unsigned char uint8_t;
typedef unsigned short int uint16_t;
typedef unsigned int uint32_t;
typedef unsigned long long uint64_t;
typedef signed char s8;
typedef signed short int s16;
typedef signed int s32;
typedef signed long long int s64;
typedef unsigned char u8;
typedef unsigned short int u16;
typedef unsigned int u32;
typedef unsigned long long int u64;
-
移植文件
需要移植的文件fsl_common.h、fsl_iomuxc.h、MCIMX6Y2.h
-
主函数
#include "fsl_common.h"
#include "fsl_iomuxc.h"
#include "MCIMX6Y2.h"void clk_enable(void)
{CCM->CCGR0 = 0XFFFFFFFF;CCM->CCGR1 = 0XFFFFFFFF;CCM->CCGR2 = 0XFFFFFFFF;CCM->CCGR3 = 0XFFFFFFFF;CCM->CCGR4 = 0XFFFFFFFF;CCM->CCGR5 = 0XFFFFFFFF;CCM->CCGR6 = 0XFFFFFFFF;}
void led_init(void)
{/* 1、初始化IO复用 */IOMUXC_SetPinMux(IOMUXC_GPIO1_IO03_GPIO1_IO03,0); // 设置IO复用功能/* 2、、配置GPIO1_IO03的IO属性 *bit 16:0 HYS关闭*bit [15:14]: 00 默认下拉*bit [13]: 0 kepper功能*bit [12]: 1 pull/keeper使能*bit [11]: 0 关闭开路输出*bit [7:6]: 10 速度100Mhz*bit [5:3]: 110 R0/6驱动能力*bit [0]: 0 低转换率*/IOMUXC_SetPinConfig(IOMUXC_GPIO1_IO03_GPIO1_IO03,0X10B0); // 设置IO的上下拉、电阻等// 该函数第一个参数是IO配置寄存器,如果要复用为GPIO,就是IO03,第二个参数是要写入寄存器的值/* 3、初始化GPIO,设置GPIO1_IO03设置为输出 */GPIO1->GDIR |= (1 << 3); /* 4、设置GPIO1_IO03输出低电平,打开LED0 */GPIO1->DR &= ~(1 << 3);
}
void led_on(void)
{/* 将GPIO1_DR的bit3清零 */GPIO1->DR &= ~(1<<3);
}
void led_off(void)
{/* 将GPIO1_DR的bit3置1 */GPIO1->DR |= (1<<3);
}
void delay_short(volatile unsigned int n)
{while(n--){}
}
void delay(volatile unsigned int n)
{while(n--){delay_short(0x7ff);}
}
int main(void)
{clk_enable(); led_init(); while(1) { led_off(); delay(500); led_on(); delay(500); }return 0;
}