串口 i2c
来源:互联网 发布:安卓好用的拼长图软件 编辑:程序博客网 时间:2024/06/12 01:16
i2cdetect -y -a 1
首先在raspi-config 关闭串口调试
将树莓派3的硬件串口与mini串口默认映射对换
树莓派可以配置文件来修改设备树,我的理解是可以通过配置文件来修改管脚的映射关系,这在许多Cortex-M3内核的单片机中也很常见,可以将同一个串口映射到不同的管脚上,以方便PCB的布线。
为了在树莓派3中通过GPIO使用高性能的硬件串口,我们必须将分配给蓝牙使用的硬件串口与分配给IO排针的mini串口进行对换,这必然会使得蓝牙模块的功能受到影响,但还好,蓝牙并不是必须的。
在树莓派系统中
1
/boot/overlays/
目录下,提供了一个pi3-miniuart-bt-overlay.dtb的文件,这个文件的作用可以通过该目录下的README文件查看
README文件中说明了这个文件的功能是将树莓派3的蓝牙切换到mini串口(ttyS0),并且恢复硬件串口(ttyAMA0)到GPIO 14&15脚中。并且给出了载入的方法。
首先在树莓派命令终端中通过命令查看树莓派3当前的串口映射关系
1
ls -l /dev
红色框中体现的应该是一种映射关系,此处暂时没有做深究,简单理解 serial0 就是GPIO映射的串口,此时GPIO映射的串口是默认的/dev/ttyS0这个mini串口。
使用下面这条指令编辑 /boot/config.txt 文件
1
sudo nano /boot/config.txt
在该文件中增加一行代码
1
dtoverlay=pi3-miniuart-bt
然后保存文件,重启树莓派使之生效。
再通过 ls -l /dev 命令查看修改后的映射关系
对比修改前的关系,可以看出serial0和serial1 与 ttyAMA0和ttyS0的映射关系对换完成了,也就是ttyAMA0映射到了引出的GPIO Tx Rx上。
禁用串口的控制台功能
前面的步骤已经交换了硬件串口与mini串口的映射关系,但现在想使用树莓派外接串口模块进行通信还不行,因为树莓派IO引出的串口默认是用来做控制台使用的,它的初衷是为了在没有网络接口时,通过串口对树莓派进行相关的配置。因此需要禁用这个默认功能,使得串口为我们自由使用。
在树莓派命令窗口中分别通过如下两个命令停止和禁用串口的控制台功能
12
sudo systemctl stop serial-getty@ttyAMA0.servicesudo systemctl disable serial-getty@ttyAMA0.service
由于我们前面已经交换了串口的映射关系,因此这里注意是ttyAMA0。
然后通过下列指令编辑cmdline.txt文件
1
sudo nano /boot/cmdline.txt
然后看到里面类似如下的内容
1
dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
把console=serial0,115200删掉 console=serial0,115200 ,剩下的内容类似如下
1
dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
然后重新启动树莓派,使修改生效
- 串口 i2c
- I2C串口通信
- ARM串口实验,ADC实验,I2C实验
- 串口通信:UART、SPI、I2C区别
- 常见接口(串口、SPI、I2C)备忘录(未完)
- 嵌入式学习--step7 各类通信协议--串口、SPI、I2C
- 2.10 Linux 串口、CF卡、MTD、I2C驱动分析
- 浅谈总线通信机制(串口、I2C、SPI、USB。。。)(通信基础+串口部分)
- 浅谈总线通信机制(串口、I2C、SPI、USB。。。)(通信基础+串口部分)
- I2C
- I2C
- i2c
- I2C
- I2C
- i2c
- i2c
- I2C
- I2C
- IntelliJ Idea解决Could not autowire. No beans of 'xxxx' type found的错误提示
- 使用Gradle发布Android开源项目到JCenter
- 不要过度依赖JQuery
- 笔记:php curl请求头与服务端接收
- 【iOS_GitHub】banner(广告页/循环滚动广告图片/无限循环自动滚动卡片)
- 串口 i2c
- Netty RPC demo 试跑
- Codeforces Round #336 (Div. 2)-D Zuma(区间DP)
- Locker UVA
- Spring security+rememberme学习笔记(1)
- c++学习:析构函数
- Log4net详细说明
- C# 多个table转成一个table的一行
- 天天学Linux命令35--top命令