中职扩展资源包资料:树莓派系列教程13:Serial串口
- 格式:docx
- 大小:86.70 KB
- 文档页数:7
Raspberry Pi 3 官方套件入门指南(Rev.A)i目录第1 章 (1)Raspberry PI 3 官方套件介绍 (1)1.1 产品概述 (1)1.1.1 Raspberry Pi 3 套件特点 (1)1.1.2 Raspberry Pi 3 套件介绍 (2)1.2 技术支持及详细资料 (4)第2 章 (5)Raspberry Pi 3 官方套件安装 (5)2.1 R ASPBERRY P I 3 套件软件系统安装 (5)2.1.1. SD 卡安装NOOBS 系统 (5)2.1.2. SD 卡安装Raspbian 系统 (7)2.1.3. 旋转屏显 (8)2.2 R ASPBERRY P I 3 套件硬件安装 (8)2.2.1 安装散热片 (9)2.2.2 安装SD 卡 (9)2.2.3 安装触摸屏 (9)2.2.4 安装外壳 (12)2.2.5 电源连接 (13)第3 章 (14)Raspberry Pi 3 套件的软件入门操作 (14)3.1 R ASPBERRY P I 3 套件软件操作准备工作 (14)3.1.1 上电准备 (14)3.1.2 旋转屏显 (14)3.2 R ASPBERRY P I 3 网络连接 (15)3.2.1 有线网络连接 (15)3.2.2 WiFi 网络连接 (16)3.3 R ASPBERRY P I 3 系统更新及升级 (16)3.3.1 更新系统 (16)3.3.2 升级系统 (17)3.3.3 查看SD 卡的空间 (17)3.4 R ASPBERRY P I 3 安装其他应用文件 (17)附录A (18)Raspberry Pi 3 GPIO 定义 (18)A.1 40PIN GPIO 定义 (18)第1 章Raspberry PI 3 官方套件介绍1.1 产品概述Rasapberry Pi(中译:树莓派)是能够和一个键盘一起插入你的电视的信用卡大小的电脑。
手把手教你树莓派与ArduinoUno的对接(USB及GPIO方式)关于树莓派与Arduino Uno如何对接,网络上的资料很少,经本人研究三天终于成功了,总结个教程。
它们实现对接的方式至少有三种(USB方式对接、GPIO方式对接、 I2C方式对接、其他)。
本文介绍实现的也是亲测成功的前两种(USB对接,GPIO对接),本人也是初学者,老鸟可以绕道。
就以初学者方式说起一.先说必要的开发环境。
Arduino: 开发环境我是用arduino-0023 现在是arduino 1.0.5最新版本这两个主要是驱别是一些库文件被改动,网络上提供的教程一般都是以 arduino-0023 这个环境很简单,(你要是在淘宝上买Arduino UNO 卖家都会提供IDE与相应的开发教程)IDE下载地址/en/Main/SoftwareArduino与PC连接的USB驱动地址:PL2303_Prolific_DriverInstaller_v1.8.0.zip : /US/ShowProduct.aspx?p_id=225&pcid=41PL2303_Prolific_DriverInstaller_v1.5.0.zip : ftp:///public/DASGroup/products/OM-PL-USBS/PL2303_Prolific_DriverInstaller_v1.5.0.zip(如果连接失效请用迅雷下载或自己百度) 以上软件x86 x64都可以安装XP与WIN7都没问题,在WIN8 64下有可能遇到驱动无法使用问题,win8亲测可用,注意安装的时候以管理员身份win7兼容性运行,安装完成之后点击“更新驱动程序软件”才可用。
树莓派:开发环镜我用python 2.7(现在新系统都有自带这个),常用的两个库文件 RPi.GPIO与serial1.安装python(安装过的请跳到下一步): sudo aptitude install python-dev2.安装python的GPIO模块,用于控制LED、电机等(安装过的请跳到下一步)命令行下输入(一行一个命令)1.wget /files/RPi.GPIO-0.3.1a.tar.gz (下载GPIO库)2.tar xvzf RPi.GPIO-0.3.1a.tar.gz (tar解压)3.cd RPi.GPIO-0.3.1a (进入解压后的文件夹)4.sudo python setup.py install (安装GPIO库文件)复制代码要是看不懂上面的两点请移步到这/forum.php?mod=viewthread&tid=9393.安装serial,用于串口通信及USB通信:1.sudo apt-get install python-serial复制代码4.当然你要是想在树莓派装串口调试工具就装:1.sudo apt-get install minicom复制代码配置minicom:1.sudo minicom -s复制代码启动出现配置菜单:选serial port setup进入串口配置输入A 配置串口驱动为/dev/ttyAMA0输入E 配置速率为9600 8N1输入F 将 Hardware Flow Control 设为 NO回车退出由于我们使用minicom作为超级终端控制路由器等设备, 而不是控制modem, 所以需要修改Modem and dialing, 将Init string, Reset string, Hang-up string设置为空. 设置完成后选择Save setup as dfl将当前设置保存为默认设置. 在配置菜单选Save setup as df1保存(一定要记得这一步)选Exit退出下次在输入minicon 即可直接进入。
RaspberryPi入门及应用指南第一章:Raspberry Pi简介Raspberry Pi,简称树莓派,是一款由英国树莓派基金会开发的单板计算机。
它采用ARM架构的处理器,运行Linux操作系统,功能强大,体积小巧。
树莓派具有低功耗、低成本和丰富的扩展性等特点,因此被广泛应用于教育、嵌入式系统、物联网等领域。
第二章:Raspberry Pi的硬件配置树莓派的硬件配置包括处理器、内存、存储、输入输出接口等。
最新的Raspberry Pi 4模型B配备了1.5 GHz的四核ARM Cortex-A72处理器,4GB的LPDDR4内存,以及支持高速SD卡和USB存储设备的多种存储选项。
此外,树莓派还具备HDMI接口、USB接口、以太网接口和GPIO(通用输入输出)等丰富的接口,方便用户进行扩展和连接其他设备。
第三章:Raspberry Pi的操作系统Raspberry Pi支持多种操作系统,包括Raspbian、Ubuntu Mate、Windows 10 IoT Core等。
其中,Raspbian是专为树莓派定制的基于Linux的操作系统,提供了丰富的软件包和工具,非常适合初学者学习和实践。
第四章:Raspberry Pi的编程语言树莓派支持多种编程语言,如Python、C/C++和Java等。
Python是树莓派最常用的编程语言,易于学习且功能强大,适合初学者。
C/C++语言可以直接调用底层硬件接口,提供更高的性能和灵活性。
Java语言适用于开发基于JVM的应用程序,如图形界面和网络应用。
第五章:Raspberry Pi的网络应用树莓派可以通过有线或无线方式连接到互联网,实现各种网络应用。
例如,树莓派可以充当无线路由器或者物联网网关,连接多个设备和传感器。
同时,树莓派也可以搭建Web服务器、FTP 服务器、数据库服务器等,满足个人或小型企业的需求。
第六章:Raspberry Pi的物联网应用由于树莓派具备丰富的硬件接口和低功耗特性,它非常适合用于物联网应用。
旗开得胜上两章我们讲解了在树莓派上如何点亮一个LED灯,这一章我们讲解一下按键以及事件中断。
一、bcm283501 #include <bcm2835.h>02 #include <stdio.h>0304 #define KEY 2005 int main(int argc, char **argv)06 {07 if (!bcm2835_init())return 1;08 bcm2835_gpio_fsel(KEY, BCM2835_GPIO_FSEL_INPT);09 bcm2835_gpio_set_pud(KEY, BCM2835_GPIO_PUD_UP);10 printf("Key Test Program!!!!\n");11 while (1)1旗开得胜12 {13 if(bcm2835_gpio_lev(KEY) == 0)14 {15 printf ("KEY PRESS\n") ;16 while(bcm2835_gpio_lev(KEY) == 0)17 bcm2835_delay(100);18 }19 bcm2835_delay(100);20 }21 bcm2835_close();22 return 0;23 }</stdio.h></bcm2835.h>编译并执行,按下按键会看到窗口显示”KEY PRESS”,按Ctrl+C结束程序。
2旗开得胜1 gcc –Wall key.c –o key –lbcm283523 sudo ./key注:(1)bcm2835_gpio_fsel(KEY, BCM2835_GPIO_FSEL_INPT);设置管脚为输入模式(2)bcm2835_gpio_set_pud(KEY, BCM2835_GPIO_PUD_UP);设置为上拉模式(3)bcm2835_gpio_lev(KEY);读取管脚状态二、wiringPi01 #include <stdio.h>02 #include<wiringpi.h>0304 char KEY = 29;0506 int main()07 {3旗开得胜08 if (wiringPiSetup() < 0)return 1 ;09 pinMode (KEY,INPUT);10 pullUpDnControl(KEY, PUD_UP);11 printf("Key Test Program!!!\n");12 while(1)13 {14 if (digitalRead(KEY) == 0)15 {16 printf ("KEY PRESS\n") ;17 while(digitalRead(KEY) == 0)18 delay(100);19 }20 delay(100);4旗开得胜21 }22 }</wiringpi.h></stdio.h>编译并执行,按下按键会看到窗口显示”KEY PRESS”,按Ctrl+C结束程序。
串口连接树莓派(PL2303连接树莓派)前提:没有网络,没用键盘,没有显示器的情况下,通过串口(PL2303线)连接树莓派。
准备:•树莓派开发板(已经刷好官方系统)•USB转串口工具(PL2303)•杜邦线(4根)连线PL2303:VCC-—-——--—+5VRX———-———-TXD(GPIO15)TX---—---—RXD(GPIO14)GND-———---—Ground树莓派引脚分布图:实物连线图:作者是直接用笔记本的电源进行供电的,当然你也可以再外加一个电源。
这里注意下:接线本已通过USB线提供了5V的电压,如果外置电源的话,没必要接上VCC 线。
安装软件ubuntu linux•安装ckermit:sudo apt-get install ckermit•编辑配置文件:vi ~/。
kermrc,写入以下内容:set line /dev/ttyUSB0set speed 115200set carrier—watch offset handshake noneset flow-control nonerobustset file type binset file name litset rec pack 1000set send pack 1000set windows 5windowswindows下可以使用超级终端或者putty,选择一个com口,然后设置波特率115200,就能连接了。
开始连接:•将PL2303插入电脑USB,启动树莓派•sudo kermit打开kermit•输入c,敲回车,这时应该看到树莓派启动时的一些输出信息•启动完毕,输入用户名和密码就能控制树莓派了如何断开连接:•输入快捷键:CTRL \,然后再按c,可以退出到kermit界面•再次输入c可以连接到树莓派•输入exit可以退出kermit感受:使用串口进行连接确实方便很多,毕竟很多时候我们并不需要或者没有显示器,仅仅控制树莓派的话这样就足够了。
WK系列通用异步串口UART产品产品介绍:WK提供目前业界收发缓存最大、接口最全、尺寸最小的高性价比UART 器件,芯片内置多种总线数据转换处理协议,为工业和便携设备等嵌入式系统提供先进的串口扩展器件。
产品特点:}接口最全:--WK系列UART产品主接口支持UART、I2C、SPI、8位并行总线可选--业内独创通过标准三线UART串口扩展UART技术。
}收发缓存最大:--每个扩展串口具备256级收发独立FIFO--支持超时中断和任意可设置FIFO触发点中断--防止串口通信数据溢出,减少CPU响应中断次数---有效提高基于嵌入式OS系统中串口通信的实时性和可靠性。
}封装最小:--系列产品采用SSOP16/20,QFP44,QFN24/32封装--WK2204采用4*4mm的QFN24封装,为业界最小的4通道低电压UART --WK2166为QFP44封装,为业界最小的工业级宽电压4通道UART}主接口特性:--UART接口:波特率自适应技术,最高速率2Mbps,支持16字节连续收发;--SPI接口:从模式,最高速率10Mbps,支持256字节连续收发;--IIC接口:从模式,最高速率1Mpbs,支持16字节连续收发--8位并口:标准8位总线模式,最高速率10MBps,仅占用2个地址空间}扩展串口特性:--系列产品支持2-4个扩展标准串口可选--每个扩展串口波特率、字长、校验格式可以独立设置,并可单独软件复位;--扩展串口最高通信速率可达2Mbps;--扩展串口可以支持RS485自动收发,自动485网络地址识别;--可设置为SIR标准的IrDA红外通信模式,速率可达115.2kbps。
}设计资源和支持:--Linux/Android 系统级串口驱动,参考源代码--8051,STM32 应用参考源代码--EVB开发评估板产品应用:l移动便携设备:行业PDA、行业平板、移动收款机、便携数据采集终端l工业控制:串口服务器、自动化现场控制、POS机、工业机器人,无人机l仪器仪表:智能仪表、AMR远传抄表设备、工业/医疗采集仪器l通信设备:工业网络通信设备、串行基站控制器、串行通信终端l汽车电子:车载导航系统、停车管理系统、汽车安全行驶记录仪(黑匣子)l智能硬件:智能家居控制设备、可穿戴采集设备、智能安防,智能家电产品选型:WK21系列宽电压产品系列,工作电压2.5-5.0V ,适合工业级应用。
树莓派的串口默认为串口终端调试使用,如要正常使用串口则需要修改树莓派设置。
关闭串口终端调试功能后则不能再通过串口登陆访问树莓派,需从新开启后才能通过串口控制树莓派。
一、释放串口
执行如下命令进入树莓派配置
1 sudo raspi-config
选择Advanced Options ->Serial ->no 关闭串口调试功能
二、使用minicom调试串口
设置完之后串口便可以正常使用了,便可测试一下树莓派的UART 是否正常工作,Pioneer600扩展板带有USB转UART功能,用USB 线连接到电脑。
minicom便是一个简单好用的工具。
minicom是linux 平台串口调试工具,相当于windows上的串口调试助手。
1、minicom安装
1 sudo apt-get install minicom
2、minicom启动
1 minicom -D /dev/ttyAMA0
1
默认波特率为115200,如需设置波特率为9600加参数-b 9600
,-D代表端口,/dev/ttyAMA0 类似于windows中的COM1,
同时在windows也打开串口助手。
设置波特率为115200,选择对应的串口号
2
3、串口数据传输
直接在minicom控制台中输入内容即可通过串口发送数据,在windows串口助手中会接到到输入的内容。
同理,在windows 串口助手中发送数据会在minicom控制台上显示。
如果minicom 打开了回显(先Ctrl+A,再E)可在控制台中观察到输出内容,如果回显关闭minicom控制台不会显示你输入的内容。
先Ctrl+A,再Q,退出minicom。
三、串口编程
3
旗开得胜
1、wiringPi
01 #include <stdio.h>
02 #include <wiringpi.h>
03 #include <wiringserial.h>
04
05 int main()
06 {
07 int fd;
08 if(wiringPiSetup() < 0)return 1;
09 if((fd = serialOpen("/dev/ttyAMA0",115200)) < 0)return 1;
10 printf("serial test start ...\n");
11 serialPrintf(fd,"Hello World!!!\n");
12 while(1)
4
旗开得胜
13 {
14 serialPutchar(fd,serialGetchar(fd));
15 }
16 serialClose(fd);
17 return 0;
18 }</wiringserial.h></wiringpi.h></stdio.h>
编译并执行,在window下打开串口助手会接收到” Hello World!!!”,发送数据会返回到显示窗口。
1 gcc –Wall uart.c –o uart –lwiringPi
2 sudo ./uart
二、python
首先运行如下命令安装python serial扩展库。
1 sudo apt-get install python-serial
编写程序
5
旗开得胜
6
01 #!/usr/bin/python
02 # -*- coding:utf-8 -*-
03 import serial
04
05 ser = serial.Serial("/dev/ttyAMA0",115200)
06
07 print('serial test start ...')
08 ser.write("Hello Wrold !!!\n")
09 try:
10 while True:
11 ser.write(ser.read())
12
except KeyboardInterrupt:
旗开得胜
13 if ser != None:
14 ser.close()
执行程序,实验结果和上面一样。
1 sudo python uart.py
注:(1) ser = serial.Serial("/dev/ttyAMA0",115200) 打开串口,波特率为115200
(2) ser.write(ser.read()) 接收字符并回传
(3) ser.close() 关闭串口
总结:通过上面两个程序我们可以发现和i2c一样,wiringPi,python程序都是读写串口设备文件/dev/ttyAMA0操作串口,故我们也可以通过sysfs的形式编程操作串口,在这里我就不详细介绍了。
7。