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


虽说串口是硬件,但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;
}

猜你喜欢

转载自blog.csdn.net/weixin_45824920/article/details/114490023