一、首先来说一下基于面试的串口通信协议
树莓派wiringPi库详解
(1)串口通信是基于多机的通信
主要就是两根线:RXDTXD
举例,语音识别模块与树莓派之间进行串口通信
语音模块的T连接树莓派上的R,语音模块上的R连接树莓派上的T

(2)串口通信是全双工的
全双工和半双工的区别,举例说明
例:一个男孩跟一个女孩在吵架
全双工:男孩跟女孩可以互怼,不用顾忌
半双工:男孩骂女孩时,女孩闭嘴不能出声,反之,当女孩骂男孩的时候,男孩闭嘴不能出声

两个人吵架要注意的两点就是语言跟语速,语言是两个人都听得懂得才行,语速也是两个人都能接受的才行

那么串口通信也有两大因素:分别是数据格式波特率,数据格式相当于是语言,波特率是相当于是语速 ,数据格式又包括数据位,停止位,奇偶校验位,如下图所示

在面试的时候也是这样说就行了,不需要说的太术语化,这样说已经足够了

二、树莓派与电脑之间串口通信
(1)初次在树莓派上进行串口编程时,需要进行简单的配置一下
a.修改cmdline.txt文件

>cd /boot/
>sudo vim cmdline.txt

删除红色部分的内容
dwc_otg.lpm_enable=0 console=tty1 console=serial0,115200
root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes
rootwait

然后sudo reboot重启树莓派

(2)串口通信
使用时需要包含头文件#include <wiringSerial.h>


上面就是串口通信的相关的API,记住在linux底下一切皆文件,所以串口在linux看来也是一个文件,所以serialOpen函数返回的是一个文件描述符,这个文件描述符就是串口的意思

在这里简单说一下串口通信:
串口通信无非就是两根线,即RXDTXD线,如果想看到结果的话需要用一个USB转TTL(即USB转串口)模块连接电脑USB口,并打开串口调试助手波特率跟端口选对后就可以看到输出的东西,在串口调试助手这里也能想主控芯片(我的是树莓派)发送消息,这就实现了串口通信

(3)直接上代码

#include <wiringPi.h>
#include <stdio.h>
#include <wiringSerial.h>int main()
{int fd;int cmd;if(wiringPiSetup() == -1){printf("fail to set up the wiringPi\n");return -1;}fd = serialOpen("/dev/ttyAMA0",9600);//把串口打开,设置波特率为9600if(fd == -1){printf("fail to open the serial\n");return -1;}while(1){//serialPutchar(fd,'c');while(serialDataAvail(fd) != -1)//等待串口缓存中可读取的字节数,-1代表错误{cmd = serialGetchar(fd);printf("the cmd is :%d\n",cmd);}serialPuts(fd,"hello Pi\r\n");delayMicroseconds(1000000);}serialClose(fd);return 0;
}

以上就是基于树莓派的与电脑之间的串口通信

学习笔记,仅供参考

