我是靠谱客的博主 沉静西牛,最近开发中收集的这篇文章主要介绍树莓派3B 之uart通信,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

输煤派要使用uart与外界通信。

那么需要先使用树莓派上面的GPIO口。

所以我们需要先了解GPIO口的分布情况。

细心的童鞋可能已经看出来了。对我们使用的第三方库就是wirningPi。

拿到的树莓派如何安装wirningPi库呢?  ---等会写一个安装wirningPi库的教程?

 

由上图可以看出,我们使用的引脚是wirningPi的15/16脚分别作为Tx/Rx(当然也要连GND)。

然后上代码 uart.cpp :

#include "uart.h"
//#include "keystone.h"

int serial_fd;

void serial_Init(void)
{
	    
    if(wiringPiSetup() < 0)
        printf("wiringPiSetup ERR!!!n");

    if((serial_fd = serialOpen("/dev/ttyAMA0", BAUDRATE)) < 0) //
        printf("serial ERR!!!n");
}


void serial_SendData(unsigned char p)
{
    //serialPuts(serial_fd, p);
    serialPutchar(serial_fd, p);
}

//--------------------------------------------//


char str[50]={};
int count = 0;
char* serial_ReceiveData(void)
{
//    int serial_fd;
    int re;


//    if(wiringPiSetup() < 0)
//        printf("wiringPiSetup ERR!!!n");

//    if( (serial_fd = serialOpen("/dev/ttyAMA0", BAUDRATE)) < 0) //
//        printf("serial ERR!!!n");

    re = serialDataAvail(serial_fd);

     if( re <= 0)
     {
         serialFlush(serial_fd);
         return str;
     }
    else
     {
//         uart_chk = 1;
         for(int j = 0; j < 50; j++)
         {
             str[j] = serialGetchar(serial_fd);
             if(str[j] == '' || str[j] == 'r')
             {
                 break;
             }
         }
         serialFlush(serial_fd);
         return str;
     }
}

 

uart.h:

#ifndef UART_H
#define UART_H

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

#define BAUDRATE 115200
//int serial_fd = serialOpen("/dev/ttyAMA0", BAUDRATE);

extern int serial_fd;

void serial_Init(void);
void serial_SendData(unsigned char p);
char* serial_ReceiveData(void);

#endif // UART_H

到这里配置完成后我们就可以对着两个pin脚进行收发数据的操作了。

最后

以上就是沉静西牛为你收集整理的树莓派3B 之uart通信的全部内容,希望文章能够帮你解决树莓派3B 之uart通信所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部