• 14.S5PV210串行通信编程实战


    1、整个程序流程分析
    (1)整个串口通信相关程序包含2部分:uart_init负责初始化串口,uart_putc负责发送一个字节
    2、串口控制器初始化关键步骤
    (1)初始化串口的Tx和Rx引脚所对应的GPIO(查原理图可知Rx和Rx分别对应GPA0_1和GPA0_0)
    (2)GPA0CON(0xE0200000),bit[3:0] = 0b0010 bit[7:4] = 0b0010
    (3)初始化这几个关键寄存器UCON0 ULCON0 UMCON0 UFCON0 UBRDIV0 UDIVSLOT0
    3、主要的几个寄存器
    (1)ULCON0 = 0x3 // 0校验位、8数据位、1停止位
    (2)UCON = 0x5 // 发送和接收都是polling mode
    (3)UMCON0 = 0x0 // 禁止modem、afc
    (4)UFCON0 = 0x0 // 禁止FIFO模式
    (5)UBRDIV0和UDIVSLOT0和波特率有关,要根据公式去算的

    4、在C源文件中定义访问寄存器的宏
    定义好了访问寄存器的宏之后,将来写代码时直接使用即可。

    5、串口Tx、Rx对应的GPIO的初始化
    给GPA0CON的相应bit位赋值为相应值,用C语言位操作来完成。
    6、UCON、ULCON、UMCON、UFCON等主要控制寄存器
    依据上节中分析的值进行依次设置即可。
    7、波特率的计算和设置
    (1)第一步,用PCLK_PSYS和目标波特率去计算DIV_VAL: DIV_VAL = (PCLK / (bps x 16)) ?1
    (2)第二步,UBRDIV0寄存器中写入DIV_VAL的整数部分
    (3)第三步,用小数部分*16得到1个个数,查表得uBDIVSLOT0寄存器的设置值
    8、串口发送和接收函数的编写
    (1)写发送函数,主要发送前要用while循环等待发送缓冲区为空才能发送。

  • 相关阅读:
    Django模型
    Django视图
    Django入门
    Python之安装第三方扩展库
    【转载】python计算文件的行数和读取某一行内容的实现方法
    easymock入门
    Head First Python之4持久存储
    Selenium2+python自动化之读取Excel数据(xlrd)
    Selenium2+python自动化之数据驱动(ddt)
    Head First Python之3文件与异常
  • 原文地址:https://www.cnblogs.com/schling/p/5903589.html
Copyright © 2020-2023  润新知