文章目录
- 一、引言
 - 1.1 cc.h
 - 1.2 main.c
 - 1.2 fsl_common.h、MCIMX6Y2.h、fsl_iomuxc.h
 - 1.3 对于宏定义能多个参数
 
- 其他
 
一、引言
在开发过程中,如果一个人来写寄存器、汇编等东西,会变得特别繁琐,好在官方NXP官方给出了SDK包,
1.1 cc.h
有关变量类型的定义,NXP官方SDK的一些移植文件会用到。
#define     __I     volatile 
#define     __O     volatile 
#define     __IO    volatile
typedef   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;
#endif
 
1.2 main.c
#include "fsl_common.h"
#include "fsl_iomuxc.h"
#include "MCIMX6Y2.h"
/*
 * @description	: 使能I.MX6U所有外设时钟
 * @param 		: 无
 * @return 		: 无
 */
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;
}
/*
 * @description	: 初始化LED对应的GPIO
 * @param 		: 无
 * @return 		: 无
 */
void led_init(void)
{
	/* 1、初始化IO复用 */
	IOMUXC_SetPinMux(IOMUXC_GPIO1_IO03_GPIO1_IO03,0);		/* 复用为GPIO1_IO0 */
	/* 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);
	/* 3、初始化GPIO,设置GPIO1_IO03设置为输出  */
	GPIO1->GDIR |= (1 << 3);	
	
	/* 4、设置GPIO1_IO03输出低电平,打开LED0 */
	GPIO1->DR &= ~(1 << 3);			
}
/*
 * @description	: 打开LED灯
 * @param 		: 无
 * @return 		: 无
 */
void led_on(void)
{
	/* 将GPIO1_DR的bit3清零 	*/
	GPIO1->DR &= ~(1<<3); 
}
/*
 * @description	: 关闭LED灯
 * @param 		: 无
 * @return 		: 无
 */
void led_off(void)
{
	/* 将GPIO1_DR的bit3置1 */
	GPIO1->DR |= (1<<3); 
}
/*
 * @description	: 短时间延时函数
 * @param - n	: 要延时循环次数(空操作循环次数,模式延时)
 * @return 		: 无
 */
void delay_short(volatile unsigned int n)
{
	while(n--){}
}
/*
 * @description	: 延时函数,在396Mhz的主频下
 * 			  	  延时时间大约为1ms
 * @param - n	: 要延时的ms数
 * @return 		: 无
 */
void delay(volatile unsigned int n)
{
	while(n--)
	{
		delay_short(0x7ff);
	}
}
/*
 * @description	: mian函数
 * @param 		: 无
 * @return 		: 无
 */
int main(void)
{
	clk_enable();		/* 使能所有的时钟 			*/
	led_init();			/* 初始化led 			*/
	while(1)			/* 死循环 				*/
	{	
		led_off();		/* 关闭LED 			*/
		delay(500);		/* 延时500ms 			*/
		led_on();		/* 打开LED 			*/
		delay(500);		/* 延时500ms 			*/
	}
	return 0;
}
 
1.2 fsl_common.h、MCIMX6Y2.h、fsl_iomuxc.h
从官方NXP的SDK包里面,主要是对于这三个文件的调用
 对于fsl_common是NXP官方SDK的通用宏定义文档
 对于fsl_iomuxc是NXP官方SDK的寄存器地址定义文档
 对于MCIM6Y2是NXP官方SDK的寄存器结构体和相关位定义文档
1.3 对于宏定义能多个参数
IOMUXC_SetPinMux(IOMUXC_GPIO1_IO03_GPIO1_IO03, 0);
 IOMUXC_GPIO1_IO03_GPIO1_IO03这个宏定义里面有5个参数,IOMUXC_SetPinMux这个函数总共有6个入口参数
 
 
其他
今天买了一块 RGBLCD的4.3寸的屏幕(200大洋没了),之后就是进行实验,记录下验证留着看
 对了例程里面,尤其是裸机例程,进入文件夹先make,
 之后必须用到imxdownload进行烧写到SD卡里面(不是直接把文件托进去)
 之后再插入板子上即可
 






![24-9-17-读书笔记(十八)-《契诃夫文集》(二)上([俄] 契诃夫 [译] 汝龙 )](https://i-blog.csdnimg.cn/direct/119d4e8f7a1440d7a0fa84ddbf230581.png)









![[数据集][目标检测]车窗状态检测车窗开关检测数据集VOC+YOLO格式299张3类别](https://i-blog.csdnimg.cn/direct/614e46e418304c09b7f0b77d47496086.png)


