zoukankan      html  css  js  c++  java
  • 第二季-专题14-串口来做控制台

    专题14-串口来做控制台

    第1课-串口工作常识

    1. 串口角色分析

    数据分析,充当控制台

    1. 串口通讯参数

     

    串口通讯,分为同步通讯和异步通讯,我们通常使用的都是异步串口。通讯时,双方先约定好数据帧的格式,即波特率,数据位,停止位,奇偶校验位等。

    波特率:这是一个衡量通信速度的参数。它表示每秒钟传送的bit的个数。例如300波特表示每秒钟发送300个bit。常用的波特率有38400,115200。

    起始位:当线路空闲时候,电平为高。一旦检测到一个下降沿,则视为一个起始位。然后接收方按照约定好的格式,接收这一帧数据。

    数据位:一帧中实际有效数据的位数。

    停止位:表示这帧数据的结束。

    校验位:用于检测数据传输是否正确的位。

    1. 串口硬件引脚

     

    我们通常使用的RS232的9帧串口,其中最为重要的是2,3,5脚

    2 :RXD:接收数据

    3 :TXD:发送数据

    5 :GND:接地

    第2课-串口驱动程序设计

    1. 串口初始化

    (1)     引脚设置

    (2)     帧格式设置

    (3)     工作模式设置

    (4)     波特率设置

    1. 数据发送
    2. 数据接收

    第2课补充-6410与210波特率设置

           #define GPHCON (*(volatile unsigned long*)0x56000070)

    #define ULCON0 (*(volatile unsigned long*)0x50000000)

    #define UCON0  (*(volatile unsigned long*)0x50000004)

    #define UBRDIV0  (*(volatile unsigned long*)0x50000028)

    #define UTRSTAT0 (*(volatile unsigned long*)0x50000010)

    #define UTXH0 (*(volatile unsigned long*)0x50000020)

    #define URXH0 (*(volatile unsigned long*)0x50000024)

     

    #define PCLK 50000000

    #define BAUD 115200

     

    void uart_init()

    {

        //1.配置引脚功能

        GPHCON &= ~(0xf<<4);

        GPHCON |= (0xa<<4);

       

        //2.1 设置数据格式

        ULCON0 = 0b11;

       

        //2.2 设置工作模式

        UCON0 = 0b0101;

       

        //3. 设置波特率 

        UBRDIV0 =(int)(PCLK/(BAUD*16)-1);

    }

     

     

    void putc(unsigned char ch)

    {

        while (!(UTRSTAT0 & (1<<2)));

        UTXH0 = ch; 

    }

     

     

    unsigned char getc(void)

    {

        unsigned char ret;

     

        while (!(UTRSTAT0 & (1<<0)));

        // 取数据

        ret = URXH0; 

       

        if ( (ret == 0x0d) || (ret == 0x0a) )

        {

            putc(0x0d);

            putc(0x0a); 

        }       

        else

            putc(ret);

           

            return ret;

    }

    第3课-串口控制台建立

    第4课-210控制台故障分析

  • 相关阅读:
    jsp上传下载+SmartUpload插件上传
    《鸟哥的Linux私房菜-基础学习篇(第三版)》(五)
    Activity的启动模式
    重学C++ (十一) OOP面向对象编程(2)
    寒城攻略:Listo 教你用 Swift 写IOS UI 项目计算器
    freemarker写select组件报错总结(二)
    用Radeon RAMDisk在Windows 10中创建关机或重新启动不消失的内存虚拟盘
    JS推断是否为JSON对象及是否存在某字段
    json、js数组真心不是想得那么简单
    javascript正則表達式
  • 原文地址:https://www.cnblogs.com/free-1122/p/11452187.html
Copyright © 2011-2022 走看看