抖音资讯

douyinzx

linux串口编程详解(关于linux查看串口设备命令)

iseeyu2年前 (2024-05-03)抖音资讯151

第001节硬件知识_UART硬件介绍

1.串口的硬件介绍UART的全称是Universal Asynchronous Receiver and Transmitter,即异步发送和接收。串口在嵌入式中用途非常的广泛,主要的用途有:

  • 打印调试信息;
  • 外接各种模块:GPS、蓝牙;

串口因为结构简单、稳定可靠,广受欢迎。通过三根线即可,发送、接收、地线。

 

通过TxD->RxD把ARM开发板要发送的信息发送给PC机。
通过RxD->TxD线把PC机要发送的信息发送给ARM开发板。
最下面的地线统一参考地。

2.串口的参数

  • 波特率:一般选波特率都会有9600,19200,115200等选项。其实意思就是每秒传输这么多个比特位数(bit)。
  • 起始位:先发出一个逻辑”0”的信号,表示传输数据的开始。
  • 数据位:可以是5~8位逻辑”0”或”1”。如ASCII码(7位),扩展BCD码(8位)。小端传输。
  • 校验位:数据位加上这一位后,使得“1”的位数应为偶数(偶校验)或奇数(奇校验),以此来校验数据传送的正确性。
  • 停止位:它是一个字符数据的结束标志。

怎么发送一字节数据,比如‘A‘?

A 的ASCII值是0x41,二进制就是01000001,怎样把这8位数据发送给PC机呢?

  • 双方约定好波特率(每一位占据的时间);
  • 规定传输协议

a. 原来是高电平,ARM拉低电平,保持1bit时间;

b. PC在低电平开始处计时;

c. ARM根据数据依次驱动TxD的电平,同时PC依次读取RxD引脚电平,获得数据;

前面图中提及到了逻辑电平,也就是说代表信号1的引脚电平是人为规定的。如图是TTL/CMOS逻辑电平下,传输‘A’时的波形:

 

在xV至5V之间,就认为是逻辑1,在0V至yV之间就为逻辑0。

如图是RS-232逻辑电平下,传输‘A’时的波形:

 

在-12V至-3V之间,就认为是逻辑1,在+3V至+12V之间就为逻辑0。

RS-232的电平比TTL/CMOS高,能传输更远的距离,在工业上用得比较多。

市面上大多数ARM芯片都不止一个串口,一般使用串口0来调试,其它串口来外接模块。

ARM芯片上的串口都是TTL电平的,通过板子上或者外接的电平转换芯片,转成RS232接口,连接到电脑的RS232串口上,实现两者的数据传输。

 

现在的电脑越来越少有RS232串口的接口,当然USB是几乎都有的。因此使用USB串口芯片将ARM芯片上的TTL电平转换成USB串口协议,即可通过USB与电脑数据传输。

 

上面的两种方式,对ARM芯片的编程操作都是一样的。

ARM芯片是如何发送/接收数据?

如图所示串口结构图:

 

发送数据时,CPU控制内存要发送的数据通过FIFO传给UART单位,UART里面的移位器,依次将数据发送出去,在发送完成后产生中断提醒CPU传输完成。

接收数据时,获取接收引脚的电平,逐位放进接收移位器,再放入FIFO,写入内存。在接收完成后产生中断提醒CPU传输完成。

 

第002节_S3C2440_UART编程

在uart.c这个文件里需要编写这样几个函数:

 uart0_init()  用于初始化串口
 putchar()   用于发送一个字符
 getchar()   用于接收一个字符
 puts()     用于发送一串字符

在uart0_init()需要做如下几件事:

1.设置引脚用于串口:根据原理图和参考手册设置GPH2,3用于TxD0, RxD0,并且为了将其保持为高电平,先设置其为上拉;

 GPHCON &= ~((3<<4) | (3<<6));
 GPHCON |= ((2<<4) | (2<<6));
 GPHUP &= ~((1<<2) | (1<<3)); /* 使能内部上拉 */

2.设置波特率将uart 的时钟设置为PCLK,中断/查询模式:

UCON0 = 0x00000005; /* PCLK,中断/查询模式 */

uart clock=50M,波特率假设是115200,

根据公式UBRDIVn = (int)( UART clock / ( buad rate x 16) ) –1

得到UBRDIVn = (int)( 50000000 / ( 115200 x 16) ) –1 = 26

UBRDIV0 = 26;

3.设置数据格式数据格式设置为常用的8n1:8个数据位, 无较验位, 1个停止位

ULCON0 = 0x00000003; /* 8n1: 8个数据位, 无较验位, 1个停止位 */

