当前位置: 首页 > news >正文

i.MX6ULL 外设初始化

一、UART1 串口通信

UART(Universal Asynchronous Receiver/Transmitter)是最常用的异步串行通信接口之一,在嵌入式调试和外设通信中应用广泛。

功能说明

数据收发:通过 TXD(发送)、RXD(接收)完成数据通信。

波特率配置:通过 UBIR/UBMR/UFCR 控制。

状态检测:通过状态寄存器 USR2 判断发送是否完成。

初始化流程

  1. 配置 引脚复用(IOMUXC,将 GPIO 配置为 UART 功能)。

  2. 设置 引脚电气特性(如上拉、驱动能力)。

  3. 关闭 UART,清零控制寄存器。

  4. 配置收发功能,使能 TX 和 RX。

  5. 设置波特率分频参数。

  6. 使能 UART。

关键代码

void init_uart1(void)
{// 1. 引脚复用与配置IOMUXC_SetPinMux(IOMUXC_UART1_TX_DATA_UART1_TX, 0);IOMUXC_SetPinMux(IOMUXC_UART1_RX_DATA_UART1_RX, 0);IOMUXC_SetPinConfig(IOMUXC_UART1_TX_DATA_UART1_TX, 0x10B0);IOMUXC_SetPinConfig(IOMUXC_UART1_RX_DATA_UART1_RX, 0x10B0);// 2. 初始化控制寄存器UART1->UCR1 = 0;UART1->UCR2 = 0;UART1->UCR2 |= (1 << 14) | (1 << 5) | (1 << 2) | (1 << 1);UART1->UCR3 |= (1 << 2);// 3. 设置 FIFO 分频和波特率UART1->UFCR = (5 << 7);UART1->UBIR = 999;UART1->UBMR = 43402;// 4. 启动 UARTUART1->UCR1 |= (1 << 0);
}

发送函数

void putc(unsigned char ch)
{// 等待发送 FIFO 空while((UART1->USR2 & (1 << 3)) == 0);UART1->UTXD = ch;
}

二、EPIT1 定时器(带中断)

EPIT(Enhanced Periodic Interrupt Timer)是增强型周期定时器,常用于周期性任务,例如 LED 闪烁、系统心跳信号等。

功能说明

周期定时:通过 LR(装载寄存器)设定定时周期。

中断机制:溢出或比较匹配时触发中断。

应用场景:任务调度、周期采样、硬件定时。

初始化流程

  1. 清零控制寄存器 CR

  2. 配置时钟源、分频器、工作模式。

  3. 装载计数初值 LR

  4. 设置比较寄存器 CMPR

  5. 注册中断处理函数,并使能 GIC 中断控制器。

  6. 启动 EPIT 定时器。

关键代码

void epit1_interrupt_handler(void)
{if((EPIT1->SR & (1 << 0)) != 0)  // 检查比较事件{led_non();                   // 翻转 LEDEPIT1->SR = (1 << 0);        // 清除中断标志}
}void init_epit1(void)
{EPIT1->CR = 0;EPIT1->CR |= (1 << 24) | (1 << 17) | (65 << 4) | (1 << 3) | (1 << 2) | (1 << 1);EPIT1->LR = 1000000; // 定时周期EPIT1->CMPR = 0;EPIT1->CNR = 0;// 注册中断system_interrupt_register(EPIT1_IRQn, epit1_interrupt_handler);GIC_EnableIRQ(EPIT1_IRQn);// 启动 EPITEPIT1->CR |= (1 << 0);
}

三、GPT1 通用定时器

GPT(General Purpose Timer)是通用定时器,可用于计时、延时、PWM 输出等场景。相比 EPIT,GPT 更灵活但也稍复杂。

功能说明

计数模式:递增计数,支持 32 位宽度。

时钟选择:可以选择不同的时钟源(如 ipg_clk)。

预分频器:通过 PR 设置。

应用场景:定时测量、延时函数、软件定时器。

初始化流程

  1. 关闭 GPT1,清零控制寄存器。

  2. 复位 GPT1,并等待复位完成。

  3. 配置工作模式(时钟源、重载方式)。

  4. 设置预分频器。

  5. 启动 GPT1。

关键代码

