裸机

I.MX6ULL

正点原子 I.MX6ULL MINI 开发板学习笔记:GT9147 电容触摸屏驱动

这篇笔记继续正点原子 I.MX6ULL MINI 开发板裸机学习,主题是GT9147 电容触摸屏驱动。代码来自实际工程 /home/zhao/code/2026/touch_screen,通过 I2C2 + 中断读取触摸坐标。 1. 完成什么实验? 驱动 GT9147 电容触摸芯片,通过 I2C2 读取触摸点坐标,并用 GPIO1_IO09 中断触发读取。 2. 电容屏和电阻屏有什么区别? 电容屏靠人体感应电荷工作,支持多点触控,表面覆盖玻璃,寿命长、手感好;电阻屏靠压力使两层导电膜接触,通常只支持单点,表面为软屏,容易磨损。 3. GT9147 使用什么接口? GT9147 使用 I2C 通信,同时需要 INT 中断引脚和

作者:azhezhezhe

I.MX6ULL

正点原子 I.MX6ULL MINI 开发板学习笔记:LCD 显示屏与 Framebuffer

这篇笔记继续正点原子 I.MX6ULL MINI 开发板裸机学习,主题是LCD 显示屏与 Framebuffer。代码来自实际工程 /home/zhao/code/2026/touch_screen,实现 800x480 RGB LCD 的驱动。 1. 完成什么实验? 驱动 800x480 分辨率的 RGB LCD,配置 I.MX6ULL 的 LCDIF 控制器,通过 Framebuffer 实现画点、清屏、显示字符等基本绘图功能。 2. 什么是 LCDIF? LCDIF(LCD Interface)是 I.MX6ULL 内置的显示控制器,负责把 Framebuffer

作者:azhezhezhe

I.MX6ULL

正点原子 I.MX6ULL MINI 开发板学习笔记:PWM 脉冲宽度调制

这篇笔记继续正点原子 I.MX6ULL MINI 开发板裸机学习,主题是PWM 脉冲宽度调制。代码来自实际工程 /home/zhao/code/2026/touch_screen,主要用 PWM1 控制 LCD 背光亮度。 1. 完成什么实验? 使用 PWM1 输出可调占空比的方波,用于控制 LCD 背光亮度。通过改变占空比,实现屏幕背光从暗到亮的连续调节。 2. 什么是 PWM? PWM(Pulse Width Modulation,脉冲宽度调制)是一种通过改变高电平在一个周期内的占比,来控制平均电压或输出功率的技术。频率不变时,占空比越大,平均电压越高。 3. 什么是占空比? 占空比 = 一个周期内高电平时间 / 周期时间,范围 0~100%

作者:azhezhezhe

I.MX6ULL

正点原子 I.MX6ULL MINI 开发板学习笔记:LM75 温度传感器采集

这篇笔记继续正点原子 I.MX6ULL MINI 开发板裸机学习,主题是LM75 温度传感器采集。这是 I2C 总线的第一个实际应用。代码来自实际工程 /home/zhao/code/2026/touch_screen。 1. 完成什么实验? 通过 I2C1 读取 LM75 温度传感器的温度寄存器,把原始数据换算成摄氏度并通过串口打印。注意:正点原子 MINI 开发板 I2C1 上板载的是 AP3216C,并没有板载 LM75——本实验用的是外接 LM75 模块,SDA/SCL 接 I2C1 的复用引脚(UART4_RX/UART4_TX),地址 0x48。 2. LM75

作者:azhezhezhe

I.MX6ULL

正点原子 I.MX6ULL MINI 开发板学习笔记:I2C 总线协议与控制器

这篇笔记继续正点原子 I.MX6ULL MINI 开发板裸机学习,主题是I2C 总线协议与控制器。I2C 是传感器、触摸屏、EEPROM 等芯片最常用的总线之一。代码来自实际工程 /home/zhao/code/2026/touch_screen。 1. 完成什么实验? 实现 I.MX6ULL I2C1/I2C2 控制器的初始化,以及基于 I2C 协议的字节写和字节读函数,为后续 LM75 温度传感器、GT9147 触摸屏驱动做准备。 2. 什么是 I2C? I2C(Inter-Integrated Circuit)是飞利浦提出的半双工串行总线,只需要两根线:SCL(时钟)和 SDA(数据)。它采用主从架构,

作者:azhezhezhe

I.MX6ULL

正点原子 I.MX6ULL MINI 开发板学习笔记:UART 串口通信与 printf

