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

day48-硬件学习之GPT定时器、UART及I2C

一、GPT定时器(通用目的定时器)

1.1 GPT的特性

  1. 一个可选时钟源的 32 位向上计数器。
  2. 两个输入捕获通道,可以设置触发方式。
  3. 三个输出比较通道,可以设置输出模式。
  4. 可以生成捕获中断、比较中断和溢出中断。
  5. 计数器可以运行在重新启动(restart)或(自由运行)free-run 模式。

1.2 时钟源选择

时钟有5种选择,选择时钟后再进行分频。

  1. 直接用24M晶振
  2. 外部时钟GPT_CLK
  3. 外围时钟
  4. 低频基准时钟
  5. 高频基准时钟

GPTx_IR寄存器介绍
该寄存器用于对回滚中断、输入捕获中断、输出比较中断进行使能和失能的配置。(详见参考手册P1236)。

GPTx_OCRx寄存器介绍
用来配置输出比较寄存器的值,大小为0~2^32-1。

GPTx_ICRx寄存器介绍
用来存放输入捕获到的值,该寄存器的只有可读权限。

GPTx_CNT寄存器介绍
主计数器的寄存器。GPT_CNT是一个只读寄存器,可以读取而不影响GPT的计数过程。

二、UART

IMX中设置了FIFO缓冲区,提高CPU的执行效率;

相关寄存器:

2.1 实验目标:使用115200,n,8,1来实现UART

uart.c:


uart.h

2.2 移植库

步骤: 

  1. 获取源码
  2. 进行适配(将源码与本机相匹配);

 三、I2C

        I2C(内部集成电路总线):同步串行半双工通信;(通常用于芯片与芯片之间)

        对于硬件设置上,为了保证双方在释放总线时,能呈现高电平,需在每根线上(SCL,SDA)接上拉电阻,上拉电阻阻值为4.7K~10K

  1. 同步串行半双工通信总线方式;
  2. 用于芯片与芯片之间;
  3. 通信方式:

时钟信号由主机提供;

I2C采用MSB(高位先行原则) ;

I2C规定时钟信号为低电平时,发送方可以修改SDA;但高电平时,不可修改SDA,是接收方采用时间;

在时钟信号线为高电平时,主机将电平由低电平拉向高电平,发送停止位,结束通信;

步骤:

(1)发送方发一个起始信号(在SCL为高电平时,SDA发送一个低电平);

(2)传输数据,根据高位先行原则(MSB)且在低电平时,发送方可以修改SDA,高电平时不可以修改SDA,是接收方接收的时间;

(3)发送完一个字节后,等待接收方应答信号,若为低电平,则表示已接收(ACK),反之为NACK

(4)在SCL为高电平时,发送方将SDA拉高,结束通信


 

主机写:

        先发送起始位,传输设备地址和数据流向位,数据流向位为低电平(表示主机向从机发送信息),接受从机应答(ACK)后,发送数据存放地址,从机应答,发送数据内容,发送完毕,从机发送应答,主机在时钟信号线为高电平时,将数据线由低电平拉向高电平,结束发送。

主机读:

        主机发送起始位,发送从机地址与数据流向位为写,从机应答;发送数据存放地址,从机应答后;重新发送起始位,发送从机地址与数据流向位为读,从机应答;从机发送数据,主机发送应答信号;当数据读取完后,主机发送NACK,并将电平拉高,结束读取。

http://www.lqws.cn/news/536707.html

相关文章:

  • 日语学习-日语知识点小记-进阶-JLPT-真题训练-N2阶段(4):2022年12月2023年12月
  • 机器学习18-强化学习RLHF
  • python基于协同过滤的动漫推荐系统
  • 华为云Flexus+DeepSeek征文|一键部署知识库搜索增强版搭建AI Agent
  • 《仿盒马》app开发技术分享-- 逻辑优化第三弹(83)
  • 新手向:Neo4j的安装与使用
  • 供应链数据可视化大屏
  • OneCode框架 Tree 相关注解使用说明
  • 服务器的安装与安全设置 域环境的搭建和管理 Windows基本配置 网络服务常用网络命令的应用 安全管理Windows Server 2019
  • 独立开发还能做吗
  • Git-git worktree的使用
  • 测试方法的分类
  • recipes的版本比较老如何更新到新版本?
  • 板凳-------Mysql cookbook学习 (十--11)
  • AAAI 2025论文分享│面向生物医学的具有像素级洞察力的多模态大语言模型
  • day43 打卡
  • Redis主从架构哨兵模式
  • Rk3568驱动开发_Key驱动_13
  • Flink部署与应用——Flink架构概览
  • 如何在 Manjaro Linux 上启用 AUR 仓库来安装软件包
  • 关于如何在 Git 中切换到之前创建的分支的方法
  • 机器学习17-发展历史补充
  • 云财乐企新华网专访:以数字引擎驱动财税普惠化变革,赋能企业高质量发展
  • 可视化大屏展示
  • ubuntu部署woodpecker依赖gitea
  • 2-深度学习挖短线股-1-股票范围选择
  • Linux 高效网络调试命令
  • 同步互斥与通信-有缺陷的同步示例FreeRTOS笔记
  • window显示驱动开发—支持 DXGI DDI(四)
  • 21.合并两个有序链表