树莓派开发—串口通信编程

1.配置:

初次使用树莓派串口编程,需要配置

修改 cmdline.txt 文件:

cd /boot/
sudo vi 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 vi inittab

注释最后一行内容:在该行前加 # 号

#T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100

重启树莓派:

sudo reboot

2.相关函数:

包含头文件:

#include <wiringSerial.h>
函数原型 参数 说明
int serialOpen(char *device, int baud); char *device:串口的地址,在 Linux 中就是设备所在的目录,默认一般是"/dev/ttyAMA0"int baud:波特率;返回值:成功返回文件描述符,失败返回 -1 打开并初始化串口
void serialClose(int fd); inf fd:文件描述符 关闭 fd 关联的串口
void serialPutchar(int fd, unsigned char c); int fd:文件描述符;unsigned char c:要发送的数据 发送一个字节的数据到串口
void serialPuts(int fd, char *s); inf fd:文件描述符;char *s:要发送的数据 发送一个字符串到串口
void serialPrintf(int fd, char *message, …); int fd:文件描述符;char *message:格式化的字符串 发送一个字符串到串口(类似 C 语言标准库中的 printf(); 函数)
int serialDataAvail(int fd); int fd:文件描述符;返回值:成功返回字节数,失败返回-1 获取串口缓存中可用的字节数
int serialGetchar(int fd); int fd:文件描述符;返回值:读取的数据 从串口读取一个字节数据并返回,如果串口缓冲区中没有可用的数据,则会等待10 秒,若 10 秒后仍无数据,则返回-1,所以读取前最好调用serialDataAvail();判断,读取多个字符则采用地址偏移的方式读取
void serialFlush(int fd); int fd:文件描述符 清空串口缓冲区的数据

包含头文件:

#include <wiringSerial.h>
#include <unistd.h>
函数原型 说明
ssize_t read(int fd, void *buf, size_t count); Linux下的标准IO库函数,向fd中读取count个字节的数据,存放到buf
ssize_t write(int fd, const void *buf, size_t count); Linux下的标准IO库函数,往fd中写入count个字节的数据,内容为buf的前count个字节的数据

猜你喜欢

转载自blog.csdn.net/lcx1837/article/details/108167506