树莓派和电脑之间的串口通信

一开始我们配置了串口登录树莓派,这样会导致我们后面在用树莓派的时候有些冲突,所以我们需要先修改树莓派串口的一些配置

/* 修改 cmdline.txt文件 */
>cd /boot/
>sudo vim cmdline.txt
删除【】之间的部分
dwc_otg.lpm_enable=0 【console=ttyAMA0,115200】 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait


/*修改 inittab文件 */  //如果没有这个文件,直接跳过即可
>cd /etc/
>sudo vim inittab

注释掉最后一行内容:,在前面加上 # 号
#T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100


sudo reboot 重启

 树莓派给电脑发送信息

#include <wiringPi.h>
#include <wiringSerial.h>int main()
{int fd;if(WiringPiSetup()==-1){printf("Setup error\n");return -1;}   fd = serialOpen("/dev/ttyAMA0",9600);while(1){serialPutchar(fd,"c");  //发送字符//serialPuts(fd,"hello i am pi");// 发送字符串delayMicroseconds(1000000)//微秒级别 }
}

       

 电脑通过串口助手给树莓派发消息

#include <wiringPi.h>
#include <wiringSerial.h>int main()
{int fd;int cmd;if(WiringPiSetup()==-1){printf("Setup error\n");return -1;}   fd = serialOpen("/dev/ttyAMA0",9600);while(1){while( serialDataAvail(fd) != -1){cmd =serialGetchar(fd); // 通过接收到的指令执行不同的操作if(cmd == '2'){printf("daxu 2\n");}}}
}

串口通信相关API

首先要包含头文件 #include <wiringSerial.h>

打开串口

int serialOpen (char *device, int baud)

device: 串口的地址,一般默认 “/dev/ttyAMA0”

buad: 波特率

返回值: 正常会返回文件描述符,否则返回-1失败

 多字节的发送的读取还是要用 read   write 文件那一块学的

发送一个字节到串口

void  serialPutchar (int fd, unsigned char c)

fd:文件描述符

c:要发送的数据

发送一个字符串到串口 

void  serialPuts (int fd, char *s)

fd:文件描述符

s:发送的字符串,字符串要以'\0'结尾

 获取串口缓存中可用的字节数

int   serialDataAvail (int fd)

fd:文件描述符

返回:串口缓存中已经接收的,可读取的字节数,-1代表错误

从串口读取一个字节数据返回。 

int serialGetchar (int fd)

fd:文件描述符

返回:读取到的字符

如果串口缓存中没有可用的数据,则会等待10秒,如果10后还有没,返回-1

所以,在读取前,做好通过serialDataAvail判断下。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/602350.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【响应式编程-05】Lambda方法引用

一、简要描述 Lambda的方法引用也叫引用方法 方法引用初体验方法引用的底层实现方法引用的语法格式方法引用举例 静态方法引用构造方法引用普通方法引用super和this方法引用数组的方法引用 二、方法引用初体验 为什么出现方法引用&#xff1f; 引用已存在方法&#xff0c;避免重…

四则运算 C语言xdoj20

问题描述&#xff1a; 输入两个整数和一个四则运算符&#xff0c;根据运算符计算并输出其运算结果&#xff08;和、差、积、商、余之一&#xff09;。注意做整除及求余运算时&#xff0c;除数不能为零。 输入说明&#xff1a; 使用scanf()函数输入两个整数和一个运算符&#xf…

政府采购变数大,AI PC是联想的“新希望”?

文&#xff5c;新熔财经 作者&#xff5c;余一 发布两款AI PC&#xff0c;并预热CES将有AI PC大动作后&#xff0c;联想似乎找到了计算机终端的新思路。 而在这之前&#xff0c;联想终端业务面临的挑战不可谓不严重。 “事业单位更换纯国产电脑”、“联想被排除在大订单之外…

前端面试题-nodejs

1.什么是nodejs&#xff0c;它与传统的网页服务器有什么不同&#xff1f; 是什么&#xff1f;nodejs是基于Chrome V8引擎的JavaScript运行环境&#xff0c;它可以使JavaScript代码在服务器上运行。 有什么不同&#xff1f;第一&#xff0c;nodejs采用事件驱动、非阻塞式I/O模型…

汽车电子行业的 C 语言编程标准

前言 之前分享了一些编程规范相关的文章&#xff0c;有位读者提到了汽车电子行业的MISRA C标准&#xff0c;说这个很不错。 本次给大家找来了一篇汽车电子行业的MISRA C标准的文章一同学习下。 什么是MISRA&#xff1f; MISRA (The Motor Industry Software Reliability Ass…

微型导轨在设备中起什么作用

微型导轨精度高&#xff0c;摩擦系数小&#xff0c;自重轻&#xff0c;结构紧凑&#xff0c;可以用于电子制造设备、半导体制造设备、医疗设备、光学设备和机器人等各种工业机械设备中&#xff0c;那么微型导轨在设备中起什么作用呢&#xff1f; 1、导向与定位&#xff1a;为机…

Spring 应用合并之路(二):峰回路转,柳暗花明 | 京东云技术团队

书接上文&#xff0c;前面在 [Spring 应用合并之路&#xff08;一&#xff09;&#xff1a;摸石头过河]介绍了几种不成功的经验&#xff0c;下面继续折腾… 四、仓库合并&#xff0c;独立容器 在经历了上面的尝试&#xff0c;在同事为啥不搞两个独立的容器提醒下&#xff0c;…

Web网页开发-CSS定位-笔记

一、CSS的三种布局 (1) 标准流 块级元素:一行一个 行内元素:一行多个&#xff0c;margin上下无效 行内块元素:一行多个 (2) 浮动 让元素同处一行 (3) 定位 让元素在浏览器中任何位置,并且覆盖住其他元素&#xff0c;能够固定死在浏览器上的某个位置&#xff0c;不随滚动条滚动 …

C++面对对象编程进阶(1)

面对对象编程进阶&#xff08;1&#xff09; 1.初始化列表2.类的继承3.深挖公有、私有及保护4.友元类5.类指针 1.初始化列表 C中类的初始化列表应用于构造函数初始化类的成员变量。其具体应用方法为&#xff1a; class Student {public:int age;string name;Student():age(0)…

G4周:CGAN,手势生成

本文为&#x1f517;365天深度学习训练营 中的学习记录博客 原作者&#xff1a;K同学啊|接辅导、项目定制 我的环境&#xff1a; 1.语言&#xff1a;python3.7 2.编译器&#xff1a;pycharm 3.深度学习框架Pytorch 1.8.0cu111 一、CGAN介绍 条件生成对抗网络&#xff08;…

Crow:路由局部插件1 设置插件

Crow:Middlewares的使用-CSDN博客 介绍了Crow中关于插件的使用,其实除了这种通用插件外,Crow还提供了为个别路由使用的局部插件。 先看例子: //examples/example_middleware.cpp struct SecretContentGuard : crow::ILocalMiddleware {struct context{};void before_hand…

Qt基础-属性系统详解

目录 一、定义 二、属性的使用 三、类的附加信息 四、实例演示 一、定义 Qt提供了一个Q_PROPERTY(

Visio导出eps格式图片

Visio导出eps格式图片 文章目录 Visio导出eps格式图片1. Visio中使用Adobe Acrobat虚拟打印2. Adobe Acrobat中裁剪并另存为eps格式 如何使用Visio绘图然后导出.eps格式的图片呢&#xff1f;这个过程需要用到Adobe Acrobat&#xff0c;使用Adobe Acrobat的虚拟打印功能&#xf…

ssm基于JAVA的驾校信息管理系统设计论文

摘 要 信息数据从传统到当代&#xff0c;是一直在变革当中&#xff0c;突如其来的互联网让传统的信息管理看到了革命性的曙光&#xff0c;因为传统信息管理从时效性&#xff0c;还是安全性&#xff0c;还是可操作性等各个方面来讲&#xff0c;遇到了互联网时代才发现能补上自古…

马克思主义基本原理笔记

马克思主义哲学、政治经济学、科学社会主义理论 哲学 马克思主义中国化的理论成果&#xff1a;毛泽东思想、邓小平理论、三个代表重要思想、科学发展观 物质和意识哪个是本原&#xff0c;是哲学的基本问题 辩证法认为世界上的事物都是相互联系的、运动发展的&#xff0c;形…

Docker:docker exec命令简介

介绍 docker exec [OPTIONS] 容器名称 COMMAND [ARG...] OPTIONS说明&#xff1a; -d&#xff0c;以后台方式执行命令&#xff1b; -e&#xff0c;设置环境变量 -i&#xff0c;交互模式 -t&#xff0c;设置TTY -u&#xff0c;用户名或UID&#xff0c;例如myuser:myu…

Java HashMap 面试题(一)

HashMap 面试题&#xff08;一&#xff09; 文章目录 HashMap 面试题&#xff08;一&#xff09;3.3 面试题-说一下HashMap的实现原理&#xff1f;面试题-HashMap的put方法的具体流程hashMap常见属性源码分析 3.3 面试题-说一下HashMap的实现原理&#xff1f; HashMap的数据结…

篇三:让OAuth2 server支持密码模式

由于Spring-Security-Oauth2停止维护&#xff0c;官方推荐采用 spring-security-oauth2-authorization-server&#xff0c;而后者默认不支持密码授权模式&#xff0c;本篇实战中采用的版本如下&#xff1a; <dependency><groupId>org.springframework.security<…

84. 柱状图中最大的矩形 -- 单调栈

84. 柱状图中最大的矩形 class LargestRectangleArea:"""时间复杂度&#xff1a;O(N)空间复杂度&#xff1a;O(N)84. 柱状图中最大的矩形https://leetcode.cn/problems/largest-rectangle-in-histogram/description/"""def solution(self, heigh…

1-02VS的安装与测试

一、概述 对于一名C语言程序员而言&#xff0c;进行C语言程序的开发一般需要一个文本编辑器加上一个编译器就足够了。但为了方便起见&#xff0c;我们选择使用集成开发环境——Visual Studio&#xff08;简称VS&#xff09;。安装Visual Studio 下面讲一下如何安装VS&#xff0…