Linux树莓派开发——串口配置与编程使用
目录
一、串口的配置
二、串口的编程
1、树莓派的串口如下
2、树莓派发送数据给串口
3、电脑发送数据给树莓派
4、电脑和树莓派相互通信
一、串口的配置
初次使用树莓派串口编程,需要对串口进行配置
第一步:
/* 修改 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 vt100sudo reboot 重启

二、串口的编程
具体的API使用方法可参考这里
1、树莓派的串口如下

注:电脑和树莓派之间需要一个USB转TTL的模块,树莓派的RX接模块的TX,反之TX接RX,这里还需要连接GND。
2、树莓派发送数据给电脑
#include
#include
int main()
{int fd;wiringPiSetup(); //初始化fd = serialOpen("/dev/ttyAMA0",9600); //打开串口文件,波特率为9600while(1){serialPuts(fd,"hello world!\r\n"); //\r\n换行delayMicroseconds(1000000); //延时1s}return 0;
}

3、电脑发送数据给树莓派
#include
#include int main()
{int fd;int cmd;wiringPiSetup();fd = serialOpen("/dev/ttyAMA0",9600);while(1){while(serialDataAvail(fd) != -1){ //返回串口缓存中已经接收的,可读取的字节数cmd = serialGetchar(fd); //读取数据printf("cmd = %d\r\n",cmd); }}return 0;
}

注:用串口助手发送的是数字2,显示50是因为打印的是2的ASCALL码。如果以16进制发送显示的就是2。
4、电脑和树莓派相互通信
#include
#include
#include
int main()
{int fd;int cmd;wiringPiSetup();fd = serialOpen("/dev/ttyAMA0",9600);while(1){while(serialDataAvail(fd) != -1){ //电脑端不能以16进制发送数据cmd = serialGetchar(fd);if(cmd == '2'){serialPuts(fd,"hello world\r\n"); //接收到数据后给电脑发送数据}else{printf("错误\n");}}}return 0;
}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
