匿名
未登录
登录
丢石头百科
搜索
查看“树莓派系列教程:Serial串口”的源代码
来自丢石头百科
名字空间
页面
讨论
更多
更多
页面选项
查看
查看源代码
历史
←
树莓派系列教程:Serial串口
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
树莓派的串口默认为串口终端调试使用,如要正常使用串口则需要修改树莓派设置。关闭串口终端调试功能后则不能再通过串口登陆访问树莓派,需从新开启后才能通过串口控制树莓派。 == 一、释放串口 == 执行如下命令进入树莓派配置 <syntaxhighlight lang="python"> sudo raspi-config</syntaxhighlight> 选择 Interfacing Options ->Serial ->no -> yes 关闭串口调试功能,打开串口 打开/boot/config.txt文件,找到如下配置语句使能串口,如果没有,可添加在文件最后面。 <syntaxhighlight lang="python"> enable_uart=1</syntaxhighlight> == 二、使用minicom调试串口 == 设置完之后串口便可以正常使用了,便可测试一下树莓派的UART是否正常工作,Pioneer600扩展板带有USB转UART功能,用USB线连接到电脑。minicom便是一个简单好用的工具。minicom是linux平台串口调试工具,相当于windows上的串口调试助手。 1、minicom安装 <syntaxhighlight lang="python"> sudo apt-get install minicom</syntaxhighlight> 2、minicom启动 <syntaxhighlight lang="python"> minicom -D /dev/ttyAMA0</syntaxhighlight> 默认波特率为115200,如需设置波特率为9600加参数 -b 9600,-D代表端口,/dev/ttyAMA0 类似于windows中的COM1, 注:如果是树莓派3B,板载的串口ttyAMA0作为蓝牙使用,用户串口端口改为ttySO。如下程序也类似,如果是到的树莓派3B,ttyAMA0需改为ttyS0。 [[File:204858bjq41t7y7d1dyuj0.png]] 同时在windows也打开串口助手。设置波特率为115200,选择对应的串口号 [[File:204904ul0c0s0lwxllxsl0.png]] 3、串口数据传输 直接在minicom控制台中输入内容即可通过串口发送数据,在windows串口助手中会接到到输入的内容。同理,在windows串口助手中发送数据会在minicom控制台上显示。如果minicom打开了回显(先Ctrl+A,再E)可在控制台中观察到输出内容,如果回显关闭minicom控制台不会显示你输入的内容。先Ctrl+A,再Q,退出minicom。 == 三、串口编程 == === 1、wiringPi === <syntaxhighlight lang="python"> #include <stdio.h> #include <wiringpi.h> #include <wiringserial.h> int main() { int fd; if(wiringPiSetup() < 0)return 1; if((fd = serialOpen("/dev/ttyAMA0",115200)) < 0)return 1; printf("serial test start ...\n"); serialPrintf(fd,"Hello World!!!\n"); while(1) { serialPutchar(fd,serialGetchar(fd)); } serialClose(fd); return 0; }</wiringserial.h></wiringpi.h></stdio.h></syntaxhighlight> 编译并执行,在window下打开串口助手会接收到” Hello World!!!”,发送数据会返回到显示窗口。 <syntaxhighlight lang="python"> gcc –Wall uart.c –o uart –lwiringPi sudo ./uart</syntaxhighlight> === 二、python === 首先运行如下命令安装python serial扩展库。 <syntaxhighlight lang="python"> sudo apt-get install python-serial</syntaxhighlight> 编写程序 <syntaxhighlight lang="python"> #!/usr/bin/python # -*- coding:utf-8 -*- import serial ser = serial.Serial("/dev/ttyAMA0",115200) print('serial test start ...') ser.write("Hello Wrold !!!\n") try: while True: ser.write(ser.read()) except KeyboardInterrupt: if ser != None: ser.close()</syntaxhighlight> 执行程序,实验结果和上面一样。 <syntaxhighlight lang="python"> sudo python uart.py</syntaxhighlight> 注: 1. ser = serial.Serial("/dev/ttyAMA0",115200) 打开串口,波特率为115200 2. ser.write(ser.read()) 接收字符并回传 3. ser.close() 关闭串口 总结:通过上面两个程序我们可以发现和i2c一样,wiringPi,python程序都是读写串口设备文件/dev/ttyAMA0操作串口,故我们也可以通过sysfs的形式编程操作串口,在这里我就不详细介绍了。 == 系列教程 == {{Raspberry Pi Study}}
该页面使用的模板:
模板:Raspberry Pi Study
(
查看源代码
)
返回至
树莓派系列教程:Serial串口
。
导航
导航
首页
最近更改
随机页面
MediaWiki帮助
首页
首页
树莓派
主机
配件包
外壳
键鼠
电源
扩展板
显示屏
墨水屏
摄像模块
通信模块
继电器
电机驱动板
游戏机
产品分类
树莓派
Arduino
micro:bit
STM32
Espressif
WiFi模块
蓝牙模块
无线模块
LoRa模块
4G模块
GSM
GPRS
以太网
导航模块
北斗卫星
GPS
LCD
墨水屏
OLED
摄像头
USB模块
串口模块
RS232
RS485
CAN
传感器
温度模块
湿度模块
气压模块
继电器
电机模块
指纹模块
电平转换
音频模块
编程器
Wiki工具
Wiki工具
特殊页面
页面工具
页面工具
用户页面工具
更多
链入页面
相关更改
页面信息
页面日志