树莓派串口通信以及一些函数的解析以及一些初始配置

刚开始需要配置一些文件
sudo vi 是用超级用户修改文件

sudo vi /boot/cmdline.txt
dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait

删除里面的console=serial0,115200之后树莓派不能用串口,要用需要加进去

函数解析

#include 

int serialOpen(char *device, int baud);   // 打开并初始化串口

返回值:调用成功返回文件描述符,失败返回 -1
device :串口的地址,在 Linux 中就是设备所在的目录,默认一般是 "/dev/ttyAMA0"
baud:波特率

void serialClose(int fd);   // 关闭 fd 关联串口

void  serialPutchar(int fd, unsigned char c);   // 向串口发送一个字节的数据

void  serialPuts(int fd, char *s);   // 发送一个字符串到串口

void  serialPrintf(int fd, char *message, …)   // 向发送数据,用法类似 C语言中的 printf()

int   serialDataAvail(int fd);   // 获取串口缓冲区可用的字节数,错误返回 -1

int serialGetchar(int fd);   /* 从串口读取一个字节数据并返回,如果串口缓冲区中没有可用的数据,则会等待10 秒,若 10 秒后仍
无数据,则返回-1,所以读取前最好调用 serialDataAvail() 判断,读取多个字符则采用地址偏移的方式读取 */

void serialFlush(int fd);   // 清空串口缓冲区

#include 
#include 

ssize_t read(int fd, void *buf, size_t count);   // Linux 下的标准 IO库 函数
ssize_t write(int fd, const void *buf, size_t count);   // Linux 下的标准 IO库 函数

#include
#include

int main()
{
        int fd;
        wiringPiSetup();

        fd = serialOpen("/dev/ttyAMA0",9600);//初始化串口

        while(1){
                 //serialPutchar(fd,'c');//发送一个字符给串口
                 //serialPuts(fd,"xsn is handsome\n");//发送一串字符给串口
                 serialPrintf(fd,"hello xsn!!\n");//后面是啥就发送啥
                 delayMicroseconds(1000000);
        }

        return 0;
}

你可能感兴趣的:(树莓派)