当前位置: 首页 > 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,并将电平拉高,结束读取。

相关文章:

  • 【开源工具】Windows一键配置防火墙阻止策略(禁止应用联网)| 附完整Python源码
  • 事件循环(Event Loop)机制对比:Node.js vs 浏览器​
  • ethers.js express vue2 定时任务每天凌晨2点监听合约地址数据同步到Mysql整理
  • 【CMake基础入门教程】第六课:构建静态库 / 动态库 与安装规则(install)
  • MySQL至KES迁移最佳实践
  • 用 Spark 优化亿级用户画像计算:Delta Lake 增量更新策略详解
  • vue3 json 转 实体
  • 2.1、STM32 CAN外设简介
  • Vue3 中 Axios 深度整合指南:从基础到高级实践引言总结
  • MR30分布式IO:产线改造省时 70%
  • 22. 括号生成
  • AI编程工具深度对比:腾讯云代码助手CodeBuddy、Cursor与通义灵码
  • ubuntu20.04如何给appImage创建快捷方式
  • EXILIUM×亚矩云手机:重构Web3虚拟生存法则,开启多端跨链元宇宙自由征途
  • 【JeecgBoot AIGC】打造智能AI应用
  • 51c~嵌入式~PLC~三菱~合集1
  • 记dwz(JUI)前端框架使用之--服务端响应提示框
  • 如何在x86_64 Linux上部署Android Cuttlefish模拟器运行环境
  • Spring Cloud Feign 整合 Sentinel 实现服务降级与熔断保护
  • python + opencv实现简单的文字水印