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控制台故障分析

  • 相关阅读:
    c语言|博客作业05
    C语言I博客作业04
    C语言II博客作业04
    C语言II博客作业03
    C语言II博客作业02
    C语言II博客作业01
    学期总结
    我的第一周C语言作业
    C语言I博客作业08
    C语言I博客作业07
  • 原文地址:https://www.cnblogs.com/free-1122/p/11452187.html
Copyright © 2011-2022 走看看