读取UTRSTAT0寄存器,查询其第2位判断发送buff是否为空,即上一次发送是否完成,如果完成即向UTXH0写入要发送的新数据;查询其第0位判断接收buff是否为空,即本次接收是否完成,如果接收完成,读取URXH0的值。

int putchar(int c) {
    /* UTRSTAT0 */
    /* UTXH0 */

    while (!(UTRSTAT0 & (1<<2)));
    UTXH0 = (unsigned char)c;

}

int getchar(void) {
    while (!(UTRSTAT0 & (1<<0)));
    return URXH0;
}


循环输出字符,就可以实现字符串的输出


int getchar(void) {
    while (!(UTRSTAT0 & (1<<0)));
    return URXH0;
}

int puts(const char *s) {
    while (*s)
    {
        putchar(*s);
        s++;
    }
}

在main.c的主函数里,先调用初始化函数,然后循环获取用于输入的数据,然后回显出来。并且在收到\r回车时,输出\n换行,有些时候\n是回车,则输出\r换行。


#include "s3c2440_soc.h"
#include "uart.h"

int main(void) {
    unsigned char c;

    uart0_init();
    puts("Hello, world!\n\r");

    while(1)
    {
        c = getchar();
        if (c == '\r')
        {
            putchar('\n');
        }

        if (c == '\n')
        {
            putchar('\r');
        }

        putchar(c);
    }
    return 0;
}

扫描二维码推送至手机访问。

版权声明:本文由西安泽虎代运营发布,如需转载请注明出处。

转载请注明出处https://www.0291.com.cn/post/46418.html

相关文章

数码家电行业在快手做广告推广需要哪些行业资质?

数码家电行业在快手做广告推广需要哪些行业资质?

数码家电属于生活用品,尤其是小家电,人流比较广。可以说,任何年龄的朋友都需要使用它。因此,在拥有超8亿以上用户的快手平台,要想达到推广引流的效果可以根据广告主想要的人群进行设定,包括年龄、性别、地域、兴趣爱好等条件定向推送,也可以通过广告展示再引导用户进入更为详细的页面,从而大大提高广告收益率,增强...

cad轴线怎么画(详解cad绘制教程)

cad轴线怎么画(详解cad绘制教程)

CAD是很多行业需要经常使用的软件,尤其是建筑和机械行业等,需要经常使用CAD绘制图纸,而建筑cad制图中,最基础的就是绘制轴线和墙体,这是绘制图纸的基础和起点。 下面我们就来看看如何利用天正CAD绘制轴网和墙体。   具体步骤如下: 1、首先,我们从天...

抖音限流是什么原因造成的呢(抖音涨流量技巧讲解)

抖音限流是什么原因造成的呢(抖音涨流量技巧讲解)

抖音作为时下最为火热的自媒体平台之一,大家不仅能够在上面刷视频看直播,自己在上面发送视频什么的也可以获取收益,不过很多人在使用的时候都有遇到限流的情况,那么抖音限流是什么原因造成的,文中帮你总结好了。   抖音限流是什么原因造成的 抖音限流是很多友友在使用这...

快手推广加V就是一个非常快速有效的方式。

快手推广加V就是一个非常快速有效的方式。

如果是企业号,首先建议认证蓝v。 通过增加身份属性来快速获取其他抖友认可,从而达到增粉目的,认证加V就是一个非常快速有效的方式。 好处一:平台流量倾斜 加V之后,快手官方会有流量倾斜,视频作品会优先进入快手推荐池,增加上热门概率;同时也提高了其他抖友对你的可信度,从而增加粉丝。认证之后会有明显...

如何在快手上进行推广?如何在快手短视频上进行营销?

如何在快手上进行推广?如何在快手短视频上进行营销?

近年来,以快手为首的短视频平台在全球掀起风暴,改变着用户的使用行为。 与此同时,快手短视频也成为新的流量高地,很多企业和商家都想在这个平台上一展身手。 那么,如何在快手短视频推广平台上进行推广和营销呢? 今天可爱的小编就来带领大家了解一下!   想要了解如何在快手短视频推广...

如何实现抖音?有哪些方法?

如何实现抖音?有哪些方法?

如何实现抖音?有哪些方法? 抖音如何实现? 1.抖音橱窗卖货 说白了,其实就是在我们的作品下面挂一辆小黄车,也就是我们卖的商品链接。这种实现方法的门槛不会高,只需要你的抖音账号通过实名认证,作品发布量超过10个。橱窗销售其实是普通抖音玩家实现盈利最快的方式。可以...

现在,非常期待与您的又一次邂逅

我们努力让每一部企业宣传片和抖音短视频成为商业大片