树莓派串口通信编码_RPi树莓派 | 树莓派串口通信介绍

本文介绍了如何配置树莓派的UART串口,包括关闭Kernel的控制台输出,以便用于与其他设备通信。内容涉及修改/bboot/cmdline.txt文件,移除相关参数,以及禁用/etc/inittab中的登陆提示。同时警告注意电平转换以避免硬件损坏。文中还提供了一个C语言读写串口的简单示例代码。
摘要由CSDN通过智能技术生成

树莓派的外部接口中含一路UART串行接口,利用该接口可以实现树莓派与Arduino、GPRS模块、GPS等其他外部系统的对接。

由于这一路串口兼做Linux的控制台输出口,所以在使用前必须先将调试输出功能关闭,方法如下:

1. 去除Kernel的启动信息

在 /boot/cmdline.txt 中,去除 parameterconsole=ttyAMA0,115200,并保存;

2. 去除Kernel的调试信息

同样在 /boot/cmdline.txt 中,去除 kgdboc=ttyAMA0,115200,并保存;

3. 关闭登陆提示

在 /etc/inittab 中去除 T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100,保存。

经过以上三步,就可以正常使用串行口了 (对于树莓派3,因为原生串口与蓝牙模块共用一组UART,还需要禁用蓝牙)。

(*)注意,因为树莓派与Arduino的串口电平不一致,必须使用电平转换芯片,或串联电阻限流,否则有可能损坏树莓派IO口!

编程时可以使用C语言以文件形式操作串口,也可以利用python的 python-serial 库进行编程。

这里以C语言为例,贴出示例代码:

#include

#include

#include

#include

#include

#include

int main(int argc, char *argv[]) {

int fd, len;

fd = open("/dev/ttyAMA0", O_RDWR, S_IRUSR | S_IWUSR);

char temp;

while(1) {

len = read(fd, &temp, 1);

if (len > 0) {

write(fd, &temp, 1);

printf("%c", temp);

}

else {

usleep(10);

}

}

close(fd);

return 0;

}

该代码从串口中接收一个字符,接收成功后将该字符打印在控制台上并通过串口回发。

【修订历史】

v1.2   09/12/2014   调整了文字版式,增加了串口电平不一致的说明。

v1.1   09/11/2014   调整了代码的结构,增加了对代码的说明。

>> 本文章版权归作者所有,如需转载请联系作者授权许可。

>> 原文来自: 云飞机器人实验室

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值