树莓派与电脑串口通信编程

本文档介绍了如何在树莓派上利用wiringPi库实现软件PWM,并通过串口进行数据通信。首先,需要修改cmdline.txt和inittab文件以释放串口资源,然后使用wiringPi库的softPwm和serialOpen函数进行配置。通过串口打印数据和接收数据的示例代码分别给出,实现了一秒一次的数据发送和接收到特定数据后的响应。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


虽说串口是硬件,但Linux的特性还是让串口以文件形式存储再Linux中。我们可以通过 cd /dev 来查看,一般是 ttyAMA0.
wringPi库相关文档:

https://www.cnblogs.com/lulipro/p/5992172.html

softPwm,软件实现的PWM

树莓派硬件上支持的PWM输出的引脚有限,为了突破这个限制,wiringPi提供了软件实现的PWM输出API。
需要包含头文件:#include <softPwm.h>
编译时需要添pthread库链接 -lpthread
在这里插入图片描述

串口通信

使用时需要包含头文件:#include <wiringSerial.h>

在这里插入图片描述在这里插入图片描述

必须修改的功能

/* 修改 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 <wiringSerial.h>
#include <wiringPi.h>

int   main()
{
        int  fd;//串口也文件

        wiringPiSetup();//设备初始化

        fd=serialOpen("/dev/ttyAMA0",9600);//串口初始化,
  //设置波特率为9600

        while(1)
       {
     serialPuts(fd,"wo hen  shuai\r\n");//打印字符串,回车加换行
     delayMicroseconds(1000000);//每隔一秒打印字符  
       }


        return 0;
}

发送数据给串口

#include <wiringSerial.h>
#include <wiringPi.h>
#include <stdio.h>

int   main()
{
        int  fd;//串口也文件

        int  cmd;

        wiringPiSetup();//设备初始化

        fd=serialOpen("/dev/ttyAMA0",9600);//串口初始化,设置波特率为9600

        while(1)
       {
               while(serialDataAvail(fd)!= -1)//判断串口是否有数据
             {
                   cmd=serialGetchar(fd);  
                   if(cmd == 2)
                   {	
                   printf("dong rui long hen %d\r\n",cmd);
					}
             }

            
       }
      
        return 0;
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

llechee

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值