串口通信协议(基于面试),与及树莓派与电脑之间串口通信相关推荐

  1. 树莓派和电脑之间串口通信编程

    目录 一.串口通信协议 1.先了解下全双工和半双工的区别 2.串口通信关注点 二.树莓派和电脑之间串口通信编程 1.初次使用树莓派串口编程,需要配置 2.串口通信相关的API (1)serialOpe ...

  2. 基于Linux的树莓派和电脑之间的串口通信编程

    目录 1.串口基本认知 2.USB转TTL,使用ch340通信 2.1 TTL电平 2.2 串口接线方式 ​3.串口通信常用的API 4.代码通信实例 4.1 发送一个字符/字符串到串口 4.2 树莓 ...

  3. 21 树莓派和电脑之间串口通讯编程

    linux特性:一切皆文件(设备虽然是硬件,但在Linux当中它还是以文件形式存在) 在cd/dev目录下ls 初次使用树莓派串口编程,需要配置. 参考:树莓派wiringPi库详解 - lulipr ...

  4. 树莓派与电脑之间的串口通信编程

    树莓派与电脑之间的串口通信编程 数据通信的三个方式介绍 单工通信 半双工通信 全双工通信 串口通信 编程步骤 数据通信的三个方式介绍 单工通信 只支持数据在一个方向上传输,又称为单向通信.如无线电广播 ...

  5. 如何在基于 Silverlight 的本地应用程序之间实现通信

    http://msdn.microsoft.com/zh-cn/library/dd833075(VS.95).aspx 在两个Silverlight应用间数据通信(包括与Flash通信) 如何在基于 ...

  6. 【STM32学习】——串口通信协议STM32-USART外设数据帧/输入数据策略/波特率发生器串口发送/接受实操

    文章目录 前言 一.串口通信 1.通信接口 2.串口通信 (1)串口简介 (2)串口硬件电路 (3)串口软件部分 二.STM32的USART外设 1.USART简介 2.图示详解 三.细节问题 1.数 ...

  7. python文件之间如何互相通信_python学习1-网络编程之udp_创建socket实现两电脑之间的通信...

    一.网络(UDP) 1,网络通信: a,局域网(同一个网络)通信 b,互联网(万维网)通信 网络编程:让在不同电脑上面的软件能够进行数据传递,即进行通信. 2,端口号 端口号范围0-65535,120 ...

  8. plc和pc串口通讯接线_三菱FX系列PLC与电脑之间串口RS232通讯协议简易解析

    本文介绍的 PC 与三菱 FX 系列 PLC 通信,是通过 PLC 的编程口与 PC 机的串口进行的,采用 SC-09 编程电缆作为计算机与 PLC 通信的连线.电缆的 9 芯 D 形插头连接在计算机 ...

  9. 如何建立一个小型的局域网,来实现电脑与电脑之间的通信

    小编给大家介绍两种简单的连接方法 方法一:通过网线直接建立一个有线局域网的步骤(此方法最好至少有一台电脑是Win7的操作系统) 第一步:用一根普通的网线把两台需要连接的电脑连接起来(如连接成功,可直接 ...

最新文章

  1. ASP.NET Core重写个人博客站点小结
  2. inline ,inline-block ,block
  3. Tomcat tomcat-users.xml详解
  4. 《数据科学家访谈录》读书笔记
  5. 成功数据恢复一例LINUX EXT3 下误删除ORACLE数据库
  6. java 1.7 新特性
  7. 【参与开源】J2EE开源项目JEECG快速开发平台,欢迎广大技术爱好者参与
  8. C# 用Attribute实现AOP事务
  9. sim800c GPRS模块的透传模式
  10. 【多模态】来自Facebook AI的多任务多模态的统一Transformer:向更通用的智能迈出了一步...
  11. 【winfrom】事件与委托
  12. 我们都被监控了?揭秘全球电信网络7号信令(SS7)漏洞
  13. 利用555定时器的双电源电路原理
  14. 命名空间“Microsoft”中不存在类型或命名空间名“AspNet”(是否缺少程序集引用?)
  15. 谈谈笔者是怎么拿到HFish社区活动仅有的500京东E卡
  16. html新浪短域名api,新浪(t.cn)短网址API-API文档-免费api接口-短网址工具
  17. 建立“顾客购买图书”的活动图(使用泳道)
  18. 李春江:决赛是期待和希望,希望小丁早日康复
  19. vimdiff解决git merge冲突
  20. laravel 邮件发送

热门文章

  1. uni app中使用图表
  2. canoe 分析log_CANoe教程 | 分析功能-Trace窗口
  3. 数据结构与算法 | 青岛大学 | 王卓
  4. leetcode 179 最大数
  5. 4GL+T100程序设计开发常用方法、技巧总结
  6. 【Distilling】《Distilling the Knowledge in a Neural Network》
  7. 做一个商业网站需要准备什么,需要多少钱?
  8. 刘鹏教授在淮安市应急管理局作报告
  9. android 蓝牙ble调试助手,Android蓝牙调试助手源码分享
  10. Linux上构筑iPhone OS3.1.2开发环境之解压firmware