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

串口配置

在前文有说过如何在树莓派上进行串口登录,
并进行了相关的配置,那么现在再来进行串口的通信编程。
在进行编程之前也需要进行相关的配置:

/* 修改 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”

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值