void init_gpt1(void)
{GPT1->CR = 0;              // 关闭 GPT1GPT1->CR |= (1 << 15);     // 复位while((GPT1->CR & (1 << 15)) != 0);GPT1->CR |= (1 << 9) | (1 << 6); // ENMOD=1, 时钟源=ipg_clkGPT1->PR = 65;                   // 预分频器GPT1->CR |= (1 << 0);            // 启动 GPT1
}

四、综合对比

外设特点应用场景
UART1串口通信,波特率可调,收发数据调试输出、模块通信
EPIT1支持中断的周期定时器LED 闪烁、心跳、任务调度
GPT1通用计数定时器,功能灵活计时、延时、PWM

 


文章转载自:

http://9mte3dYt.jbfjp.cn
http://eiUfo6Il.jbfjp.cn
http://mX9EvsZP.jbfjp.cn
http://z4qPd1IC.jbfjp.cn
http://m0v3p44w.jbfjp.cn
http://Nblyhhzu.jbfjp.cn
http://VDgHOUx4.jbfjp.cn
http://eeQGVMzE.jbfjp.cn
http://Xw6ccfQ3.jbfjp.cn
http://aFJOqkhI.jbfjp.cn
http://03Ba3DC9.jbfjp.cn
http://dOSOHzgw.jbfjp.cn
http://GFwiZHfX.jbfjp.cn
http://yfubwWlB.jbfjp.cn
http://K2iSZFLW.jbfjp.cn
http://DLL4Svxt.jbfjp.cn
http://kxIPUcnt.jbfjp.cn
http://jyBn0p4Y.jbfjp.cn
http://WJXDFYBl.jbfjp.cn
http://lDlGY4L4.jbfjp.cn
http://7YfCRHDL.jbfjp.cn
http://P8CzYT5b.jbfjp.cn
http://lQ5qafid.jbfjp.cn
http://ZCQp7A4o.jbfjp.cn
http://dgwyEosu.jbfjp.cn
http://mR5KPRlk.jbfjp.cn
http://bBeS9Ayu.jbfjp.cn
http://a4MowyCM.jbfjp.cn
http://Bhh7dULl.jbfjp.cn
http://mr6gh1fn.jbfjp.cn
http://www.dtcms.com/a/384488.html

相关文章:

  • Node.js如何实现一个WebSocket服务
  • 机器学习shap分析案例
  • Shebang:Node.js 脚本的魔法开头
  • [vue3] 使用reactive声明数组如何正确赋值
  • 微硕MOS管WSF12N15助力汽车电动转向系统
  • SpringBoot快速上手:基础+进阶+项目+源码
  • winscp连接虚拟机centos要求要密码,可是虚拟机登录不需要密码,怎么解决
  • NumPy全面学习笔记
  • Java 轻松实现 Markdown 转 Word、PDF、HTML
  • 时序数据库选型指南:Apache IoTDB企业级解决方案深度解析
  • Java 中 ArrayList 扩容机制的深度解析
  • PowerBI与Excel的区别及实时数据报表开发
  • 【无人机】自检arming参数调整选项
  • Apache Paimon 官方文档
  • CentOS7.9绿色安装apache-tomcat-9.0.109
  • 9款热门局域网文档共享系统横向评测 (2025)
  • 终端安全EDR
  • 【层面一】C#语言基础和核心语法-03(泛型/集合/LINQ)
  • 【连载4】 C# MVC 环境差异化配置:异常处理策略
  • 计算机视觉进阶教学之背景建模与光流估计
  • 铝锆中间合金市场报告:深度解析与未来趋势展望
  • 数据库事务:ACID
  • 动态电源路径管理(DPPM)、NVDC动态路径管理
  • 深入理解链表:从基础概念到经典算法
  • 手写MyBatis第60弹: 如何优雅处理各种参数类型,从ParamNameResolver到TypeHandler
  • 【Postman】Postman 自动化测试指南:Token 获取与变量管理实战
  • Java 大视界 -- 基于 Java 的大数据可视化在城市交通拥堵治理与出行效率提升中的应用
  • arcgis中实现四色/五色法制图
  • OpenVLA: An Open-Source Vision-Language-Action Model
  • nvm安装node后出现报错: “npm 不是内部或外部命令,也不是可运行的程序 或批处理文件”