zoukankan      html  css  js  c++  java
  • UART协议

    WHAT IS UART 

    全称为Universal Asynchronous Receiver and Transmitter,即异步发送与接收(传输器协议)
    使用rs232物理层(接口标准)来通信

    a.用途

    • 打印调试信息
    • 外接GPS/蓝牙等各种模块

    b.特点

    • 三根线(发送,接收,地线)  TXD->RXD  RXD<-TXD  GND-GND
    • 全双工
    • 异步通信
    • 速度较慢 
    • 设备-设备 long distance(10m)  

     

    c.串口参数

    • 波特率:发送和接收一个bit都有固定的宽度—9600bps 19200bps 38400bps 57600bps 115200bps。
    • 起始位:先发出一个逻辑”0”的信号,表示传输数据的开始。
    • 数据位:可以是5~8位逻辑”0”或”1”。如ASCII码(7位),扩展BCD码(8位)。小端传输。
    • 校验位:数据位加上这一位后,使得“1”的位数应为偶数(偶校验)或奇数(奇校验),以此来校验数据传送的正确性。
    • 停止位:它是一个字符数据的结束标志。

    例子:设备向PC发送一个字符‘A’ (A = 0x41(H) = 01000001(B) )

    HOW TO WORK

    发送数据之前,双方先约定好波特率,然后规定传输协议

    1. 设备原为高电平,chip拉低电平,保持1bit的时间
    2. PC在低电平开始处计时
    3. chip根据数据依次驱动TxD的电平,同时PC依次读取RxD引脚电平,获得数据

    HOW TO PROGRAM

     UART配置过程:

    1. 设置引脚用于串口:根据原理图和参考手册设置
    2. 设置波特率
    3. 设置数据格式

    以ARM9-S3C2440为例,在uart.c这个文件里需要编写这样几个函数:

    uart0_init()  // 用于初始化串口
    putchar()     // 用于发送一个字符
    getchar()     // 用于接收一个字符
    puts()        // 用于发送一串字符
  • 相关阅读:
    poj1179多边形——区间DP
    poj1742硬币——多重背包可行性
    tyvj1061移动服务——DP
    poj1015陪审团——DP+路径记录
    poj3666序列对应——DP
    poj2279排队——杨氏矩阵与钩子公式(DP爆内存)
    tracert
    4 系统的 CPU 使用率很高,但为啥却找不到高 CPU的应用?
    3 当某个应用的CPU使用达到100%,该怎么办?
    2.2 CPU 上下文切换是什么意思?(下)
  • 原文地址:https://www.cnblogs.com/kumata/p/12155145.html
Copyright © 2011-2022 走看看