这篇笔记继续正点原子 I.MX6ULL MINI 开发板裸机学习,主题是UART 串口通信与 printf 输出。有了串口,开发板就能向 PC 打印调试信息,这是裸机调试最重要的手段。代码来自实际工程 /home/zhao/code/2026/touch_screen。 1. 完成什么实验? 配置 I.MX6ULL 的 UART1,实现单字符发送 putc()、字符串发送 puts(),并把标准库 printf 底层对接上去,让程序可以通过 printf() 向串口助手输出信息。 2. 什么是 UART? UART(Universal Asynchronous Receiver/Transmitter,通用异步收发器)是一种异步串行通信协议。它只需要两根数据线:TX(

作者:azhezhezhe

I.MX6ULL

正点原子 I.MX6ULL MINI 开发板学习笔记:GPT 定时器与延时函数

这篇笔记继续正点原子 I.MX6ULL MINI 开发板裸机学习,主题是GPT 定时器与软件延时。代码来自实际工程 /home/zhao/code/2026/touch_screen。 1. 完成什么实验? 配置 I.MX6ULL 的 GPT1 定时器作为自由运行的计数器,实现微秒级和毫秒级软件延时函数 delay_us() / delay_ms(),供 LED 闪烁、I2C 时序等模块调用。 2. GPT 与 EPIT 有什么区别? 特性EPITGPT 计数方向递减递增 主要用途周期中断自由运行计数、输入捕获、输出比较 重载可自动重载自由运行,溢出后从 0 继续 延时实现中断方式轮询 CNT 差值 3.

作者:azhezhezhe

I.MX6ULL

正点原子 I.MX6ULL MINI 开发板学习笔记:EPIT 定时器

这篇笔记继续正点原子 I.MX6ULL MINI 开发板裸机学习,主题是EPIT 定时器。定时器是嵌入式系统里最常用的外设之一,用来产生精确延时和周期性中断。代码来自实际工程 /home/zhao/code/2026/touch_screen。 1. 完成什么实验? 配置 I.MX6ULL 的 EPIT1 定时器,使其以固定周期产生中断,在中断服务函数里翻转 LED,实现周期闪烁。 2. 什么是 EPIT 定时器? EPIT(Enhanced Periodic Interrupt Timer)是 I.MX6ULL 内部的增强型周期中断定时器。它是一个 32 位递减计数器,从装载值 LR 开始减,减到比较值 CMPR 时产生比较中断;

作者:azhezhezhe

I.MX6ULL

正点原子 I.MX6ULL MINI 开发板学习笔记:ARM Cortex-A7 中断控制器 GIC

这篇笔记继续正点原子 I.MX6ULL MINI 开发板裸机学习,主题是ARM Cortex-A7 的中断系统。代码来自实际工程 /home/zhao/code/2026/touch_screen。 1. 完成什么实验? 理解 ARM Cortex-A7 中断响应流程,掌握 GIC(Generic Interrupt Controller)的初始化和中断注册方法。后续按键、EPIT、GPT、PWM、触摸屏等都依赖这套中断机制。 2. 什么是中断? 中断是外设或内部事件主动通知 CPU 的一种机制。当事件发生时,CPU 会暂停当前程序,跳转到预先设置好的中断处理函数执行;处理完后再返回原程序。相比轮询,中断能大大提高 CPU 效率。 3. ARM

作者:azhezhezhe

I.MX6ULL

正点原子 I.MX6ULL MINI 开发板学习笔记:I.MX6ULL 时钟系统与 CCM

这篇笔记继续正点原子 I.MX6ULL MINI 开发板裸机学习,主题是I.MX6ULL 的时钟系统。如果把 SoC 比作一台机器,时钟就是它的“心跳”,所有模块都靠时钟驱动。代码来自实际工程 /home/zhao/code/2026/touch_screen。 1. 完成什么实验? 配置 I.MX6ULL 的系统时钟:把 ARM 内核时钟跑到约 528MHz,同时配置 528MHz/480MHz PLL 的 PFD,并打开所有外设的时钟门控,为后续 UART、I2C、SPI、LCD 等外设提供时钟。 2. SoC 为什么需要时钟系统? SoC 内部有 CPU、

作者:azhezhezhe

I.MX6ULL

正点原子 I.MX6ULL MINI 开发板学习笔记:GPIO 输入——按键与蜂鸣器

这篇笔记继续正点原子 I.MX6ULL MINI 开发板的 GPIO 学习,主题是GPIO 输入——按键检测和蜂鸣器控制。代码来自实际工程 /home/zhao/code/2026/touch_screen。 1. 完成什么实验? 把 GPIO1_IO18 配置为输入模式,检测按键是否被按下;按下时通过中断翻转 LED 状态。同时把 GPIO5_IO01 配置为输出,控制蜂鸣器响/停。 2. GPIO 输入和输出有什么区别? * 输出模式:CPU 通过 DR 寄存器控制引脚电平,如点灯、驱动蜂鸣器。 * 输入模式:CPU 通过 PSR 寄存器读取引脚真实电平(注意:I.

作者:azhezhezhe

I.MX6ULL

正点原子 I.MX6ULL MINI 开发板学习笔记:GPIO 输出与 LED 点灯

这篇笔记记录在正点原子 I.MX6ULL MINI 开发板上完成的最基础实验——GPIO 输出控制 LED 点灯。内容来自实际工程 /home/zhao/code/2026/touch_screen 中的验证代码,适合作为裸机学习的第一站。 1. 完成什么实验? 通过配置 I.MX6ULL 的 GPIO1_IO03 引脚为输出模式,控制板载 LED 的亮灭和翻转。 2. 什么是 GPIO? GPIO(General Purpose Input/Output,通用输入输出)是 SoC 上最基础的可编程引脚。每个 GPIO 引脚可以被配置为输入或输出:输出时 CPU 可以控制引脚电平(高/低)

作者:azhezhezhe