树莓派和电脑之间串口通信编程
2021/6/5 20:25:07
本文主要是介绍树莓派和电脑之间串口通信编程,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
树莓派和电脑之间串口通信编程
- 串口配置
- 为什么要进行配置
- 什么是调试串口\普通串口
- 串口编程
串口配置
在前文有说过如何在树莓派上进行串口登录,
并进行了相关的配置,那么现在再来进行串口的通信编程。
在进行编程之前也需要进行相关的配置:
/* 修改 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 重启
为什么要进行配置
这里就有些疑问了,在之前的文章里不是提到了已经对串口进行了配置了吗(认识树莓派及树莓派登录配置(SecureCRT)),为什么还要再进行配置呢?
因为树莓派只有一个串口,系统默认将他作为调试口, 所以不能直接当成普通串口进行编程和使用, 需要先将调试串口的配置去掉。
什么是调试串口\普通串口
那么什么是调试串口什么又是普通串口呢
从通信的角度,没什么区别,只是调试串口用来打印调试信息, 普通串口用于和其他设备通信。 比如说调试串口在登陆界面是会打印登录时的一些数据。
串口编程
示例:程序代码
#include <wiringSerial.h> #include <wiringPi.h> #include <stdio.h> int main() { int cmd; int fd; wiringPiSetup(); fd = serialOpen("/dev/ttyAMA0",9600); while(1){ while(serialDataAvail(fd) != -1){ cmd = serialGetchar(fd); if(cmd == 2){ serialPuts(fd," 2 open light \r\n"); printf("2 open light \n"); }else if(cmd == 3){ serialPuts(fd," 3 close light \r\n"); } } } return 0; }
运行结果:
ps:为什么串口那里要用"\r\n"?
这是因为在串口编程中 “\r\n” 连着使用才相当于c中的 “\n”。
这篇关于树莓派和电脑之间串口通信编程的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-13怎么通过 JavaScript 或其他编程语言来实现监听屏幕高度变化功能?-icode9专业技术文章分享
- 2024-11-12聊聊我们那些年用过的表达式引擎组件
- 2024-11-12让项目数据更有说服力:五款必备数据可视化管理工具推荐
- 2024-11-12人到一定年纪,要学会远离多巴胺
- 2024-11-12解读:精益生产管理的目的是什么?如何操作?
- 2024-11-12Sku预研作业
- 2024-11-12文心一言API密钥:分步申请指南
- 2024-11-12初学者指南:轻松掌握后台交互
- 2024-11-12从零开始学习:封装基础知识详解
- 2024-11-12JSON对象入门教程:轻松掌握基础用法