第二季-专题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控制台故障分析

posted @ 2019-09-03 11:58  free-锻炼身体  阅读(222)  评论(0编辑  收藏  举报