ARM定时器串口
一、UARTUARTUniversal Asynchronous Receiver/Transmitter通用异步收发器串行、异步、全双工的通信接口控制器。发送时把并行数据转成串行帧起始位数据位校验位停止位逐位发出接收时检测起始位、按波特率逐位采样还原数据。1. UART通信参数讲义配置115200 8 N 1参数讲义取值含义波特率115200每秒传输的位数数据位8每帧8位数据校验位N无校验停止位11位停止位2. 波特率寄存器计算讲义原例115200bpsIMX6ULL的UART用UBMR/UBIR两个寄存器配波特率公式$$波特率 \frac{参考时钟}{(UBMR 1)} \times \frac{?}{(UBIR 1)}\ 按讲义数值反推$$讲义给的数值UBIR 999UBMR 43402即参考时钟与分频比配合后得到115200。例如$$\frac{4431000 \times (UBIR1)}{(UBMR1)} \approx \frac{4431000 \times 1000}{43403} \approx 115200$$记忆要点配波特率就是配 UBMR/UBIR 这对分频寄存器先定参考时钟再按目标波特率算出两寄存器值写入即可。3. 收发方式轮询讲义指出裸机下UART发送/接收采用轮询方式发送时轮询发送缓冲区空标志位接收时轮询接收完成标志位Linux下才用中断/DMA。4. 流控0x10流控相关UART可带RTS/CTS 硬件流控信号全称含义RTS_BRequest To Send请求发送告诉对方本设备准备好接收数据了CTS_BClear To Send清除发送告诉对方暂停发送数据作用防止缓冲区溢出避免丢包。接收方来不及处理时通过流控让发送方暂停。5. 多机通信Modbus拓扑讲义还给出UART在工业现场的组网方式Master(IMX6ULL) ──┬── Slaver 1 ├── Slaver 2 └── Slaver 3单主机多从机拓扑典型协议Modbus主机轮询各从机适用于强干扰、强电场的工业环境RS-485差分传输抗干扰校验方式累加和校验、奇偶校验、CRC校验主机可通过自动检测从机地址的方式寻址通信二、EPITEPITEnhanced Periodic Interrupt Timer增强型周期中断定时器IMX6ULL中的32位自减型定时器。特性说明计数方向自减型从装载值往下减减到0产生中断并自动重装计数范围0x00000000 ~ 0xFFFFFFFF32位时钟源可选24MHz另有32.768kHzRTC用典型用途周期性中断如按键消抖定时、周期任务EPIT两种工作模式模式工作方式Free-Running Mode自由运行模式从0xFFFFFFFF开始自减减到0后回绕到0xFFFFFFFF继续减Set and Forget Mode设置-遗忘模式装载一个初值减到0产生中断后自动重装该初值无需软件干预——设置一次忘了它应用按键消抖讲义用EPIT演示了按键消抖硬件消抖并联电容电容阻断直流、导通交流——抖动的毛刺是交流成分被电容滤掉稳定的电平是直流无法通过软件消抖定时器延时——检测到按键按下后用定时器延时10~20ms再读一次电平躲过抖动期。三、GPTGPTGeneral Purpose Timer通用定时器IMX6ULL中的32位自增型定时器。特性说明计数方向自增型从0往上加对比EPIT自减计数范围0x00000000 ~ 0xFFFFFFFF32位Free-RUN从0自增到0xFFFFFFFF → 回绕 0x00000000继续增核心能力输入捕获 输出比较GPT实现us级延时讲义代码思路void delayus(unsigned int n) { unsigned int old, counter; old 读GPT计数器; while (1) { counter 读GPT计数器; if (counter - old n) // 自增型用差值判断 break; } }利用old与new计数差值 n判断延时到自增型计数器回绕时差值仍正确用无符号减法。应用电机测速讲义例子检测电机转速输入捕获编码器脉冲计数——4个脉冲 1度1000个脉冲 250圈即电机转一圈输出4个脉冲按讲义数值1000脉冲对应250圈×4脉冲/圈控制电机转速输出比较输出指定频率的PWM方波驱动电机四、输入捕获和输出比较GPT定时器的两大核心功能GPT有输入捕获通道和输出比较通道1. 输入捕获Input Capture——测时间从某个引脚捕获两次电平跳变之间的时间间隔原理引脚上出现指定边沿上升/下降沿时硬件自动把当前计数值锁存到捕获寄存器两次捕获值相减结合定时器时钟即得时间间隔应用测脉宽、测频率、检测电机转速编码器脉冲间隔→转速2. 输出比较Output Compare——发波形输出指定频率的方波原理计数器值与比较寄存器相等时硬件自动改变输出引脚电平翻转/置高/置低周期性比较匹配→引脚上输出精确的方波/PWM应用PWM生成、控制电机转速输出、蜂鸣器驱动等一句话对比功能方向本质典型应用输入捕获引脚→定时器输入记录跳变时刻测时间测脉宽/频率、电机测速输出比较定时器→引脚输出到时刻翻转电平发波形PWM、方波输出、电机调速记忆输入捕获是秒表掐时间输出比较是闹钟到点动作。附频率与周期的关系频率 周期的倒数f 1/T。如周期1ms → 频率1kHz。五、EPIT GPT 对比对比项EPITGPT全称增强型周期中断定时器通用定时器计数方向自减型自增型位宽32位32位时钟24MHz / 32.768kHz(RTC)多时钟源可选工作模式自由运行 / 设置-遗忘自由运行 输入捕获/输出比较典型用途周期中断按键消抖等测时间间隔、PWM输出电机测速/调速对比51单片机51的T0/T1是自增型定时器IMX6ULL的EPIT是自减型、GPT是自增型——面试易混点。